php无法连接数据库,显示空白页面

时间:2014-03-03 03:58:10

标签: php mysql

所以我的表格有这个代码。

newuser.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700,900" rel="stylesheet" />
<link href="css/styles.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/fonts.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/newuser.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="page" class="container">
    <div id="header">
        <div id="logo">
            <img src="img/minilogo.jpg" alt="" />
            <h1><a href="#">ADMIN</a></h1>
            <span>PERMOHONAN DATA<a href="http://www.freecsstemplates.org/" rel="nofollow"></a></span>
        </div>
        <div id="menu">
            <ul>
                <li class=""><a href="admin.php" >Home</a></li>
                <li><a href="new.php" >USER</a></li>
                <li><a href="#" >PENYEDIA</a></li>
                <li><a href="#" >UPDATE</a></li>
                <li><a href="logout.php" >LOG OUT</a></li>
            </ul>
        </div>
    </div>
    <div id="main">
        <div id="banner">
            <img src="img/pic01.jpg" alt="" class="image-full" /> 
        <div id="welcome">Pendaftaran User Baru.
        </div>
            <div class="title">
                <!--untuk form-->
<form class="form" action="submitnew.php" method="post" name="form" >

<ul><li>
    </li>
    </li>
    <li>
        <label for="name">Nama :</label>
        <input type="text" name="name" required />
    </li>
    <li>
        <label for="tel">No. Telefon:</label>
        <input type="text" name="tel" required />
    </li>
    <li>
        <label for="email">E-mail:</label>
        <input type="email" name="email" placeholder="name@something.com" required />
    <class="form_hint"> <script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>
    </li>
    <li>
        <label for="username">Username:</label>
        <input type="text" name="username" required />
    </li>
    <li>
        <label for="password">Password:</label>
        <input type="password" name="password" required />
    <!--<li>
        <label for="admin">Admin</label>
        <input id="radio1" name="admin" type="radio" class="radio-btn" value="admin" />
    </li>-->
    <li>
    <button class="submit" type="submit">Create</button>
    </li> 
</ul>
</form>
</body>
</html>

数据将通过此,

submitnew.php

<?php

//debug mode
error_reporting(E_ALL);
ini_set('display_errors', '1');

//to show some error is smthng went wrong
$errors = array();

//connect to DB
$connection = mysql_connect('localhost','root','');
$db = mysql_select_db('permohonan_data',$connection);

//will run if user did submit the form
if (!empty($_POST)){

//connect sql server:
    $name = $_POST['name'];
    $tel = $_POST['tel'];
    $email = $_POST['email'];
    $username = $_POST['username'];
    $password = $_POST['password'];

//no error til here
if (empty($error)){

//prevent SQL injection
$name = mysql_real_escape_string($name);    
$tel = mysql_real_escape_string($tel);
$email = mysql_real_escape_string($email);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
}

//try insert value
$query = "INSERT INTO admin
    (name,tel,email,username,password)
    VALUES ('$name', '$tel', '$email', '$username', '$password)";

//try
if (!mysql_query($query)){
    //
    //die(mysql_error());
    $errors[] = "Can't insert the values";
    }
else {
    //on success
    header("Location:new.php");
    exit();

}

}   

?>
问题是,它不会连接到数据库,也不会重定向到new.php。它只会显示空白页面。我编码错了吗?

2 个答案:

答案 0 :(得分:3)

您的查询错误(错过了密码中的结尾引号):

$query = "INSERT INTO admin
    (name,tel,email,username,password)
    VALUES ('$name', '$tel', '$email', '$username', '$password)";

应该是:

$query = "INSERT INTO admin
    (name,tel,email,username,password)
    VALUES ('$name', '$tel', '$email', '$username', '$password')";

并替换它:

if (empty($error)){

通过

if (empty(mysql_error())){

用于检查mysql错误。

而不是:

//connect to DB
$connection = mysql_connect('localhost','root','');
$db = mysql_select_db('permohonan_data',$connection);

试试这个:

//connect to DB
$connection = mysql_connect('localhost','root','') or die(mysql_error());
$db = mysql_select_db('permohonan_data',$connection) or die(mysql_error());

答案 1 :(得分:0)

问题是,您正在使用:

$ errors = array(); 和$ error永远不会在代码中获取值,因此不执行任何查询: - )

使用此功能并告知我们:

<?php

//debug mode
error_reporting(E_ALL);
ini_set('display_errors', '1');

//connect to DB
$connection = mysql_connect('localhost','root','');
mysql_select_db('permohonan_data',$connection);

//will run if user did submit the form
if (!empty($_POST)){

//connect sql server:
    $name = $_POST['name'];
    $tel = $_POST['tel'];
    $email = $_POST['email'];
    $username = $_POST['username'];
    $password = $_POST['password'];

//prevent SQL injection
$name = mysql_real_escape_string($name);    
$tel = mysql_real_escape_string($tel);
$email = mysql_real_escape_string($email);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);


    $result = mysql_query("INSERT INTO admin (name,tel,email,username,password)
        VALUES ('$name', '$tel', '$email', '$username', '$password)");

        if (!empty($result)) {
            // check for empty result
            if (mysql_affected_rows() > 0) {
                $response = $result;
                $response["success"] = 0;
                $response["message"] = "One row effected";
                // echoing JSON response
                echo json_encode($response);
            } else {
                // No profile found
                $response["success"] = 1;
                $response["message"] = "No row effected";

                // echo no users JSON
                echo json_encode($response);
            }
        } else {
            // No profile found
            $response["success"] = 2;
            $response["message"] = "No row effected";

            // echo no users JSON
            echo json_encode($response);
        }
    } else {
        // required field is missing
        $response["success"] = -1;
        $response["message"] = "Required field(s) is missing";

        // echoing JSON response
        echo json_encode($response);
    }
?>