首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在login.php中输入成功的用户名和密码之前,不断出现错误消息

问在login.php中输入成功的用户名和密码之前,不断出现错误消息
EN

Stack Overflow用户
提问于 2016-06-17 01:10:19
回答 1查看 54关注 0票数 0

以下是我正在开发的网站的代码:

1) login.php

​

代码语言:javascript
复制
<?php
session_start();
include("connection.php");

// username and password sent from form 
$myusername = (isset($_POST['myusername']) ? $_POST['myusername'] : null);
$mypassword = (isset($_POST['mypassword']) ? $_POST['mypassword'] : null); 


// To protect MySQL injection
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 

$qry = "SELECT * FROM user WHERE user_name ='$myusername' AND user_password = '$mypassword'";
$result = mysql_query($qry);
$count = mysql_num_rows($result);

$output = mysql_fetch_assoc($result);

// If result matched $myusername and $mypassword, table row must be 1 row
      if($count == 1) {
         $_SESSION['login_user'] = $myusername;
         $_SESSION['mypassword'] = $mypassword;
         header("location: foodline.php");
         exit();
      }
      else {
         echo "Invalid Username or Password";
      }
?>


<html>
   
   <head>
      <title>Login Page</title>
      
      <style type = "text/css">
         body {
            font-family:Arial, Helvetica, sans-serif;
            font-size:14px;
         }
         
         label {
            font-weight:bold;
            width:100px;
            font-size:14px;
         }
         
         .box {
            border:#666666 solid 1px;
         }
      </style>
      
   </head>
   
   <body bgcolor = "#FFFFFF">
	
      <div align = "center">
         <div style = "width:300px; border: solid 1px #333333; " align = "left">
            <div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div>
				
            <div style = "margin:30px">
               
               <form action = "" method = "post">
                  <label>UserName  :</label><input type = "text" name = "username" class = "box"/><br /><br />
                  <label>Password  :</label><input type = "password" name = "password" class = "box" /><br/><br />
                  <input type = "submit" value = " Submit "/><br />
               </form>					
            </div>
				
         </div>
			
      </div>

   </body>
</html>

​

2) connection.php

​

代码语言:javascript
复制
<?php
$mysql_hostname ="localhost";
$mysql_user = "root";
$mysql_password ="";
$mysql_database = "foodline";

mysql_connect("$mysql_hostname", "$mysql_user", "$mysql_password") or die("Could not connect database");
mysql_select_db("$mysql_database") or die("Could not connect the database".mysql_error());
?>

​

3) session.php

​

代码语言:javascript
复制
<?php
   include('connection.php');
   session_start();
   
   $user_check = $_SESSION['login_user'];
   
   $ses_sql = mysql_query($user_check);
   
   $row = mysql_fetch_array($ses_sql);
   
   $login_session = $row['username'];
   
   if(!isset($_SESSION['login_user']))
   {
      header("location:foodline.php");
   }
?>

​

4)这是我得到的输出屏幕:Output Screen

错误信息‘无效的用户名或密码’不会从上面的代码中删除。我遗漏了什么或者在代码上做了什么额外的事情?

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2016-06-17 01:16:20

如果您的表单已经提交,您可能只希望执行PHP部分。使用isset。

用这个更新你的php。

代码语言:javascript
复制
<?php
session_start();
include("connection.php");

if(isset($_POST['submit']))
{
    // username and password sent from form 
    $myusername = (isset($_POST['myusername']) ? $_POST['myusername'] : null);
    $mypassword = (isset($_POST['mypassword']) ? $_POST['mypassword'] : null); 


    // To protect MySQL injection
    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 

    $qry = "SELECT * FROM user WHERE user_name ='$myusername' AND user_password = '$mypassword'";
    $result = mysql_query($qry);
    $count = mysql_num_rows($result);

    $output = mysql_fetch_assoc($result);

    // If result matched $myusername and $mypassword, table row must be 1 row
          if($count == 1) {
             $_SESSION['login_user'] = $myusername;
             $_SESSION['mypassword'] = $mypassword;
             header("location: foodline.php");
             exit();
          }
          else {
             echo "Invalid Username or Password";
          }
}
?>

现在,您的php只有在表单已经提交时才会执行。

更新

代码语言:javascript
复制
"SELECT * FROM user WHERE user_name ='" . $myusername . "' AND user_password = '" . $mypassword . "'";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37865441

复制
相关文章

相似问题

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