Php 用户注册问题

Php 用户注册问题,php,mysql,forms,registration,Php,Mysql,Forms,Registration,出于某种原因,我的脚本一直在说“请输入您的密码”,然后再试一次,但从未真正完成。有什么线索吗?这是我的代码:(我举了一个例子,我的网站名是: <?php if (isset($_POST['submitted'])){ $trimmed = array_map('trim', $_POST); $fn = $ln = $e = $p = FALSE; //First Name if (preg_match ('

出于某种原因,我的脚本一直在说“请输入您的密码”,然后再试一次,但从未真正完成。有什么线索吗?这是我的代码:(我举了一个例子,我的网站名是:

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

        $trimmed = array_map('trim', $_POST);

        $fn = $ln = $e = $p = FALSE;


        //First Name
        if (preg_match ('/^[A-Z \'.-]{2,20}$/i',$trimmed['first_name'])) {

            $fn = mysql_real_escape_string($trimmed['first_name']);
            $trimmed['first_name'];
        } else {

            echo "<p class='error'>Please Enter Your First Name</p>";
        }


        //Last Name
        if (preg_match ('/^[A-Z \'.-]{2,40}$/i',$trimmed['last_name'])) {

            $ln = mysql_real_escape_string($trimmed['last_name']);
            $trimmed['last_name'];
        } else {

            echo "<p class='error'>Please Enter Your Last Name</p>";
        }



        //Check for an email address
        if(preg_match ('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/', $trimmed['email'])) {
            $e = mysql_real_escape_string($trimmed['email']);
        } else{
            echo "<p class='error'>Please Enter a Valid Email Address</p>";
        }

        //Password

        if (preg_match ('/^\w{4,20}$/',$trimmed['password1'])){
            if ($trimmed['password1'] == $trimmed['password2']) {
                $p = mysql_real_escape_string($trimmed['password1']);

            } else{
                echo "<p class='error'>Your Password did not match the confirmed password</p>";
            }
        } else{
            echo "<p class='error'>Please enter a valid Password</p>";
        }

        if($n && $ln && $e && $p) {
            $q = "SELECT user_id from users WHERE email='$e'";
            $r = mysql_query($link,$q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysql_error($link));
            if (mysql_num_rows($r) == 0){
                $a = md5(uniqid(rand(), true));
                $q = "INSERT INTO users (email, pass, first_name, last_name, active, registration_date) VALUES ('$e', SHA1('$p'), '$fn', '$ln', '$a', NOW() )";
                $r= mysql_query ($link, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysql_error($link));

                if(mysql_affected_rows($link) == 1){
                    $body = "Thank you for signing up for a Example Account. To activate your account, please click on this link:\n\n";
                    $body .= BASE_URL . 'activate.php?x=' . urlencode($e) . "&y=$a";

                    mail($trimmed['email'], 'Example Account Confirmation', $body, 'From: support@example.com');
                    echo"<h3>Thank You for Signing Up. A confirmation email has been sent to your email. Please click on the link we sent you to activate your account.</h3>";
                    exit();
                } else{
                    echo "<p class='error'>You could not be registered due to a system error. We apologize for any inconvenience.</p>";
                }
            } else {
                echo "<p class='error'>That email address has already been registered. If you have forgotten your password, please visit: <a href='./forgot.php'>Forgot Your Password?</a></p>";
            }

        } else{
            echo"<p class='error'>Please re-enter your passwords and try again.</p>";
        }
    mysql_close($link);
    }
    ?>
    <form action='signup.php' method='post'>
            <p><b>First Name:<br/></b><input type='text' name='first_name' size='20' maxlength='20' value='<?php if (isset($trimmed['first_name'])) { echo $trimmed['first_name'];} ?>'></p><br/>
            <p><b>Last Name:<br/></b><input type='text' name='last_name' size='20' maxlength='40' value='<?php if (isset($trimmed['last_name'])) { echo $trimmed['last_name'];} ?>'></p><br/>
            <p><b>Email<br/></b><input type='text' name='email' size='30' maxlength='80' value='<?php if (isset($trimmed['email'])) { echo $trimmed['email'];} ?>'></p><br/>
            <p><b>Password<br/></b><input type='password' name='password1' size='20' maxlength='20' /><small> Use only letters, numbers, and underscores. Must be between 4-20 Characters Long.</small></p><br/>
            <p><b>Confirm Password<br/></b><input type='password' name='password2' size='20' maxlength='20' /></p><br/>
            <input type='hidden' name='submitted' value='true'/>
            <input type='submit' name='submit' value='Sign Up!'/>
    </form>

简单。
$fn=mysql\u real\u escape\u string('trimmed['first\u name']);
如果($n&&$ln&&$e&$p)
你正在检查
$n
而不是
$fn
,或者设置
$n
,而不是
$fn
,这取决于你如何看待它。

简单。
$fn=mysql\u real\u escape\u escape\u string\u;
如果($n&&$ln&&$e&&p)
您正在检查
$n
而不是
$fn
,或者设置
$n
而不是
$fn
,这取决于您如何看待它。

您是否尝试过调试数组$trimmed以查看其中的内容?您是否尝试过调试数组$trimmed以查看其中的内容?这就是为什么人们不应该关闭通知的原因使用更有意义的变量名。我刚刚这样做了,现在得到了关于第67行和第70行的3条警告和5条通知……还有什么其他错误吗?警告:mysql_query()预期参数1为字符串,第66行/Users/Jacob/Sites/gj/signup.php中提供的资源注意:查询:从email='email'所在的用户中选择用户id MySQL错误:第66行/Users/Jacob/Sites/gj/signup.php警告:MySQL_num_rows()第67行/Users/Jacob/Sites/gj/signup.php中的参数1应为resource,null警告:mysql_query()应为字符串,第70行/Users/Jacob/Sites/gj/signup.php中的资源注意:查询:插入用户(电子邮件、密码、名字、姓氏、活动、注册日期)值('email',SHA1('admin')),'NAME','NAME','57af999b5fc9d93d6f4229ba3982fa29',NOW())MySQL错误:第70行中的/Users/Jacob/Sites/gj/signup.php谢谢你的帮助。我正试图从这本书中学习php,我不确定到底发生了什么,但我犯了很多错误。这就是为什么人们不应该关闭通知…而应该使用更有意义的变量名。我刚刚这么做,现在得到了3条警告和5条关于第67行和第67行的通知70…还有其他错误吗?警告:mysql_query()希望参数1是字符串,第66行的/Users/Jacob/Sites/gj/signup.php中提供的资源注意:查询:从email='email'所在的用户中选择用户id mysql错误:第66行的/Users/Jacob/Sites/gj/signup.php警告:mysql_num_rows()第67行/Users/Jacob/Sites/gj/signup.php中的参数1应为resource,null警告:mysql_query()应为字符串,第70行/Users/Jacob/Sites/gj/signup.php中的资源注意:查询:插入用户(电子邮件、密码、名字、姓氏、活动、注册日期)值('email',SHA1('admin')),'NAME','NAME','57af999b5fc9d93d6f4229ba3982fa29',NOW())MySQL错误:第70行的in/Users/Jacob/Sites/gj/signup.php谢谢你的帮助。我正试图从这本书中学习php,我不确定到底发生了什么,但我遇到了很多错误。