Php 数据库中未显示注册表单数据

Php 数据库中未显示注册表单数据,php,mysql,sql,Php,Mysql,Sql,我试着将代码改成这样,这样它就可以先连接到数据库,但现在它只停留在verify.php上,没有重定向,没有数据被发送到数据库 <?php if(isset($_POST['submit'])){ # connect to the database here $host="XXXXXXX"; // Host name $username="XXXX"; // Mysql username $password="XXXX"; // Mysql passwo

我试着将代码改成这样,这样它就可以先连接到数据库,但现在它只停留在verify.php上,没有重定向,没有数据被发送到数据库

        <?php 
if(isset($_POST['submit'])){ 
 # connect to the database here
$host="XXXXXXX"; // Host name 
   $username="XXXX"; // Mysql username 
   $password="XXXX"; // Mysql password 
  $db_name="XXXX"; // Database name 

   mysql_connect("$host", "$username", "$password")or die("cannot connect for insert"); 
    mysql_select_db("$db_name")or die("cannot select DB to insert data");

    $user_name = mysql_real_escape_string($_POST['user_name']);
    $fname =    mysql_real_escape_string($_POST['fname']);
     $lname =     mysql_real_escape_string($_POST['lname']); 
    $email =     mysql_real_escape_string($_POST['email']);
     $user_password =    mysql_real_escape_string($_POST['password']); 

     $insert_query = "INSERT INTO teachers(`user_name`,`fname`,`lname`,`email`,`password`) 
    VALUES('".$user_name."$','".$fname."','".$lname."','".$email."','".$user_password."');";
    mysql_query($insert_query) or die(mysql_error()); 
    mysql_close();

    };
      ?> 

你应该要么放
要么死(mysql_error())在以下行中:

$sql = mysql_query($query) or die(mysql_error());
而不是:

mysql_real_escape_string($_POST['password']))or die(mysql_error());
另一件事是,您有错误的
if-else
语句

您可以在下面的
if
语句中编写代码来检查哪个字段为空:

if($row||empty($_POST['user_name'])|| empty($_POST['fname'])||empty($_POST['lname'])|| empty($_POST['email'])||empty($_POST['password'])|| empty($_POST['re_password'])||$_POST['password']!=$_POST['re_password']){ 
# if a field is empty, or the passwords don't match make a message
# YOU SHOULD PUT YOUR CODE TO CHECK EMPTY FIELDS SEPARATELY HERE
}
else { 
    # If all fields are not empty, and the passwords match, 
}

如果用户已经存在,则应将检查更改为以下内容:

if(count($row) > 0)
而不仅仅是

if($row)

如果只想测试是否插入了数据,请将代码限制为:

        <?php 
        if(isset($_POST['submit'])){ 

    $host=""; // Host name 
    $username=""; // Mysql username 
    $password=""; // Mysql password 
    $db_name="lurnn"; // Database name 

    /* sanitize post variables */    
    $user_name = mysql_real_escape_string($_POST['user_name']);
    $fname =    mysql_real_escape_string($_POST['fname']);
    $lname =     mysql_real_escape_string($_POST['lname']); 
    $email =     mysql_real_escape_string($_POST['email']);
    $user_password =   mysql_real_escape_string($_POST['password']); 

    /* Database insert query */
mysql_connect($host, $username, $password)or die("cannot connect for insert"); 
mysql_select_db($db_name)or die("cannot select DB to insert data");
$insert_query = "INSERT INTO teachers(`user_name`,`f_name`,`l_name`,`email`,`password`) 
VALUES('".$user_name."','".$fname."','".$lname."','".$email."','".$user_password."')";
mysql_query($insert_query) or die(mysql_error()); 
mysql_close();


        };
            ?>

如果回显$query,将打印什么查询?为什么要将此函数
sprintf
添加到变量“$query”中?我原以为您会想要这样的东西:
$query=(“从教师中选择*,其中用户名=“%s”限制1”)
并在开始时执行
$user=mysql\u real\u escape\u字符串($\u POST['user\u name'])
获取用户名并清理输入字符串。然后将初始$query变量更改为
$query=“SELECT*FROM teachers WHERE user_name=”。“$user.”“LIMIT 1”
您使用的是哪一版本的PHP?顺便问一下,Radical先生同意PHP 5.3,但仍然没有回答为什么没有向DB发送任何内容的问题。同样,没有回答为什么没有向DB发送任何内容的问题。另外,您说要替换的代码与我原来的代码相同,或者这是一个错误?我没有得到您想要我做的更改if-else语句的操作,因为代码是相同的。我如何简化它,忽略字段检查,我只想深入研究注册用户、将数据发送到数据库的代码,这是目前的问题。我尝试了底层代码,得到了一堆错误消息,我在这里无法适应。尝试登录lurnn.com/signup.html,您将看到所有错误消息。@MattMcLaren您忘记发布错误了。B.T.W.我想我可能已经解决了这个错误。请再试一次,我在
mysql\u connect
中删除了双引号。非常感谢您花时间帮助我,非常感谢。我过去可以在五秒钟内编写代码,但在过去的一年里,显然有了很大的变化。第10-14行这样写:警告:mysql\u real\u escape\u string()[function.mysql real escape string]:无法通过socket'/var/lib/mysql/mysql.sock'(2)连接到本地mysql服务器在第10行的/home/content/88/10880688/html/verify.php中警告:mysql\u real\u escape\u string()[function.mysql real escape string]:无法在第10行的/home/content/88/10880688/html/verify.php中建立到服务器的链接10@MattMcLaren事情总是在改变,但我相信你会重新回到比赛中。
    <?php 


if(isset($_POST['submit'])){ 
    $host = "host";
    $user = "user";
    $password = "password";
    $database = "database";   


    /* sanitize post variables */    
    $user_name = mysql_real_escape_string($_POST['user_name']);
    $fname =    mysql_real_escape_string($_POST['fname']);
    $lname =     mysql_real_escape_string($_POST['lname']); 
    $email =     mysql_real_escape_string($_POST['email']);
    $user_password =   mysql_real_escape_string($_POST['password']); 


    // open connection to database
    $link = mysqli_connect($host, $user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //INSERT VALUES INTO DATABASE
           $query = "INSERT INTO teachers(`user_name`,`f_name`,`l_name`,`email`,`password`) 
VALUES('".$user_name."','".$fname."','".$lname."','".$email."','".$user_password."')";
         mysqli_query($link,$query)  or die(mysql_error());
         echo var_dump($query);
        }
//close connection to database
        mysqli_close($link);

    };


    ?> 
    <?php


function submit_form(){
    $host = "";
    $user = "";
    $password = "";
    $database = "";   

    /* sanitize post variables */    
    $user_name = mysql_real_escape_string($_POST['user_name']);
    $fname =    mysql_real_escape_string($_POST['fname']);
    $lname =     mysql_real_escape_string($_POST['lname']); 
    $email =     mysql_real_escape_string($_POST['email']);
    $user_password =   mysql_real_escape_string($_POST['password']);


    // open connection to database
    $link = mysqli_connect($host, $user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //INSERT VALUES INTO DATABASE
           $query = "INSERT INTO teachers(`user_name`,`f_name`,`l_name`,`email`,`password`) 
VALUES('".$user_name."','".$fname."','".$lname."','".$email."','".$user_password."')";
         mysqli_query($link,$query)  or die("Insert query failed");
         echo var_dump($query);

        }
//close connection to database
        mysqli_close($link);

    }


$form = <<<EODuserform
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>Form</title>
    </head>
        <form action="{$_SERVER['PHP_SELF']}" method="POST" name="userform">
            <label for='user_name'>Username:</label></br>
            <input type="text" name="user_name" id="first" maxlength="25" tabindex='1' VALUE="user_name" /></br>
            <label for='fname'>First Name:</label></br>
            <input type="text" name="fname" id="first" maxlength="25" tabindex='2' VALUE="firstname" /></br>
            <label for='lname'>Last Name:</label></br>
            <input type="text" name="lname" id='lastname' maxlength="25" tabindex='3' VALUE="lastname" /></br>
            <label for='email'>E-mail:</label></br>
            <input type="text" name="email" id='email' maxlength="100" tabindex='4' VALUE="email" /></br>
            <label for='password'>Password:</label></br>
            <input type="password" name="password" id='password' maxlength="25" tabindex='5' VALUE="password" /></br>
            <label for='re-password'>Re-type password:</label></br>
            <input type="password" name="re-password" id='re-password' maxlength="25" tabindex='6' VALUE="re-password" /></br>
            <input type="submit" name="submit" value="Sign Up" tabindex='6' />
            </form>
    </body>
</html>
EODuserform;


IF(!IsSet($_POST['submit'])){ // Check if form is not send, if not display empty form.

    echo $form;
}

ELSE{
// in the case you want to send something to the database use 
submit_form();
echo ('Thanks for submitting your form');
}

?>