Привет, я работаю над простой регистрацией PHP. Но каждый раз, когда я отправляю страницу регистрации, я получаю пустой экран, без ошибок, без отображения.
Код в моем PHP-файле:
<?php
if($_SERVER['REQUEST_METHOD']=="POST"){
$IP = //my hostname
$dbuser = "my user id";
$conn = new mysqli_connect($IP, $dbuser, "","my databse name");
if(! $conn )
{
die('Could not connect: ' . mysqli_error());
}
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
$address = $_POST['address'];$query = "SELECT email FROM user where email='".$email."'";
$result = mysqli_query($conn,$query);
$numResults = mysqli_num_rows($result);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) // Validate email address
{
$message = "Invalid email address please type a valid email!!";
}elseif($numResults>=1)
{
$message = $email." Email already exist!!";
}else
{
mysqli_query("(insert into user(name,phone_number, email,pass1, pass2, address) values
('".$name."','".$phone."', '".$email."', '".$pass1."','".$pass2."','".$address."')");echo $message = "Signup Sucessfully!!";
}mysqli_close($conn);
}
print_r(error_get_last());
?>
нет никаких проблем в установлении соединения, так как я использую этот метод соединения на других страницах, и они работают нормально. Также я должен указать, что в настоящее время я работаю в облаке 9, а моя база данных mysql находится в самом облаке 9.
пожалуйста, помогите мне понять проблему.
Вы говорите, что ваша строка 42 имеет запрос вставки. Я полагаю, вы имеете в виду этот запрос:
mysqli_query("(insert into user(name,phone_number, email,pass1, pass2, address) values
('".$name."','".$phone."', '".$email."', '".$pass1."','".$pass2."','".$address."')");
Поскольку ваша ошибка говорит: «Ожидается 2 параметра», вам не хватает здесь вашего параметра подключения. Вы должны иметь это:
mysqli_query($conn, "(insert into user(name,phone_number, email,pass1, pass2, address) values
('".$name."','".$phone."', '".$email."', '".$pass1."','".$pass2."','".$address."')");
Поместите это в первую строку вашего скрипта
ini_set('display_errors', '1');
Это отобразит ошибки на странице, и вы сможете увидеть, что происходит не так.
Также вместо IP-адреса попробуйте «localhost»
$conn = new mysqli_connect("localhost", $dbuser, "","my databse name");
Если база данных находится на том же компьютере, это может решить вашу проблему.
Также ваш код невероятно небезопасен и будут страдать от внедрения SQL. Пожалуйста, обратите внимание на следующие строки:
$email = $_POST['email'];
$query = "SELECT email FROM user where email='".$email."'";
По сути, вы помещаете все, что пользователь передает в ваш оператор SQL. Что делать, если он вводит «‘ИЛИ 1; DROP TABLE user». Вы потеряете все свои данные.
Пожалуйста, прочитайте о внедрении SQL и используйте PDO: