Такс...
Делаю форму регистрации. Когда пытаюсь записать данные в бд-шку при проверке выдает ошибку.
$mysql = new mysqli('localhost', 'root', '', 'factotum_base');
if ($mysql) {
echo ":)";
} else {
echo ":(";
}
При этом соединение с бд происходит, данные правильно обработаны и все вроде хорошо. Получается ошибка где-то на этапе INSERT-а.
вот php на странице регистрации:
if(isset($_POST["send"])) {
$name = filter_var(trim($_POST['name']), FILTER_SANITIZE_STRING);
$email = filter_var(trim($_POST['email']), FILTER_SANITIZE_EMAIL);
$pass = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);
$prove_pass = filter_var(trim($_POST['prove_pass']), FILTER_SANITIZE_STRING);
$error = false;
$error_name = "";
$error_email = "";
$error_pass = "";
$error_prove_pass = "";
if(mb_strlen($name) < 5 || mb_strlen($name) > 50) {
$error_name = "Недопустимая длина имени";
$error = true;
// exit();
}
//и т.д. обрабатываю все строки
//Если ошибок нет, записываю данные в сессию, отправляю письмо с подтверждением на почту и делаю редирект на check.php
if(!$error) {
$_SESSION["name"] = $name;
$_SESSION["email"] = $email;
$_SESSION["pass"] = $pass;
$_SESSION["prove_pass"] = $prove_pass;
$subject = "=?utf-8?B?".base64_encode('Письмо с подтверждением.')."?=";
$headers = "From: Factotum\r\nReply-to: Factotum\r\nContent-type: text/plain; charset=utf-8\r\n";
$message = "Ссылка для подтверждения регистрации на Factotum.com: #Ссылка на сайт#";
mail($email, $subject, $message, $headers); //поменять метод кодировки, чтобы считывалось как надо
header("Location: /php/enter_validation/check.php?send=1");
exit();
}
}
Check.php - записываю данные в бд (ошибка где-то здесь)
<?php
session_start();
header('Content-Type: text/html; charset=utf-8');
$name = $_SESSION["name"];
$email = $_SESSION["email"];
$pass = $_SESSION["pass"];
$prove_pass = $_SESSION["prove_pass"];
$hashed_pass = password_hash($pass, PASSWORD_DEFAULT);
$mysql = new mysqli('localhost', 'root', '', 'factotum_base');
mysqli_set_charset($mysql, "utf8");
$sql1 = "INSERT INTO `users`(`name`, `email`, `password`) VALUES('$name', '$email', '$hashed_pass')";
$res = mysqli_query($mysql, $sql1);
if ($res == false) {
printf("Ошибка при выполнении запроса\n"); //вылетает ошибка :(
} else {
printf("Запрос выполнен :)");
}
mysqli_close($mysql);
header("refresh: 5; url=/"); //задержка перед редиректом
?>