Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
4 / 3 / 2
Регистрация: 11.08.2016
Сообщений: 352

PDO: изменить пароль в личном кабинете

21.04.2018, 23:42. Показов 2789. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Работаю над заменой старого пароля новым. Проблема в том, что желательно использовать PDO и сделать запросы к БД максимально безопасными. Код представляю ниже, а суть проблемы в том, что стоит белый экран. В логах информации 0. Ранее логи говорили, что ошибка в параметрах:
Кликните здесь для просмотра всего текста

[21-Apr-2018 23:22:13 Europe/Moscow] PHP Warning: password_verify() expects exactly 2 parameters, 1 given in /home/j/j99522iv/programm/public_html/outh/setting/passref.php on line 25

Теперь все тоже самое в строке 28. Что за напасть такая... .
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
<?php
     session_start();
     include "DataBaze.php";
      header("Content-Type: text/html; charset=utf-8");
     if(!(isset($_SESSION['name']))){
         echo '<script type="text/javascript">alert("Вам запрещен доступ к этой странице ");document.location.href = "/outh/";</script>';
         exit();
     };
     $user_id= $_SESSION['id_user'];
     if (isset($_POST['OK01'])){
         $change=filter_input_array(INPUT_POST, [
             'password'=>[ 
                 'filter'=>FILTER_VALIDATE_REGEXP,
                 'options'=>['regexp'=>'/.{5,}/']],
             'newpassword'=>[ 
                 'filter'=>FILTER_VALIDATE_REGEXP,
                 'options'=>['regexp'=>'/.{5,}/']],
             'twonewpassword'=>[ 
                 'filter'=>FILTER_VALIDATE_REGEXP,
                 'options'=>['regexp'=>'/.{5,}/']],
             ]);
         $sqlit= $DataBaze->prepare("SELECT*FROM `users` WHERE `id`=?");
         $sqlit->execute([$user_id]);
         if ($raw = $sqlit->fetch(PDO::FETCH_ASSOC)){
             if(password_verify($change['password'],$raw['password'])){
                 $login= $_SESSION['id_user'];
                 $passwordnew= $change['newpassword'];
                 password_hash($passwordnew);
                 $sqlup= $DataBaze->prepare("UPDATE `users` SET `password`=? WHERE `id`=?");
                 $sqlup->execute([
                         $passwordnew,
                         $_SESSION['id_user']
                     ]);
                  $_SESSION['answer'] = "<div style='color: green'>Пароль успешно изменен</div>";
             }
             else $_SESSION['answer'] = "<div style='color: red'>Пароли не одинаковы</div>";
         }
         else echo "Ошибку искать тут";
     }
     else echo "Можно и тут поискать, но вряд ли...";   
     ?>
Буду благодарен за помощь!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.04.2018, 23:42
Ответы с готовыми решениями:

Статистика в личном кабинете
Доброго времени суток! знаю php очень плохо, к сожалению времени мало на изучение, надеюсь кто нибудь подскажет или поможет с дипломом. ...

Раздел в Личном кабинете: Друзья
Здравствуйте! Третий день идет (не считая дней потраченных на &quot;резиновую&quot; версту ), а я с места сдвинутся не могу. Появилась идея...

Не работает регистрация в личном кабинете
Решил я набыдлокодить небольшой файловый хостинг где у людей будет свой личный кабинет (после регистрации,кочечно), и они в нём смогут...

21
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
22.04.2018, 07:53
Цитата Сообщение от Uni_programist Посмотреть сообщение
password_hash($passwordnew);
Вы никуда не сохранили результат выполнения этой функции.
0
4 / 3 / 2
Регистрация: 11.08.2016
Сообщений: 352
22.04.2018, 08:48  [ТС]
Jodah, то есть нужно присвоить переменную? Вот так:
PHP
1
$xaker=password_hash($passwordnew);
Однако как это решает ошибку?
Хотя погодите, снова проблема (при том, что в оригинальном коде изменений не делал): пароль в базе данных; не шифрованный. В чем ошибка и можно её решить методом приведенным выше?
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
22.04.2018, 10:09
Uni_programist, скажите, у Вас в 6 строке:
Цитата Сообщение от Uni_programist Посмотреть сообщение
echo '<script type="text/javascript">alert("Вам запрещен доступ к этой странице ");document.location.href = "/outh/";</script>';
для чего это делается?
0
4 / 3 / 2
Регистрация: 11.08.2016
Сообщений: 352
22.04.2018, 10:36  [ТС]
atanov, запретить доступ к скрипту не авторизированным пользователям. Однако, у меня пользователь авторизован.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
23.04.2018, 09:36
Цитата Сообщение от Uni_programist Посмотреть сообщение
PHP
1
$xaker=password_hash($passwordnew);
Что за $xaker? Вы хотите записать в базу хэш пароля, значит сохранять результат нужно в $passwordnew. Иначе получается, что вы вычислили хэш, но никуда его не сохранили, отсюда и:
Цитата Сообщение от Uni_programist Посмотреть сообщение
пароль в базе данных; не шифрованный
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
23.04.2018, 11:14
Цитата Сообщение от Uni_programist Посмотреть сообщение
запретить доступ к скрипту не авторизированным пользователям.
Это Вы делаете на клиенте - неразумно. Лучше все авторизации проверять на стороне сервера.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
23.04.2018, 14:22
atanov, а где здесь проверка на стороне клиента?
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
23.04.2018, 14:34
Цитата Сообщение от Jodah Посмотреть сообщение
а где здесь проверка на стороне клиента?
не проверка, а
Цитата Сообщение от Uni_programist Посмотреть сообщение
запретить доступ к скрипту не авторизированным пользователям
вот здесь:

Цитата Сообщение от atanov Посмотреть сообщение
Uni_programist, скажите, у Вас в 6 строке:
Сообщение от Uni_programist
echo '<script type="text/javascript">alert("Вам запрещен доступ к этой странице ");document.location.href = "/outh/";</script>';
для чего это делается?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
23.04.2018, 14:57
atanov, запрет доступа у ТС на сервере. JS-код - просто для отображения информационного окошка.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
23.04.2018, 15:05
Цитата Сообщение от Jodah Посмотреть сообщение
JS-код - просто для отображения информационного окошка.
и перенаправления:

Цитата Сообщение от atanov Посмотреть сообщение
ocument.location.href = "/outh/"
.

Действительно, что-то не видится как это обойти. Хотя...
0
4 / 3 / 2
Регистрация: 11.08.2016
Сообщений: 352
23.04.2018, 22:46  [ТС]
atanov, да не возможно это обойти (ну или надо быть гением, и создать $_SESSION['name'], как я понимаю непосредственно на сервере) . JS окно, да собственно сам скрипт генерируется в тот момент, когда пользователь не авторизирован. В остальных случаях идет обработка и исполнение. Только как поменять пароль с помощью формы?
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
24.04.2018, 06:27
Uni_programist, так Вам же Jodah, уже писал, что код выполняет встроенную функцию, но никуда результат не сохраняет. Объедините 27 и 28 строки:

PHP
1
$passwordnew = password_hash($change[‘newpassword’]);
Добавлено через 7 минут
И ещё - в 23 строке разве название массива не пропущено?
0
4 / 3 / 2
Регистрация: 11.08.2016
Сообщений: 352
25.04.2018, 19:31  [ТС]
atanov,
Цитата Сообщение от atanov Посмотреть сообщение
И ещё - в 23 строке разве название массива не пропущено?
у меня id usera хранится в SESSION-->$id_user(в результате работы Личного кабинета и преобразования).
И все же ничего не работает. Экран белый, только старый пароль удаляется.
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
<?php
     session_start();
     include "DataBaze.php";
      header("Content-Type: text/html; charset=utf-8");
     if(!(isset($_SESSION['name']))){
         echo '<script type="text/javascript">alert("Вам запрещен доступ к этой странице ");document.location.href = "/outh/";</script>';
         exit();
     };
     $user_id= $_SESSION['id_user'];
     if (isset($_POST['OK01'])){
         $change=filter_input_array(INPUT_POST, [
             'password'=>[ 
                 'filter'=>FILTER_VALIDATE_REGEXP,
                 'options'=>['regexp'=>'/.{5,}/']],
             'newpassword'=>[ 
                 'filter'=>FILTER_VALIDATE_REGEXP,
                 'options'=>['regexp'=>'/.{5,}/']],
             'twonewpassword'=>[ 
                 'filter'=>FILTER_VALIDATE_REGEXP,
                 'options'=>['regexp'=>'/.{5,}/']],
             ]);
         $sqlit= $DataBaze->prepare("SELECT*FROM `users` WHERE `id`=?");
         $sqlit->execute([$user_id]);
         if ($raw = $sqlit->fetch(PDO::FETCH_ASSOC)){
             if(password_verify($change['password'],$raw['password'])){
                 $login= $_SESSION['id_user'];
                 $passwordnew= password_hash($change['newpassword']);
                 $sqlup= $DataBaze->prepare("UPDATE `users` SET `password`=? WHERE `id`=?");
                 $sqlup->execute([
                         $passwordnew,
                         $user_id
                     ]);
                  $_SESSION['answer'] = "<div style='color: green'>Пароль успешно изменен</div>";
             }
             else $_SESSION['answer'] = "<div style='color: red'>Пароли не одинаковы</div>";
         }
         else echo "Ошибку искать тут";
     }
     else echo "Можно и тут поискать, но врядли...";   
     ?>
Не понимаю я этого момента.... Однако отмечу, что нажав на кнопочку "Вернуться к предыдущей странице", то всплывает $_SESSION['answer'](скриншот). с компьютерной точки зрения это так, поскольку старый пароль был удален, а соответственно изменен, но так быть не должно. Пароль должен быть только в двух состояниях, как основных это:
-пароль изменен
-пароль не изменен (по причине ошибке)
Однако, как понимать, что ячейка пароля просто напросто обнуляется? По какому правилу?
Кликните здесь для просмотра всего текста
[25-Apr-2018 19:15:17 Europe/Moscow] PHP Warning: password_hash() expects at least 2 parameters, 1 given in /home/j/j99522iv/programm/public_html/outh/setting/passref.php on line 27
Миниатюры
PDO: изменить пароль в личном кабинете  
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
26.04.2018, 07:56
Лучший ответ Сообщение было отмечено Uni_programist как решение

Решение

Uni_programist, у Вас php 7-ка?
Попробуйте строку 27 заменить на эту:

PHP
1
$passwordnew = password_hash($change['newpassword'], PASSWORD_DEFAULT);
А вообще, следует пройтись по всем переменным, чтобы отследить, может где-то теряется какая-нибудь.

Добавлено через 9 минут
Uni_programist,

Мне ещё не нравятся 22-23 строки. Попробуйте так:

PHP
1
2
3
$sqlit= $DataBaze->prepare("SELECT*FROM `users` WHERE `id`= :id");
$sqlit->bindParam(':id', $user_id);
$sqlit->execute();
c 28-32 строки:

PHP
1
2
3
4
$sqlup= $DataBaze->prepare("UPDATE `users` SET `password`= :password WHERE `id`= :id");
$sqlit->bindParam(':password', $passwordnew);
$sqlit->bindParam(':id', $user_id);
$sqlup->execute();
1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
26.04.2018, 09:44
Цитата Сообщение от atanov Посмотреть сообщение
PHP
1
$passwordnew = password_hash($change['newpassword'], PASSWORD_DEFAULT);
Не надо использовать PASSWORD_DEFAULT. PASSWORD_ARGON2I для php >= 7.2, PASSWORD_BCRYPT для остальных

Цитата Сообщение от atanov Посмотреть сообщение
Мне ещё не нравятся 22-23 строки. Попробуйте так:
Смысл, что это принципиально меняет?
0
4 / 3 / 2
Регистрация: 11.08.2016
Сообщений: 352
26.04.2018, 21:36  [ТС]
atanov, огромное Вам спасибо. Работает! Теперь остался самый маленький момент. Как перезагрузить страницу (header)? но только так что бы блок отобразился сразу без нажатия? Могу дать стили и коды. Поскольку, как я уже успел понять, конструкция: http://сайт.beget.tech/outh/se... rd_refresh не работает, нужно только на ссылку нажимать, а вот как это реализуется? Может нужен дополнительный JS-code?
PHP/HTML
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
     session_start();
      header("Content-Type: text/html; charset=utf-8");
     if(!(isset($_SESSION['name']))){
         echo '<script type="text/javascript">alert("Вам запрещен доступ к этой странице ");document.location.href = "/outh/";</script>';
         exit();
     };
     $newpermennaya=$_SESSION['name'];
     $id_user= $_SESSION['id_user'];
?>
     
<!DOCTYPE html>
     <html>
         <head>
             <title>Настроки|Личный кабинет</title>
             <meta http-equiv="content-type" content="text/html; charset=UTF-8">
             <link rel="stylesheet" type="text/css" href="/style.css">
             <style type="text/css"> 
             .setting {padding: 85px 0 63px;}
             .setting .title2 {margin-bottom: 43px;}
             .block-main {display: none;}
             .block-title {position: relative; color: #000; width: 775px; font-size: 19px; line-height: 23px; margin-bottom: 10px; display: inline-block; *display: inline; *zoom: 1; text-decoration: none; cursor: pointer;}
             .block-title span {border-bottom: 1px dashed #b2b2b2; }
             .block-title:hover span, .opened .block-title span {border: 0;}
             .opened .block-title:before {content: ""; position: absolute; left: -23px; top: 10px; width: 0; border: 5px solid transparent; border-top: 4px solid #ff9898;}
             .block-title:before {content: ""; position: absolute; left: -23px; top: 10px; width: 0; border: 5px solid transparent; border-left: 4px solid #ff9898; border-top: 4px solid transparent;}
             .block-main {background: #fbf8ed; font-size: 18px; padding: 19px 30px; width: 730px;}
             .setting-main {margin: 0 0 0 110px;}
             .setting-main>div {margin-bottom: 10px;}
             .setting-main p {margin-bottom: 10px;}
             .setting-main p:last-child {margin-bottom: 0;}
  </style>
<script>
function hidetxt(a) {
    a = document.getElementById(a).style;
    a.display = "block" != a.display ? "block" : "none"
};
</script>
<script type="text/javascript" src="//vk.com/js/api/openapi.js?152"></script>
         </head>
     <body>
         <div id="kuy7t1w">
            <div id="datetime">
            <b><font color="#FFF">
            <?php 
                 echo 'Время сервера: ', date('G:i');
              ?>
            </b>
            </font>
            </div>
            <div id="ssilki1">
                         <font color="#FFF">
                         <a href="/outh/userspage.php">       
                         <?php
                             if(!(isset($_SESSION['name']))){
                                 echo ' <b><i><font color="#FFF">[<a href="/reg/">Регистрация</a>|<a href="/outh/">Авторизация</a>]</font></i></b>';
                             };
                             $newpermennaya=$_SESSION['name'];
                             print "$newpermennaya";?>
                             </font>
                                 </a>
            </div>
            <a href="/"><div id="dos45tup"></div></a><div id="u4896e22"><a href="/"><font size="7" color="#ff7b00" face="Comic Sans MS" >С</a></font><font size="7" color="#FFF" face="Comic Sans MS" >айт</font>***<font size="4" color="#FFF">Настройки</font></div>
        </div>
        <div id="iop97kdu">
             <div align="center"><div id="text"><b><font size="6" color="#f00"> Настройки</div></b></font></div>
             <div id="panel">Общие настройки</div>
             <div id="password"><font size="5" color="#948e8e">Пароль:</font><font size="4"> был обновлен (тут дата)</font></div>
             <div class="questions-main">
                 <div> 
                     <a onclick="hidetxt('div1');" class="block-title" rel="nofollow" href="#password_refresh" ><span>Изменить пароль входа</span></a>
                     <div class="block-main" id="div1">
                                                     <form action="/outh/setting/passref.php" method="POST">
                                                             <?php 
                                                                  if(isset($_SESSION['answer'])) {
                                                                         echo $_SESSION['answer'];
                                                                         unset($_SESSION['answer']);
                                                                  } ?>
                                                       <p><input type="password" name="password" placeholder="Ваш старый пароль" required /><span class="text">В данном поле ввести пароль, который используется сейчас для входа (больше 5 символов)</span></p>
                                                       <p><input type="password" name="newpassword" placeholder="Ваш новый пароль" required /><span class="text">Введите пароль, который Вы будете использовать в следующий раз при входе (> 5 символов)</span></p>
                                                       <p><input type="password" name="twonewpassword" placeholder="Повторите новый пароль" required /><span class="text">Повторите ввод нового пароля. Он соответсвует предыдущему полю ввода</span><p>
                                                       <p><input type="submit"  class="refreshovka" name="OK01" value="Изменить пароль"  /></p>
                                                     </form>  
                     </div>
                     </div>
                 </div> 
                
            <hr>
CSS
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 body {
     background-image: url('http://сайт.beget.tech/reg/images/bg.png');
     height: auto;
    }
a {text-decoration: none;}
a {
     color: #fff; /* Цвет ссылок */
     }
a:visited {
     color: #fff; /* Цвет посещенных ссылок */
    }
a:active {
     color: green; /* Цвет активных ссылок */
    }
#kuy7t1w {
     background: #0516ff;
     width: 100%;
     height: 100px;
     position: absolute;
     top: 0;
     left:0;
     box-shadow: 0.4em 0.4em 5px rgba(122,122,122,0.5);
    }
#datetime{
     position: absolute;
     right: 2%;
     top:2%;
    }
#ssilki1{
     position: absolute;
     top: 20%;
     right: 2%;
    }
#dos45tup {
     background-image: url('/img/2.jpg'); 
     position: absolute;
     top: 0%;
     width: 10%;
     height : 100%;
     border-radius: 100%;
    }
#dos45tup:hover{
      transform: rotateY(360deg);
      transition: 2s ease-in;
    }
#u4896e22 {
     position: absolute;
     top: 15%;
     left: 10%;
    }
@font-face {
     font-family: BadScript; /* Гарнитура шрифта */
     src: url(/download/BadScript-Regular.ttf); /* Путь к файлу со шрифтом */
    }
#text{
     font-family: BadScript;
    }
#iop97kdu{
    position: absolute;
    background: #FFF;
     outline: 2px outset #000;
     top: 20%;
     width: 94%;
     height: auto;
     margin: 1%;
     margin-bottom: 15px;
     padding-left: 25px;
     padding-bottom: 25px;
     margin-right: 6%;
}
a.block-title {
     color: #006aff;
} 
a.number {
     color: #ff9500;
}
.refreshovka  {    
     background: linear-gradient(top, #0026ff, #ff7b00);
     background: -webkit-linear-gradient(top, #0026ff, #ff7b00);
     background: -moz-linear-gradient(top, #0026ff, #ff7b00);
     background: -o-linear-gradient(top, #0026ff, #ff7b00);
     color: #fff;
     border-radius: 25px;
     position: relative;
     left: 80%;
     top: auto;
}
.text{
     font-family: Times New Roman;  
     font-size: 14px;
}
#panel{
     background: #e7e8ec;
     font-size: 34px;
     color: #000;
     border: 1px solid gray;
     margin-left: -25px;
     padding: 10px;
}
hr {
     border: 1px solid gray;
     margin-left: -25px;
}
#password{
     margin-top: 35px;
}
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
27.04.2018, 07:39
Uni_programist, честно говоря не понял, что Вы хотите сделать. Без перезагрузки требуется обновить пароль?
0
4 / 3 / 2
Регистрация: 11.08.2016
Сообщений: 352
27.04.2018, 10:59  [ТС]
atanov, нет, надо перезагрузить страницу и вывести $_SESSION['answer']. Подробнее расскажет скриншот. Поскольку конструкция "якоря" http://сайт.beget.tech/outh/se... rd_refresh не работает...
Миниатюры
PDO: изменить пароль в личном кабинете  
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
27.04.2018, 11:51
Uni_programist, я всё-равно не понимаю. Если страница перезагружается, зачем городить? Всё можно echo'ом вывести. И где в скрипте это блок "Настройки"?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2018, 11:51
Помогаю со студенческими работами здесь

Меню в личном кабинете для других пользователей
Привет всем. У меня возникла вот такая проблемма. При регистрации пользователь указывает к какой группе пользователей его отнести при этом...

Авторизация в личном кабинете
Нужно по адресу ...

Отображение файлов в личном кабинете
Здравствуйте! Подскажите пожалуйста, как такое реализовать? 1. Есть сайт и база с пользователями, базу заполняю сам(нет возможности...

Смена пароля в личном кабинете
В универе семестровка - написание сайта на аспе. Разрабатываю личный кабинет, в нем в скрываемом блоке разместил форму смены пароля. ...

Страница для заказа в личном кабинете
Здравствуйте, у меня такая задача, нестандартная, на странице личного кабинета есть список товаров, разделенная категориями как аккордеон....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru