Фатальная ошибка как получить правильный ответ перепробовал много решений
Fatal error: Uncaught Error: Call to undefined function VALUES() in C:\xampp\htdocs\signuptest\Signup.php:32 Stack trace: #0 {main} thrown in C:\xampp\htdocs\signuptest\Signup.php on line 32
Что я уже пробовал:
<?php session_start(); $_SESSION['message']=''; $mysqli = new mysqli('localhost','root', '' , 'signuptest'); if ($_SERVER['REQUEST_METHOD'] == 'POST') { //two passwords are equal to each other if($_POST['password'] == $_POST['confirmpassword']) { $firstname = $mysqli->real_escape_string($_POST['firstname']); $lastname = $mysqli->real_escape_string($_POST['lastname']); $email = $mysqli->real_escape_string($_POST['email']); $phonenumber = $mysqli->real_escape_string($_POST['phonenumber']); $password = md5($_POST['password']); //md5 hash password for security $avatar_path = $mysqli -> real_escape_string('image/'.$_FILES['avatar']['name']); //make sure file type if (preg_match("!image!", $_FILES['avatar']['type'])) { //copy image to images/ folder if(copy($_FILES['avatar']['tmp_name'], $avatar_path)){ $_SESSION['firstname']= $firstname; $_SESSION['avatar']= $avatar_path; $sql = "INSERT INTO users(firstname,lastname,email,phonenumber,password,avatar)" .VALUES ('$firstname','$lastname','$email','$phonenumber','$password','$avatar_path'); // if the qurey is succesful, redirect to welocme.php page, done! if ($mysqli -> query($sql) === true) { $_SESSION['message'] = 'Registration Succesful! Added $username to the database!'; header("location: welcome.php"); } else{ $_SESSION['message'] = 'User could not be added to the database'; } } else{ $_SESSION['message'] = "File upload failed!"; } } else{ $_SESSION['message'] = "Please only upload JPG files"; } } else{ $_SESSION['message'] = "Two Passwords Doesn't match"; } }
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
PHP: SQL-инъекция - руководство пользователя[^]
Richard Deeming
Кроме того, использование MD5 для хранения паролей просто неправильно. MD5 был сломан с 1996 года и считается непригодным для использования с 2010 года.
Вместо этого используйте встроенные функции PHP для хранения паролей:
PHP: password_hash[^]
РНР: функцию password_verify[^]