Обучение/Помощь новичкам | Помощь в изучении PDO
Тема закрыта by
Удален
Ладно,пошел спать)
Темка пусть побудет,утром посмотрю)
Спс за наставления)
Темка пусть побудет,утром посмотрю)
Спс за наставления)
JJJ (05.01.2018 в 03:07)
Avenax (05.01.2018 в 03:05)
JJJ , я использую prepare(?)->execute([значение]);
Там значения через запятую можно приписать?
То есть :
Avenax (05.01.2018 в 03:05)
JJJ , я использую prepare(?)->execute([значение]);
Там значения через запятую можно приписать?
То есть :
->execute($name,$city);
да, можно, только про плейсхолдеры не забудь, в запросе
упд: ну и $name,$city должны быть в массиве
________
посл. ред. 05.01.2018 в 03:15; всего 1 раз(а); by Avenax
Вот практикуюсь:
Питаюсь написать систему регистрации)
Вроде работает)
НО есть ряд вопросов:
1)Как правильно здесь зашифровать данные?
2)Как правильно сделать проверку на наличие ячейки?
--------
Прошу указать на мои ошибки,что бы далее тат не делать,ибо ловишь сразу потом всегда делаешь)
Питаюсь написать систему регистрации)
<?php
include ('sql.php');
if(isset($user['id'])) {
header('Location: /main.php');
}
if(isset($_GET['rega'])) {
$login=htmlspecialchars(trim($_POST['login']));
$pass=htmlspecialchars(trim($_POST['pass']));
$new=array(
'login'=>$login,
'pass'=>$pass);
$STH=$DBH->prepare("SELECT `id` FROM `users` WHERE `login`=':login'");
$STH->execute($new);
$usb=$STH->fetch(PDO::FETCH_ASSOC);
if($usb>0) echo 'Логин занят!';
elseif($login==$pass) echo 'Логин и пароль совпадают!';
elseif(empty($login)) echo 'Пустой логин!';
elseif(empty($pass)) echo 'Пустой пароль!';
else {
$STH=$DBH->prepare('INSERT INTO users (login,pass) values (:login,:pass)');
$STH->execute($new);
setcookie('login',$login,time()+86400);
setcookie('pass',$pass,time()+86400);
header('Location: /main.php');
exit();
}
}
echo '<form action=?rega method=post>
Придумай логин:<br>
<input type=text name=login><br>
Придумай пароль:<br>
<input type=password name=pass><br>
<input type=submit value=Регистрация></form>';
?>
Вроде работает)
НО есть ряд вопросов:
1)Как правильно здесь зашифровать данные?
2)Как правильно сделать проверку на наличие ячейки?
--------
Прошу указать на мои ошибки,что бы далее тат не делать,ибо ловишь сразу потом всегда делаешь)
Ибо универсальная Регистрация какая то выходит(
Если данные совпадают ,то Выполняеться вход,а не вывод ошибки)
Ожидаю помощи)
Если данные совпадают ,то Выполняеться вход,а не вывод ошибки)
Ожидаю помощи)
DELETED
5 января 2018, в 9:30
Delete
в первом запросе нет столбца соответствующего параметру массива - :pass
ну и по мелочи ещё косяки
PhpStorm (05.01.2018 в 09:30)
в массиве имена параметров должны начинаться с :
в первом запросе нет столбца соответствующего параметру массива - :pass
ну и по мелочи ещё косяки
в массиве имена параметров должны начинаться с :
в первом запросе нет столбца соответствующего параметру массива - :pass
ну и по мелочи ещё косяки
Зачем он там если проверяенться существование логина?
DELETED
5 января 2018, в 14:36
Delete
JJJ (05.01.2018 в 14:31)
PhpStorm (05.01.2018 в 09:30)
в массиве имена параметров должны начинаться с :
в первом запросе нет столбца соответствующего параметру массива - :pass
ну и по мелочи ещё косяки
Зачем он там если проверяенться существование логина?
PhpStorm (05.01.2018 в 09:30)
в массиве имена параметров должны начинаться с :
в первом запросе нет столбца соответствующего параметру массива - :pass
ну и по мелочи ещё косяки
Зачем он там если проверяенться существование логина?
нутк ты же отправляешь весь массив $STH->execute($new);
количество токенов должно совпадать c количеством переменных
PhpStorm , хорошо,как правильно?
DELETED
5 января 2018, в 14:41
Delete
JJJ (05.01.2018 в 14:38)
PhpStorm , хорошо,как правильно?
PhpStorm , хорошо,как правильно?
$STH=$DBH->prepare("SELECT `id` FROM `users` WHERE `login`=':login'");
$STH->execute(':login' => $login);
либо
$STH=$DBH->prepare("SELECT `id` FROM `users` WHERE `login`= ?");
$STH->execute($login);
PhpStorm , первый вроде безопасней