PHP成员重置密码表单没有提交(是的,又是我)


PHP member reset password form not submitting (yes me again)

嗨,这是我几乎完成了网站的gubbings,但我抓挠我的头,为什么这个重置密码页面不通过任何程序。我确信这又是一件小事,但我看不见它,似乎我的重置按钮根本不起作用,但当我调用它时,它的拼写是正确的,所有的括号据我所知都是正确的。我确信,我越习惯这些错误,我自己就越会发现它们。很抱歉我的问题太蠢了。

下面是我的代码:

<?php
error_reporting (E_ALL ^ E_NOTICE);
session_start();
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
?>
<html>
<head>
<title> Member system : Forgot password</title>
</head>
<body>
<?php
if(!$username && !$userid) {
    if($_POST['resetbtn']) {
        //get form data
        $user = $_POST['user'];
        $email = $_POST['email'];
        //make sure info provided
        if($user) {
            if($email) {
                if((strlen($email) > 7) && (strstr($email, "@")) &&    (strstr($email, ".")) ) {
                    require("./connect.php");
                    $query = mysql_query("SELECT * FROM user WHERE   username='$user'");
                    $numrows = mysql_num_rows($query);
                    if($numrows == 1) {
                        // info about account
                        $row = mysql_fetch_assoc($query);
                        $dbemail = $row['email'];
                        //make sure email is correct
                        if($email == $dbemail) {
                            // generate a password
                            $pass = rand();
                            $pass = md5($pass);
                            $pass = substr($pass, 0, 15);
                            $password =   md5(md5("12345".$pass."54321"));
                            //update db with new pass
                            mysql_query("UPDATE user SET  password='$password' WHERE username='$user'");
                            //make sure password was changed
                            $query = mysql_query("SELECT * FROM  user WHERE username='$user' AND password='$password'");
                            $numrows = mysql_num_rows($query);
                            if($numrows == 1) {
                                //create our email variables
                                $webmaster =  "mwilkins877@gmail.com";
                                $headers = "From:  Mike<$webmaster>";
                                $subject = "Your new password";
                                $message = "Your password has been reset, your new password is below. 'n";
                                $message .= "Password: $pass'n";
                                echo $pass."<br/>";
                                if(mail($email, $subject, $message, $headers)) {
                                    echo "Your password has been reset an email has been sent with your new password";
                                }
                                else
                                    echo "An error has occured and your email wasnt sent containing your new password";
                            }
                            else
                                echo "An error has occured and the password was not set";
                        }
                        else
                            echo "You have entered the wrong email address";
                    }
                    else 
                        echo "The user name was not found";
                    mysql_close();
                }
                else "Please enter a valid email address";
            }
            else
                echo "please enter your email";
        }
        else
            echo "Please enter your user name";
    }
    else
        echo"<from action='./forgotpass.php' method='post'>
        <table>
        <tr>
            <td>User name</td>
            <td><input type='text' name='user'/></td>
        </tr>
        <tr>
            <td>email</td>
            <td><input type='text' name='email'/></td>
        </tr>
        <tr>
            <td></td>
            <td><input type='submit' name='resetbtn' value='Reset password'/>  </td>
        </tr>
        </table>
        </form>";
}
else
    echo "Please log out to view this page";
?>
</body>
</html>
我很感激你的帮助,因为这只是我学习的乐趣。希望能听到有人的回音。提前感谢。

请纠正表格的拼写

echo"<from action='./forgotpass.php' method='post'>

echo"<form action='./forgotpass.php' method='post'>

希望这将解决您的问题

试试这个。

<?php
error_reporting (E_ALL ^ E_NOTICE);
session_start();
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
?>
<body>
<?php
if(!$username && !$userid) {
    if($_POST['resetbtn']) {
        //get form data
        $user = $_POST['user'];
        $email = $_POST['email'];
        //make sure info provided
        if($user) {
            if($email) {
                if((strlen($email) > 7) && (strstr($email, "@")) &&    (strstr($email, ".")) ) {
                    require("./connect.php");
                    $query = mysql_query("SELECT * FROM user WHERE   username='$user'");
                    $numrows = mysql_num_rows($query);
                    if($numrows == 1) {
                        // info about account
                        $row = mysql_fetch_assoc($query);
                        $dbemail = $row['email'];
                        //make sure email is correct
                        if($email == $dbemail) {
                            // generate a password
                            $pass = rand();
                            $pass = md5($pass);
                            $pass = substr($pass, 0, 15);
                            $password =   md5(md5("12345".$pass."54321"));
                            //update db with new pass
                            mysql_query("UPDATE user SET  password='$password' WHERE username='$user'");
                            //make sure password was changed
                            $query = mysql_query("SELECT * FROM  user WHERE username='$user' AND password='$password'");
                            $numrows = mysql_num_rows($query);
                            if($numrows == 1) {
                                //create our email variables
                                $webmaster =  "mwilkins877@gmail.com";
                                $headers = "From:  Mike<$webmaster>";
                                $subject = "Your new password";
                                $message = "Your password has been reset, your new password is below. 'n";
                                $message .= "Password: $pass'n";
                                echo $pass."<br/>";
                                if(mail($email, $subject, $message, $headers)) {
                                    echo "Your password has been reset an email has been sent with your new password";
                                }
                                else
                                    echo "An error has occured and your email wasnt sent containing your new password";
                            }
                            else
                                echo "An error has occured and the password was not set";
                        }
                        else
                            echo "You have entered the wrong email address";
                    }
                    else 
                        echo "The user name was not found";
                    mysql_close();
                }
                else "Please enter a valid email address";
            }
            else
                echo "please enter your email";
        }
        else
            echo "Please enter your user name";
    }
    else
        echo"<form action='./forgotpass.php' method='post'>
        <table>
        <tr>
            <td>User name</td>
            <td><input type='text' name='user'/></td>
        </tr>
        <tr>
            <td>email</td>
            <td><input type='text' name='email'/></td>
        </tr>
        <tr>
            <td></td>
            <td><input type='submit' name='resetbtn' value='Reset password'/>  </td>
        </tr>
        </table>
        </form>";