Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391

Есть ли замечания?

01.04.2013, 20:50. Показов 3251. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Есть ли какие-либо замечания, по приведенному ниже коду. Буду очень рад конструктивной критике. Что нужно добавить, что убрать. Заранее спасибо!
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
error_reporting(E_ALL);
if (isset($_POST['button'])){
    if(isset($_POST['login'], $_POST['pass'], $_POST['pass2'], $_POST['email'])){
        $login=trim(stripslashes(htmlspecialchars($_POST['login'])));
        $pass=trim(stripslashes(htmlspecialchars($_POST['pass'])));
        $pass2=trim(stripslashes(htmlspecialchars($_POST['pass2'])));
        $email=trim(stripslashes(htmlspecialchars($_POST['email'])));
        if (!empty($login) && !empty($pass) && !empty($pass2) && !empty($email)){
            if($pass==$pass2){
                include_once "db.php";
                $login=mysql_real_escape_string($login);
                $pass=mysql_real_escape_string($pass);
                $email=mysql_real_escape_string($email);
                $q4=mysql_query('SELECT COUNT(*) FROM `table` WHERE `Login`="'.$login.'" OR `Email`="'.$email.'"') or die ('Mysql error4: ' . mysql_error());
                if (mysql_result($q4, 0) > 0)
                    echo 'Пользователь с таким ником или email уже зарегистрирован';
                else {
                    $arr=str_split('1234567890qwertyuiopasdfghjklzxcvbnm');
                    $salt='';
                    for ($i=0; $i<=5; $i++)
                        $salt .= $arr[array_rand($arr)];
                    $pass=md5($salt . $pass . $salt);
                    $q5=mysql_query('INSERT INTO `table` (`Login`,`Password`,`Salt`, `Email`) VALUES ("'.$login.'", "'.$pass.'", "'.$salt.'", "'.$email.'")') or die ('Mysql error5: ' . mysql_error());
                    header("Location: http://site.ru");
                    exit();
                    }
                } else
                    echo 'Пароли не совпадают!';
            } else
                echo 'Вы заполнили не все поля!';
        }
    }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Регистрация</title>
</head>
<body>
    <form method="POST">
        Введите Логин: <input type="text" name="login"><br>
        Введите пароль: <input type="password" name="pass"><br>
        Повторите пароль: <input type="password" name="pass2"><br>
        Введите E-mail: <input type="text" name="email"><br><br>
        <input type = "submit" name="button" value="Нажать!">
    </form>
</body>
</html>


Добавлено через 1 минуту
Да, и это лишь черновой вариант регистрации.. Хорошо бы еще добавить что-то вроде каптчи.. Кто может подкинуть материал для ознакомления на данную тему? Я так понимаю, каптча создается с помощью GD графики?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2013, 20:50
Ответы с готовыми решениями:

Есть идеи или замечания по коду
У кого какие замечания по коду, архитектуре? предложения? P.S. весь код выложить не могу. P.S.S. принимаются переименования, и...

Собираюсь купить. Все ли совместимо и какие есть замечания?
Добрый день! В железе не профи, собираюсь брать не на 1-2 месяца, а так сказать на перспективу. В игры не играю, но много работы с...

Возможно ли раскрутить сайт, или есть какие то замечания?
Здравствуйте вот сайт можно его раскрутить http://ais.msun.ru/ais/index.php или какие то замечания!

45
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
02.04.2013, 00:39
Цитата Сообщение от M1lleniuM Посмотреть сообщение
каптча создается с помощью GD графики?
как вариант - да

PHP
1
 include_once "db.php";
использовать include функции на важных файлах - неправильно

код трудно читаем.

что будет если вместо
HTML5
1
Введите Логин: <input type="text" name="login"><br>
написать(==подделать запрос к скрипту):
HTML5
1
Введите Логин: <input type="text" name="login[]"><br>
?
1
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
02.04.2013, 01:18  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
использовать include функции на важных файлах - неправильно
Писать лишние строки? Почему бы не засунуть в один файл, а потом его инклудить.

Цитата Сообщение от nxnx Посмотреть сообщение
что будет если вместо
Ну судя по названию будет автомассив. Как можно избежать?
Цитата Сообщение от nxnx Посмотреть сообщение
код трудно читаем.
Почему? Вроде структурированно... Правда там есть небольшая помарка в структурированном виде.
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
02.04.2013, 16:09
Цитата Сообщение от M1lleniuM Посмотреть сообщение
Писать лишние строки? Почему бы не засунуть в один файл, а потом его инклудить.
http://php.net/manual/ru/function.require.php

Цитата Сообщение от M1lleniuM Посмотреть сообщение
Почему? Вроде структурированно... Правда там есть небольшая помарка в структурированном виде.
Нет обертки mysql, вышеприведенный код можно сократить очень сильно.




Цитата Сообщение от M1lleniuM Посмотреть сообщение
Ну судя по названию будет автомассив. Как можно избежать?
в сочетании с
PHP
1
error_reporting(E_ALL);
на экран скорее всего будет выведено сообщение об ошибке,
которое раскроет информацию о пути.
http://php.net/manual/ru/function.is-array.php
http://php.net/manual/ru/function.is-scalar.php
http://php.net/manual/ru/book.filter.php
1
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
02.04.2013, 17:54  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
http://php.net/manual/ru/function.require.php
Понял. Буду использовать require_once.

Цитата Сообщение от nxnx Посмотреть сообщение
Нет обертки mysql, вышеприведенный код можно сократить очень сильно.
А можно поподробнее по обертку mysql? Что это и с чем его едят?

Цитата Сообщение от nxnx Посмотреть сообщение
на экран скорее всего будет выведено сообщение об ошибке,
которое раскроет информацию о пути.
http://php.net/manual/ru/function.is-array.php
http://php.net/manual/ru/function.is-scalar.php
http://php.net/manual/ru/book.filter.php
Понял, добавлю несколько проверок еще в скрипт.
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
02.04.2013, 21:51
Цитата Сообщение от M1lleniuM Посмотреть сообщение
А можно поподробнее по обертку mysql? Что это и с чем его едят?
ну тут речь о том, что неплохобы написать класс/функцию которая будет делать много действий 1 вызовом:
подключатся к базе(если не подключены), делать запрос, строковые параметры прогонять через mysql_real_escape_string() и выдавать результат. а то каждый раз вызывать mysql_ функции громоздко. и такой код трудно читается
т.е. вот этот код:
PHP
1
2
3
4
$login=mysql_real_escape_string($login);
                $pass=mysql_real_escape_string($pass);
                $email=mysql_real_escape_string($email);
                $q4=mysql_query('SELECT COUNT(*) FROM `table` WHERE `Login`="'.$login.'" OR `Email`="'.$email.'"') or die
превратить в нечто такое:
PHP
1
2
3
$q4=my_mysql_func_sql(
'SELECT COUNT(*) FROM `table` WHERE `Login`={1} OR `Email`={2}',array($login,$email)
);
думаю идея ясна
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.04.2013, 22:06
Цитата Сообщение от nxnx Посмотреть сообщение
ну тут речь о том, что неплохобы написать класс/функцию которая будет делать много действий 1 вызовом:
подключатся к базе(если не подключены), делать запрос, строковые параметры прогонять через mysql_real_escape_string() и выдавать результат
ну и зачем обертка над mysql, когда есть mysqli/PDO ? И потом, в любом случае (и без всяких оберток) можно это все оптимизировать в длине и красоте кода, используя массивы и цикл (альтернативный вариант - array_map, к примеру)
1
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
02.04.2013, 22:21
Цитата Сообщение от KOPOJI Посмотреть сообщение
ну и зачем обертка над mysql, когда есть mysqli/PDO
чтобы убрать лишний код от глаз подальше, но это дело вкуса.
0
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
02.04.2013, 23:39  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
чтобы убрать лишний код от глаз подальше, но это дело вкуса.
Ну немного изменил....
Кликните здесь для просмотра всего текста

index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if (isset($_POST['submit'])){
    if(isset($_POST['login'], $_POST['pass'], $_POST['pass2'], $_POST['email'])){
        $login=trim(stripslashes(htmlspecialchars($_POST['login'])));
        $pass=trim(stripslashes(htmlspecialchars($_POST['pass'])));
        $pass2=trim(stripslashes(htmlspecialchars($_POST['pass2'])));
        $email=trim(stripslashes(htmlspecialchars($_POST['email'])));
        echo var_dump($_POST);
        if (!empty($login) && !empty($pass) && !empty($pass2) && !empty($email)){
            if($pass==$pass2){
                if(is_scalar($login) && is_scalar($pass) && is_scalar($email)){
                    if(filter_var($email, FILTER_VALIDATE_EMAIL)){
                        require_once "function.php";
                        connect($login, $pass, $email);
                        $q4=mysql_query('SELECT COUNT(*) FROM `table` WHERE `Login`="'.$login.'" OR `Email`="'.$email.'"') or die ('Mysql error4: ' . mysql_error());
                        if (mysql_result($q4, 0) > 0)
                            echo 'Пользователь с таким ником или email уже зарегистрирован';
                        else {
                            arr=str_split('1234567890qwertyuiopasdfghjklzxcvbnm');
                            $salt='';
                            for ($i=0; $i<=5; $i++)
                                $salt .= $arr[array_rand($arr)];
                            $pass=md5($salt . $pass . $salt);
                            $q5=mysql_query('INSERT INTO `table` (`Login`,`Password`,`Salt`) VALUES ("'.$login.'", "'.$pass.'", "'.$salt.'"') or die ('Mysql error5: ' . mysql_error());
                            header("Location: http://site.net");
                            }
                        } else
                            echo 'Ощибка!!!';
                    } else
                        echo 'Ошибка!';
                } else
                    echo 'Пароли не совпадают!';
            } else
                echo 'Вы заполнили не все поля!';
        }
    }
function.php
PHP
1
2
3
4
5
6
7
8
9
10
11
function connect ($login, $pass, $email){
    $login=mysql_real_escape_string($login);
    $pass=mysql_real_escape_string($pass);
    $email=mysql_real_escape_string($email);
    $dbhost='';
    $dbname='';
    $dbuser='';
    $dbpass='';
    $link=mysql_connect($dbhost, $dbuser, $dbpass) or die ('Не могу подключится к БД:'.mysql_error());
    $select=mysql_select_db($dbname, $link) or die ('Ошибка выбора БД: '.mysql_error());
}

С запросами не очень понятно. Зачем для каждого запроса делать отдельную функцию? Перенос кода получается...

Добавлено через 2 минуты
Строк получилось даже больше, за счет добавления еще проверок)
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
03.04.2013, 11:42
Цитата Сообщение от M1lleniuM Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
else {
                              ...
                            }
                        } else
                            echo 'Ощибка!!!';
                    } else
                        echo 'Ошибка!';
                } else
                    echo 'Пароли не совпадают!';
            } else
                echo 'Вы заполнили не все поля!';
        }
    }
слишком большая вложенность - разбейте код на функции
1
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
03.04.2013, 11:44  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
слишком большая вложенность - разбейте код на функции
Т.е. Внутри этого же кода создавать функции и после сразу их вызывать?
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
03.04.2013, 11:50
смотри , можно оформлять вложенностью
PHP
1
2
3
4
if (условие) {
  if (условие){
  }
}
а можно от обратного
PHP
1
2
3
4
5
6
7
function somefunction(){
if (!условие) return ...
if (!условие) return ...
if (!условие) return ...
действие
действие
}
во втором случае код будет легче воспринять, и если рабить какие-то дейсвия на кусочки, тогда алгартим работы станет еще более понатен - да задекларировать и вызвать
0
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
03.04.2013, 11:51  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
во втором случае код будет легче воспринять, и если рабить какие-то дейсвия на кусочки, тогда алгартим работы станет еще более понатен - да задекларировать и вызвать
Вот спасибо! Буду использовать !
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
03.04.2013, 11:56
Цитата Сообщение от M1lleniuM Посмотреть сообщение
Хорошо бы еще добавить что-то вроде каптчи..
А емельное подтверждение уже есть?
1
03.04.2013, 11:57
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

Емеля, подтверди!

3
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
03.04.2013, 12:00
Цитата Сообщение от M1lleniuM Посмотреть сообщение
Я так понимаю, каптча создается с помощью GD графики?
Капча может быть вообще без графики. Капча есть версия теста Тьюринга, которую судит машина и в которой используется лучшая, чем у машин, способность человека распознавать зашумлённую инфу, а графику ты подсунешь, или на фоне помех зачитаешь текст в наушники, решать тебе.
1
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
03.04.2013, 20:39  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
во втором случае код будет легче воспринять, и если рабить какие-то дейсвия на кусочки, тогда алгартим работы станет еще более понатен - да задекларировать и вызвать
Вроде засунул все в функцию, и после проверок "обратного" выдаю ретурн с обрывом скрипта, и выдачей сообщения. Но похоже для этого exit() не подходит. Подскажите, какой вывод ошибки использовать?
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function registration() {
    if (!isset($_POST['button']))
        return exit('Ошибка!');
    if(!isset($_POST['login'], $_POST['pass'], $_POST['pass2'], $_POST['email']))
        return exit('Ошибка!!!');
    $login=trim(stripslashes(htmlspecialchars($_POST['login'])));
    $pass=trim(stripslashes(htmlspecialchars($_POST['pass'])));
    $pass2=trim(stripslashes(htmlspecialchars($_POST['pass2'])));
    $email=trim(stripslashes(htmlspecialchars($_POST['email'])));
    if (empty($login) || empty($pass) || empty($pass2) || empty($email))
        return exit('Вы ввели не все данные!');
    if($pass!=$pass2)
        return exit('Пароли не совпадают!');
    if(!is_scalar($login) || !is_scalar($pass) || !is_scalar($email))
        return exit('Ошибка!!');
    if (!filter_var($email, FILTER_VALIDATE_EMAIL))
        return exit('Неверный Email');
    require_once "function.php";
    connect($login,$pass,$email);
    $q4=mysql_query('SELECT COUNT(*) FROM `table` WHERE `Login`="'.$login.'" OR `Email`="'.$email.'"') or die ('Mysql error4: ' . mysql_error());
    if (mysql_result($q4, 0) > 0)
        return exit('Пользователь с таким ником или email уже зарегистрирован');
    $arr=str_split('1234567890qwertyuiopasdfghjklzxcvbnm');
    $salt='';
    for ($i=0; $i<=5; $i++)
        $salt .= $arr[array_rand($arr)];
    $pass=md5($salt . $pass . $salt);
    $q5=mysql_query('INSERT INTO `table` (`Login`,`Password`,`Salt`, `Email`) VALUES ("'.$login.'", "'.$pass.'", "'.$salt.'", "'.$email.'")') or die ('Mysql error5: ' . mysql_error());
    header("Location: http://morohon.site88.net");
    exit();
}
registration();


Добавлено через 29 секунд
Цитата Сообщение от taras atavin Посмотреть сообщение
А емельное подтверждение уже есть?
Еще нет. С этим бы разобраться

Добавлено через 46 секунд
Хотя... return же вроде сам обрывает.. Или я ошибаюсь?

Добавлено через 45 секунд
В том смысле, что будет достаточно
PHP
1
return 'Ошибка';
0
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
05.04.2013, 00:22  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
а можно от обратного
Подскажите, что здесь неправильно?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function registration() {
    if (!isset($_POST['button']))
        return 'Ошибка!';
    if(!isset($_POST['login'], $_POST['pass'], $_POST['pass2'], $_POST['email']))
        return 'Ошибка!!!';
    $login=trim(stripslashes(htmlspecialchars($_POST['login'])));
    $pass=trim(stripslashes(htmlspecialchars($_POST['pass'])));
    $pass2=trim(stripslashes(htmlspecialchars($_POST['pass2'])));
    $email=trim(stripslashes(htmlspecialchars($_POST['email'])));
    if (empty($login) || empty($pass) || empty($pass2) || empty($email))
        return 'Вы ввели не все данные!';
    if($pass!=$pass2)
        return 'Пароли не совпадают!';
    if(!is_scalar($login) || !is_scalar($pass) || !is_scalar($email))
        return 'Ошибка!!';
    if (!filter_var($email, FILTER_VALIDATE_EMAIL))
        return 'Неверный Email';
    require_once "function.php";
    connect($login,$pass,$email);
    $q4=mysql_query('SELECT COUNT(*) FROM `table` WHERE `Login`="'.$login.'" OR `Email`="'.$email.'"') or die ('Mysql error4: ' . mysql_error());
    if (mysql_result($q4, 0) > 0)
        return 'Пользователь с таким ником или email уже зарегистрирован';
    $arr=str_split('1234567890qwertyuiopasdfghjklzxcvbnm');
    $salt='';
    for ($i=0; $i<=5; $i++)
        $salt .= $arr[array_rand($arr)];
    $pass=md5($salt . $pass . $salt);
    $q5=mysql_query('INSERT INTO `table` (`Login`,`Password`,`Salt`, `Email`) VALUES ("'.$login.'", "'.$pass.'", "'.$salt.'", "'.$email.'")') or die ('Mysql error5: ' . mysql_error());
    header("Location: http://morohon.site88.net");
    exit();
}
registration();
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.04.2013, 10:50
Цитата Сообщение от M1lleniuM Посмотреть сообщение
function registration()
ну лучше наверное передавать туда $_POST, а внутри работать с локальным массивом. Вдруг вы захотите сделать через GET, кто ж знает?
Цитата Сообщение от M1lleniuM Посмотреть сообщение
htmlspecialchars
зачем? Она здесь не нужна.
Цитата Сообщение от M1lleniuM Посмотреть сообщение
$pass2
а зачем ее вообще инициализировать? Один раз сравнил на схожесть и забыл.
Цитата Сообщение от M1lleniuM Посмотреть сообщение
SQL
1
WHERE `Login`="'.$login.'"
данные не проэкранированы перед запросом => дыра в защите и возможные ошибки.

Добавлено через 36 секунд
Цитата Сообщение от M1lleniuM Посмотреть сообщение
PHP
1
if(!is_scalar($login)
а смысл? Ошибки вы уже получите выше
1
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
05.04.2013, 11:14
еще смысл отдавать ошибку и не выводить ее
PHP
1
$error = registration();
А далее уже выводите куда надо
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.04.2013, 11:14
Помогаю со студенческими работами здесь

Замечания
Недавно начал осваивать с#. Сделал игру крестики-нолики. Хочу услышать замечания и пожелания. Буду очень благодарен. Проект прилагаю)

Замечания по верстке
Посмотрите, пожалуйста, правильно ли сделана верстка http://web-portfolio1.narod.ru/index5/index.html, выскажите замечания. *Ссылки на...

Замечания по коду
Здравствуйте! Можете посмотреть код, и написать замечания по нему...Я на Java пишу недавно.Хотелось бы выслушать замечания по коду или...

Оценка и замечания
Выставляю на обсуждение саит http://rulletron.ucoz.net В чем моя ошибка? Никак немогу набрать посетителей. Нету потоциальных игроков....

Замечания по сборке
Всем доброго вечера. Решил обновить пк, но опыта не очень много, поэтому обращаюсь сюда. На данный момент вырисовывается такая сборка....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru