您好我正在进行简单的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数据库在cloud9本身上。
请帮助我解决问题。
答案 0 :(得分:1)
你说你的第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."')");
答案 1 :(得分:0)
将它放在脚本的第一行
ini_set('display_errors', '1');
然后,这将显示页面上的错误,您将能够看到出现了什么问题。
而不是IP地址尝试&#34; localhost&#34;
$conn = new mysqli_connect("localhost", $dbuser, "","my databse name");
如果数据库位于同一台计算机上,这可能会解决您的问题。
答案 2 :(得分:0)
此外,您的代码非常不安全,将遭受SQL注入。请考虑以下几行:
$email = $_POST['email'];
$query = "SELECT email FROM user where email='".$email."'";
基本上,您将用户传递的内容放入SQL语句中。如果他进入&#34;&#39;或1; DROP TABLE用户&#34;。您将丢失所有数据。
请阅读有关SQL注入和使用PDO的信息: