PHP登录/注册错误

好的,我的大学讲师已经问过我用PHP创建一个登录系统。 现在我读了关于PHP看到我不熟悉它。 我使用这个代码并自己编码。

<?php

session_start();

$username = $_POST ['username'];
$password = $_POST ['password'];

if ($username&&$password) {
    $connect = mysql_connect("localhost","root","") or die("Couldn't Connect");
    mysql_select_db("phplogin") or die ("Couldn't find Database");
    $query = mysql_query("SELECT * FROM users WHERE username='$username'")'
     $numrows = mysql_num_rows ($query);
if ($numrows!=0) {

    while ($row = mysql_fetch_assoc()) {
        $dbusername = $row['username'];
        $dbpassword = $row['password'];
    }

    if ( ($username==$dbusername) && ($password==$dbpassword) ) {
        echo "you are in,<a href ='member.php'> Click here</a> to enter member page";
        $_SESSION['username']=$dbusername;
    } else {
        echo "Incorrect password";
} else {
    die ("That user does not exist");
}
echo $numrows;

} else {
    die("Please enter a username and password")
}

?>

这是我正在使用的Index.php。 我的登录页面很简单,有2个字段:用户名和密码,带有登录和注册按钮。 一旦我从我的数据库中获得的字段中输入详细信息,就会将其显示在页面的顶部。

点击此处进入会员页面“; $ _SESSION ['username'] = $ dbusername;} else echo”不正确的密码“;} else die(”This user does not exist“); echo $ numrows;} else die(”Please输入用户名和密码“)?>

我的注册页面也有问题,其中有4个字段必须填写:用户名,电子邮件,密码和确认密码,以及注册按钮以“注册”为用户。

<?php //Register process $submit = $_POST['submit'];

//表单数据$ name = strip_tags($ _POST ['name']); $ username = strip_tags($ _POST ['username']); $ password = md5(strip_tags($ _POST ['password'])); $ confirmpassword = strip_tags($ _POST ['confirmpassword']); $ date = date(“Ymd”);

如果($ submit){

如果($ username && $ password && $ confirmpassword){//加密密码$ password = md5($ password); $ confirmpassword = md5($ confirmpassword); if($ password == $ confirmpassword){//检查字符长度if(strlen($ username)> 25 || strlen($ name)> 25){echo“用户名或名称长度太长”; } else {//检查密码长度if(strlen($ password)> 20 || strlen($ password)<5){echo“password必须在5到20个字符之间”; } else {//注册用户}}}其他回显“您的密码不匹配!”;

      }           else        echo "Please fill in <b>all</b> feidls!"; } ?>

您的全名:选择一个用户名:选择一个密码:确认您的密码:

但是,即使在细化字段之前,这些大量的代码都会在页面的顶部出现。

25 || strlen($ name)> 25){echo“用户名或者姓名的长度太长”; } else {//检查密码长度if(strlen($ password)> 20 || strlen($ password)<5){echo“password必须在5到20个字符之间”; } else {//注册用户}}}其他回显“您的密码不匹配!”; }其他回声“请填写所有feidls!”; }?>

有人能告诉我我在这里做错了什么吗? 我使用Xamppp来创建我的数据库。


您需要在单独的行中包含内联注释和可执行代码。

你有这个:

//check character length            if (strlen ($username) >25 || strlen ...

这是评论说, if声明。 它需要是这样的:

//check character length            
if (strlen ($username) >25 || strlen ...

你这样做了几次: //Register process $submit = $_POST['submit']; - $ submit永远不会被定义,因为它在注释中。

干得好。 我心情很好。 我甚至添加了关闭</td><body>标记,因为这些标记也缺失了:

<?php

//Register process 
$submit = $_POST['submit'];

//form data 
$name            = strip_tags($_POST['name']);
$username        = strip_tags($_POST['username']);
$password        = md5(strip_tags($_POST['password']));
$confirmpassword = strip_tags($_POST['confirmpassword']);
$date            = date("Y-m-d");

if ($submit) {

    if ($username && $password && $confirmpassword) { //encrypt password
        $password        = md5($password);
        $confirmpassword = md5($confirmpassword);
        if ($password == $confirmpassword) {
            //check character length            
            if (strlen($username) > 25 || strlen($name) > 25) {
                echo  "length of Username or Name is too long";
            } else {
                //checks password length
                if (strlen($password) > 20 || strlen($password) < 5) {
                    echo "password must be between 5 and 20 characters";
                } else {
                    //registers user
                }
            }
        } else {
            echo "Your passwords to not match!";
        }

    } else {
        echo "Please fill in <b>all</b> feidls!";
    }
} // end if submit 

?>

<html>
    <body>
        <form action='register.php' method='POST'>
            <table>
                <tr>
                    <td> Your full Name:</td>
                    <td><input type='text' name='name'></td>
                </tr>
                <tr>
                    <td> Choose a Username:</td>
                    <td><input type='text' name='username'></td>
                </tr>
                <tr>
                    <td> Choose a Password:</td>
                    <td><input type='password' name='password'></td>
                </tr>
                <tr>
                    <td> Confirm your Password:</td>
                    <td><input type='password' name='confirmpassword'></td>
                </tr>
            </table>
            <p><input type="button" onclick="window.location.href='member.php'" value="Register"></p>
        </form>
    </body>
</html>

实际上,它看起来像你要求它重定向到form.html,但已经输出了一些信息给浏览器。 这会导致错误。 在输出任何内容之前,您需要尝试重定向。 所以你应该在输出之前调用有效的。

链接地址: http://www.djcxy.com/p/69229.html

上一篇: PHP login/Register errors

下一篇: php