简体   繁体   English

在同一页面上显示错误消息以进行登录

[英]display error message on same page for login

I am trying to display error message on same page. 我试图在同一页面上显示错误消息。 I know i have to use javascript. 我知道我必须使用javascript。 This is my code so far. 到目前为止这是我的代码。 However it says 1 after. 然而它之后说了1。 I thnk this is from my numrows!==0 how would i get rid of this 1. 我觉得这是我的数字!== 0我怎么能摆脱这个1。

<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];

if ($username&&$password)
{
    $host_name = 'localhost';
$db_user ='root';
$db_pass = '';
$db_name = 'login';
/* Connect to MySQL */
 $con = mysql_connect("$host_name","$db_user","$db_pass") or die ("Couldn't connect!");
 $db = mysql_select_db("$db_name") or die ("Couldn't connect to database!");

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

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

    }
    /*Check to see if they match! */
    if ($username==$dbusername&&$password==$dbpassword)
    {
        echo "You're in! <a href='member.php'> Click</a> here to enter the member page";
            $_SESSION['username']==$username;
    }
    else
        echo "Incorrect password";
    }
     else
        die("That user doesn't exist!");

    echo $numrows;
 }
 else
    die("Please enter username and/or password!");

?>

You don't really need JavaScript to do this. 你真的不需要JavaScript来做到这一点。 You can do it in PHP. 你可以用PHP做到这一点。 As shown below. 如下所示。

I've modified your PHP code. 我修改了你的PHP代码。 Place this in the file where you perform login. 将其放在您执行登录的文件中。

<?php

    session_start();
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (!empty($username) && !empty($password))
    {
        $host_name = 'localhost';
        $db_user ='root';
        $db_pass = '';
        $db_name = 'login';

         $con = mysql_connect($host_name, $db_user, $db_pass) or die ("Couldn't connect!");
         $db = mysql_select_db($db_name) or die ("Couldn't connect to database!");

         $query = mysql_query("SELECT * FROM users WHERE username=".mysql_real_escape_string($username)." and password = ".mysql_real_escape_string($password));
         $numrows = mysql_num_rows($query);

         if($numrows == 1)
         {
            $_SESSION['username'] = $username; //Store username to session for futher authorization 
            header("Location: member.php"); //Redirect user to home page
         }
         else {
                $_SESSION['errMsg'] = "Invalid username or password";
         }
        header("Location: login.php"); //Redirect user back to your login form
     }
     else {
        die("Please enter username and/or password!");
      }

    ?>

And simply do something like this on your login form. 只需在登录表单上执行此类操作即可。

<?php session_start(); ?>
    <html>
    <body>
        <div id="errMsg">
            <?php if(!empty($_SESSION['errMsg'])) { echo $_SESSION['errMsg']; } ?>
        </div>
        <?php unset($_SESSION['errMsg']); ?>
    </body>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM