首页 文章

PHP登录/注册错误

提问于
浏览
0

好的,我的大学讲师已经要求我使用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;}否则回显”密码不正确“;}否则死掉(”该用户不存在“); echo $ numrows;} else die(”请输入用户名和密码“)?>

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

<?php //注册流程$ 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(“Y-m-d”); if($ submit){if($ 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“密码必须在5到20个字符之间”; } else {//注册用户}}}否则回显“你的密码不匹配!”; } else echo“请填写<b>所有</ b> feidls!”; }?>
您的全名:选择用户名:选择密码:确认您的密码:

但是,即使在将详细信息输入到字段之前,这些大量代码也会在页面顶部显示 .

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

有人可以告诉我这里做错了什么吗?我使用Xampp来创建我的数据库 .

2 回答

  • 0

    您需要在单独的行上提供内联注释和可执行代码 .

    你有这个:

    //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>
    
  • 2

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

相关问题