Не отправляются данные формы в БД на сервере OpenServer
При заполнении полей ввода не сохраняются данные в бд MySQL через PHPMyAdmin на OpenServer. При регистрации пользователя или входа через админа пишет что такой пользователь не найден. checkauth.php
<?php
$login = filter_var(trim($_POST['login']),FILTER_SANITIZE_STRING);
$pass = filter_var(trim($_POST['pass']),FILTER_SANITIZE_STRING);
$mysql = new mysqli('localhost','root','','regbd');
$result=$mysql->query("SELECT * FROM users WHERE login='$login' AND pass='$pass'") ;
$user=$result->fetch_assoc();
if (count ($user)==0) {
echo "Такой пользователь не найден";
exit();
}
if($login=="admin"){
setcookie('admin', $login['login'], time() + 3600, "/");
}
setcookie('user', $user['login'], time() + 3600, "/");
$mysql->close();
header('location: /index.php' );
?>
checkreg.php
<?php
$login = filter_var(trim($_POST['login']),
FILTER_SANITIZE_STRING);
$email = filter_var(trim($_POST['email']),
FILTER_SANITIZE_STRING);
$pass = filter_var(trim($_POST['pass']),
FILTER_SANITIZE_STRING);
if(mb_strlen($login) < 3 || mb_strlen($login) > 90)
{
echo "Недопустимая длинна логина";
exit();
}
if(mb_strlen($email) < 9 || mb_strlen($email) > 100){
echo "Недопустимая длинна email";
exit();
}
if(mb_strlen($pass) < 2 || mb_strlen($pass) > 6)
{
echo "Недопустимая длинна пароля (от 2 до 6 символов)";
exit();
}
$mysql = new mysqli('localhost','root','','regbd');
$mysql->query("INSERT INTO `users` (`login`, `pass`, `email`) VALUES('$login','$pass','$email')");
$mysql->close();
header('Location: /auth.php');
?>
Ответы (1 шт):
Автор решения: Nikita Lidman
→ Ссылка
Вам необходимо было сделать printf("Сообщение ошибки: %s\n", $mysqli->error); запроса, вы сможете посмотреть почему не сохраняется.
В вашем случае, судя по скриншотам проблема в типе полей.
Выполните запрос:
ALTER TABLE `users` CHANGE `login` `login` VARCHAR(255) NOT NULL;
ALTER TABLE `users` CHANGE `pass` `pass` VARCHAR(255) NOT NULL;
ALTER TABLE `users` CHANGE `email` `email` VARCHAR(255) NOT NULL;
