Loading...
Обучение/Помощь новичкам | Помощь в изучении PDO
Ладно,пошел спать)
Темка пусть побудет,утром посмотрю)
Спс за наставления)
JJJ (05.01.2018 в 03:07)
Avenax (05.01.2018 в 03:05)
JJJ , я использую prepare(?)->execute([значение]);

Там значения через запятую можно приписать?
То есть :

->execute($name,$city);


да, можно, только про плейсхолдеры не забудь, в запросе
упд: ну и $name,$city должны быть в массиве
________
посл. ред. 05.01.2018 в 03:15; всего 1 раз(а); by Avenax
Вот практикуюсь:
Питаюсь написать систему регистрации)

<?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)Как правильно сделать проверку на наличие ячейки?
--------
Прошу указать на мои ошибки,что бы далее тат не делать,ибо ловишь сразу потом всегда делаешь)
Ибо универсальная Регистрация какая то выходит(
Если данные совпадают ,то Выполняеться вход,а не вывод ошибки)
Ожидаю помощи)
в массиве имена параметров должны начинаться с :

в первом запросе нет столбца соответствующего параметру массива - :pass

ну и по мелочи ещё косяки
PhpStorm (05.01.2018 в 09:30)
в массиве имена параметров должны начинаться с :

в первом запросе нет столбца соответствующего параметру массива - :pass

ну и по мелочи ещё косяки

Зачем он там если проверяенться существование логина?
JJJ (05.01.2018 в 14:31)
PhpStorm (05.01.2018 в 09:30)
в массиве имена параметров должны начинаться с :

в первом запросе нет столбца соответствующего параметру массива - :pass

ну и по мелочи ещё косяки

Зачем он там если проверяенться существование логина?


нутк ты же отправляешь весь массив $STH->execute($new);

количество токенов должно совпадать c количеством переменных
PhpStorm , хорошо,как правильно?
JJJ (05.01.2018 в 14:38)
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 , первый вроде безопасней
Онлайн: 4
Время:
Gen. 0.0898
(c) Bym.Guru 2010-2026