php表单消失了

时间:2012-10-26 11:21:56

标签: php sql forms login registration

我有一个会员注册表格,显示完美,直到我添加PHP。一旦添加了PHP代码,表单就会完全消失。我已经尝试了一切,但我认为在这个阶段需要一双新的眼睛。 任何帮助将不胜感激。欢呼声。

<?php

if ( $_POST['registerbtn'] ) {
    $getuser = $_POST['user'];
    $getemail = $_POST['email'];
    $getpass = $_POST['pass'];
    $getretypepass = $_POST['retypepass'];

    if ($getuser) {
        if ($getemail) {
            if($getpass) {
                if ($getretypepass) {
                    if ($getpass === $getretypepass) {
                        if ( (strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, "."))) {
                            require("./connect.php");

                            $query = mysql_query("SELECT * FROM users WHERE username='$getuser'");
                            $numrows = mysql_num_rows($query);
                            if ($numrows == 0){
                                    $query = mysql_query("SELECT * FROM users WHERE email='$getemail'");
                                    $numrows = mysql_num_rows($query);
                                    if ($numrows == 0){

                                        $password = md5($password);
                                        $date = date("F d, Y");
                                        $code = md5(rand());

                                        mysql_query("INSERT INTO users VALUES (
                                            '', '$getuser', '$getpassword', '$getemail', '0', '$getcode', '$getdate'
                                        )");



                                        $query = mysql_query("SELECT * FROM users WHERE username='$getusername'");
                                        $numrows = mysql_num_rows($query);
                                        if ($numrows == 1) {

                                            $site ="http://localhost/member.php";
                                            $webmaster = "Bror Phren <bmdoublec@hotmail.com>";
                                            $headers = "From: $webmaster";
                                            $subject = "Activate your account";
                                            $message = "Thanks for registering. Click the link below to activate your account";
                                            $message .= "$site/activate.php?user=$getuser&code=$code\n";
                                            $message .= "You must activate your account t login.";

                                            if (mail($getemail, $subject, $message, $headers) ) {
                                                $errormsg = "You have been registered. You must activate your account from the activation link sent to <b>$getemail</b> ";
                                                $getuser = "";
                                                $getemail = "";
                                            }
                                            else
                                                $errormsg = "An error has occured. Your activation email was not sent";


                                        }
                                        else
                                            $errormsg = "An error has occured. Your account was not created.\n";


                            }
                            else
                                $errormsg = "There is already a user with that email";

                            }
                            else
                                $errormsg = "There is already a user with that username";

                            mysql_close();


                        }
                        else
                        $errormsg = "You must enter a valid email address to register.";

                }
                else
                $errormsg = "You must retype your password to register.";

            }
            else
            $errormsg = "You must enter password to register.";

        }
        else
            $errormsg = "You must enter email to register.";

    }
    else
        $errormsg = "You must enter username to register.";

}

$form = "<form action='./register.php' method='post'>
<table>

    <tr>
    <td></td>
    <td><font color='red'>$errormsg</font></td>
    </tr>
    <tr>

    <td>Username:</td>
    <td><input type='text' name='user' value='$getuser' /></td>
    </tr>

    <tr>
    <td>Email:</td>
    <td><input type='text' name='email' value='$getemail' /></td>
    </tr>

    <tr>
    <td>Password:</td>
    <td><input type='password' name='pass' value='' /></td>
    </tr>

        <tr>
    <td>Retype:</td>
    <td><input type='password' name='retypepass' value='' /></td>
    </tr>

        <tr>
    <td>Retype:</td>
    <td><input type='submit' name='registerbtn' value='Register' /></td>
    </tr>

    </table>
</form>";

echo $form;

}

?>

4 个答案:

答案 0 :(得分:1)

您的echo语句位于if($ _POST ['registerbtn']){}块内,这意味着如果未提交表单,则不会显示该表单。

答案 1 :(得分:1)

PHP代码中存在错误,导致无法运行任何内容。

我建议您通过PHPLint之类的代码运行代码来查看错误。

此外,您可能需要考虑以易于阅读和维护的方式构建代码。

例如,您可以避免使用所有嵌套的if语句并将其写为:

if (!$getuser) {
   $errormsg = "You must enter username to register.";
}
else if (!$getemail) {
   $errormsg = "You must enter email to register.";
}
...

答案 2 :(得分:1)

我认为你需要使用其他

<?php

if (isset($_POST['registerbtn'])) {
    $getuser = $_POST['user'];
    $getemail = $_POST['email'];
    $getpass = $_POST['pass'];
    $getretypepass = $_POST['retypepass'];

    if ($getuser) {
        if ($getemail) {
            if($getpass) {
                if ($getretypepass) {
                    if ($getpass === $getretypepass) {
                        if ( (strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, "."))) {
                            require("./connect.php");

                            $query = mysql_query("SELECT * FROM users WHERE username='$getuser'");
                            $numrows = mysql_num_rows($query);
                            if ($numrows == 0){
                                    $query = mysql_query("SELECT * FROM users WHERE email='$getemail'");
                                    $numrows = mysql_num_rows($query);
                                    if ($numrows == 0){

                                        $password = md5($password);
                                        $date = date("F d, Y");
                                        $code = md5(rand());

                                        mysql_query("INSERT INTO users VALUES (
                                            '', '$getuser', '$getpassword', '$getemail', '0', '$getcode', '$getdate'
                                        )");



                                        $query = mysql_query("SELECT * FROM users WHERE username='$getusername'");
                                        $numrows = mysql_num_rows($query);
                                        if ($numrows == 1) {

                                            $site ="http://localhost/member.php";
                                            $webmaster = "Bror Phren <bmdoublec@hotmail.com>";
                                            $headers = "From: $webmaster";
                                            $subject = "Activate your account";
                                            $message = "Thanks for registering. Click the link below to activate your account";
                                            $message .= "$site/activate.php?user=$getuser&code=$code\n";
                                            $message .= "You must activate your account t login.";

                                            if (mail($getemail, $subject, $message, $headers) ) {
                                                $errormsg = "You have been registered. You must activate your account from the activation link sent to <b>$getemail</b> ";
                                                $getuser = "";
                                                $getemail = "";
                                            }
                                            else
                                                $errormsg = "An error has occured. Your activation email was not sent";


                                        }
                                        else
                                            $errormsg = "An error has occured. Your account was not created.\n";


                            }
                            else
                                $errormsg = "There is already a user with that email";

                            }
                            else
                                $errormsg = "There is already a user with that username";

                            mysql_close();


                        }
                        else
                        $errormsg = "You must enter a valid email address to register.";

                }
                else
                $errormsg = "You must retype your password to register.";

            }
            else
              $errormsg = "You must enter password to register.";

        }
        else
            $errormsg = "You must enter email to register.";
    }
    else
        $errormsg = "You must enter username to register.";
}
}

这里

else{ 
$form = "<form action='./register.php' method='post'>
<table>

    <tr>
    <td></td>
    <td><font color='red'>$errormsg</font></td>
    </tr>
    <tr>

    <td>Username:</td>
    <td><input type='text' name='user' value='$getuser' /></td>
    </tr>

    <tr>
    <td>Email:</td>
    <td><input type='text' name='email' value='$getemail' /></td>
    </tr>

    <tr>
    <td>Password:</td>
    <td><input type='password' name='pass' value='' /></td>
    </tr>

        <tr>
    <td>Retype:</td>
    <td><input type='password' name='retypepass' value='' /></td>
    </tr>

        <tr>
    <td>Retype:</td>
    <td><input type='submit' name='registerbtn' value='Register' /></td>
    </tr>

    </table>
</form>";

echo $form;

}

?>

答案 3 :(得分:0)

编辑:如Armon Toubman所述,只有相关数据已发布到页面时,才会显示表单。您需要在if语句之外移动表单。请参阅以下代码:

<?php

if ( $_POST['registerbtn'] ) {
    $getuser = $_POST['user'];
    $getemail = $_POST['email'];
    $getpass = $_POST['pass'];
    $getretypepass = $_POST['retypepass'];

    if ($getuser) {
        if ($getemail) {
            if($getpass) {
                if ($getretypepass) {
                    if ($getpass === $getretypepass) {
                        if ( (strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, "."))) {
                            require("./connect.php");

                            $query = mysql_query("SELECT * FROM users WHERE username='$getuser'");
                            $numrows = mysql_num_rows($query);
                            if ($numrows == 0){
                                    $query = mysql_query("SELECT * FROM users WHERE email='$getemail'");
                                    $numrows = mysql_num_rows($query);
                                    if ($numrows == 0){

                                        $password = md5($password);
                                        $date = date("F d, Y");
                                        $code = md5(rand());

                                        mysql_query("INSERT INTO users VALUES (
                                            '', '$getuser', '$getpassword', '$getemail', '0', '$getcode', '$getdate'
                                        )");



                                        $query = mysql_query("SELECT * FROM users WHERE username='$getusername'");
                                        $numrows = mysql_num_rows($query);
                                        if ($numrows == 1) {

                                            $site ="http://localhost/member.php";
                                            $webmaster = "Bror Phren <bmdoublec@hotmail.com>";
                                            $headers = "From: $webmaster";
                                            $subject = "Activate your account";
                                            $message = "Thanks for registering. Click the link below to activate your account";
                                            $message .= "$site/activate.php?user=$getuser&code=$code\n";
                                            $message .= "You must activate your account t login.";

                                            if (mail($getemail, $subject, $message, $headers) ) {
                                                $errormsg = "You have been registered. You must activate your account from the activation link sent to <b>$getemail</b> ";
                                                $getuser = "";
                                                $getemail = "";
                                            }
                                            else
                                                $errormsg = "An error has occured. Your activation email was not sent";
                                        }
                                        else
                                            $errormsg = "An error has occured. Your account was not created.\n";
                            }
                            else
                                $errormsg = "There is already a user with that email";
                            }
                            else
                                $errormsg = "There is already a user with that username";
                        }
                        else
                        $errormsg = "You must enter a valid email address to register.";
                }
                else
                $errormsg = "You must retype your password to register.";
            }
            else
            $errormsg = "You must enter password to register.";
        }
        else
            $errormsg = "You must enter email to register.";

    }
    else
        $errormsg = "You must enter username to register.";
    }
    mysql_close();
}
?>
<form action='./register.php' method='post'>
<table>

    <tr>
      <td></td>
      <td><font color='red'><?php if(isset($errormsg){ echo $errormsg; } ?></font></td>
    </tr>

    <tr>    
      <td>Username:</td>
      <td><input type='text' name='user' value='<?php if(isset($getuser){ echo $getuser; } ?>' /></td>
    </tr>

    <tr>
      <td>Email:</td>
      <td><input type='text' name='email' value='<?php if(isset($getemail){ echo $getemail; } ?>' /></td>
    </tr>

    <tr>
      <td>Password:</td>
      <td><input type='password' name='pass' value='' /></td>
    </tr>

    <tr>
      <td>Retype:</td>
      <td><input type='password' name='retypepass' value='' /></td>
    </tr>

    <tr>
      <td>Retype:</td>
      <td><input type='submit' name='registerbtn' value='Register' /></td>
    </tr>

    </table>
</form>