执行php代码后获得白屏

时间:2014-09-29 08:37:38

标签: php mysql html5 cloud9-ide

您好我正在进行简单的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本身上。

请帮助我解决问题。

3 个答案:

答案 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的信息: