首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录页面和注册之间的连接

登录页面和注册之间的连接
EN

Stack Overflow用户
提问于 2018-04-21 10:03:38
回答 2查看 62关注 0票数 0

我是php的新手,我正在尝试链接登录页面和注册页面。一旦我按下登录按钮,它就会直接转到链接的页面,尽管我输入了错误的密码。

我试着用mysqlinumrows解决这个问题。登录后的结果仍然在登录页面中。我试过修复它,但做不到。我希望有人能帮助我减轻压力,因为我在下面的代码中知道了我的错误。

代码:

代码语言:javascript
复制
<?php
    session_start();
    $_SESSION['message'] = '';
    $mysqli=new MySQLi('127.0.0.1','root','','accounts');

    if($_SERVER["REQUEST_METHOD"] == "POST") {
        if ($_POST['password']== $_POST['confirmpassword']) {

            $username = $mysqli->real_escape_string($_POST['username']);
            $email = $mysqli->real_escape_string($_POST['email']);
            $password = md5($_POST['password']);
            $profile_path = $mysqli->real_escape_string('images/'.$_FILES['profile']['name']);


            if (preg_match("!image!", $_FILES['profile']['type'])) {

                if (copy($_FILES['profile']['tmp_name'],$profile_path)){
                    $_SESSION['username'] =$username;
                    $_SESSION['profile'] =$profile_path;

                    $sql ="INSERT INTO users(username,email,password,profile)"
                    ."VALUES ('$username','$email','$password','$profile_path')";       

                    if($mysqli->query($sql)=== true) {
                              $_SESSION['message'] =  'Registration successful!
                              Added $username to the database!';
                         header("location:RegisterLogin.php");
                          }
                          else {
                              $_SESSION['message'] = "User could not be added to the database!";
                }
            }
            else{
                $_SESSION['message'] = "file failed!";

            }
            }
            else {
                $_SESSION['message'] = "Please only upload GIF,JPG, or PNG images!";
        }
        }
        else{
            $_SESSION['message'] = "two password do not match!";
        }
        }

    ?> 

    (Login Form)
    <?php 
    session_start();
    $_SESSION['message']=''; 
    $mysqli=new MySQLi('127.0.0.1','root','','accounts');


    if(isset($_POST['username'])) {
        $username = $mysqli->real_escape_string($_POST['username']);
            $password = md5($_POST['password']);
            $sql="SELECT * FROM users WHERE  username ='$username' AND password=$password";
            $result = mysqli_query($mysqli,$sql);

            if(mysqli_affected_rows($result) == 1){
                  $_SESSION['username'] = $username;
                 $_SESSION['message'] =  "Registration successful!";
        header("location:Welcome.php");
        }
        else{
            $_SESSION['message'] = "Login Failed!"; 
        }
    }
    ?>
EN

回答 2

Stack Overflow用户

发布于 2018-04-21 10:14:26

将登录页面中的密码查询更正为$sql="SELECT * FROM users WHERE username ='$username' AND password='$password' ";将单引号添加到密码变量

票数 0
EN

Stack Overflow用户

发布于 2018-04-21 10:51:18

首先,你必须有表单标签。尝试此格式

代码语言:javascript
复制
<form action="" method="post">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit" name="login">
</form>

对于你的PHP代码:

代码语言:javascript
复制
    if(isset($_POST['login'])) {
            $username = $mysqli->real_escape_string($_POST['username']);
            $password = md5($_POST['password']);
            $sql="SELECT * FROM users WHERE  username ='$username' AND password=$password";
            $result = mysqli_query($mysqli,$sql);

            if(mysqli_affected_rows($result) == 1){
                  $_SESSION['username'] = $username;
                 $_SESSION['message'] =  "Registration successful!";
        header("location:Welcome.php");
        }
        else{
            $_SESSION['message'] = "Login Failed!"; 
        }
    }

如果这不是你的问题,那就在下面发表评论。我会帮你的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49951696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档