登录失败。代码不会从phpmyadmin窃取用户名密码

时间:2015-10-28 11:42:52

标签: php mysql login phpmyadmin

Wampserver。在phpmyadmin我添加了用户db和user_data表。但我的代码不起作用

<?php 

        include_once("sql_connect.php"); 
        session_start();
    $_SESSION['currentuser']=$_POST['usernameinput'];
         $uname = $_POST['usernameinput'];
         $pass = $_POST['passwordinput'];

         $sql = "SELECT * FROM 'user_data' WHERE(
         username='".$uname."' and  password='".$pass."')";
          $query = mysql_query($sql);

          $result = mysql_fetch_array($query);

          if($result[0]>0)
          {
          header ("location: Ghome.php");
          }
          else
          {
          header ("Location: loginform_er_incorrectlogpass.php");
          }
    ?>

当我写出正确的用户名和密码时,它无法正常工作。我的代码可能有问题吗?

<?php
    session_start(); # Starts the session

    session_unset(); #removes all the variables in the session

    session_destroy(); #destroys the session

include ("LoginForm.php");
echo "<p align='center'><font color='red'>Неправильно указан Логин или Пароль.</font></p>";
?>

3 个答案:

答案 0 :(得分:0)

替换此

$query = mysql_query($sql) 

以下

$query = mysql_query($sql) or die(mysql_error()); 

并查看您获得的错误

答案 1 :(得分:0)

要解决当前问题,请删除表名周围的引号,并习惯使用返回刻度。

SELECT * FROM `user_data` ...

不是这个:

SELECT * FROM 'user_data' ...

(从技术上讲,你甚至不需要在这里使用它们,但使用它们是一种很好的做法,可以帮助你解决各种打字错误。)

一些额外的指示:

  • 从不 以纯文本格式存储密码;这是非常糟糕的安全措施。使用散列和腌制。具体来说,请使用bcrypt。
  • don't use mysql_*; mysql_*函数已过时,deprecated且不安全。请改用MySQLiPDO
  • 您对SQL injection持开放态度。

答案 2 :(得分:0)

你错误地在sql中使用表名周围的单引号 - 你应该使用反引号。此外,没有检查POSTed变量。理想情况下,为避免将来出现心痛,请查看迁移以使用mysqli或PDO。至少尝试对提供的POST数据进行一些基本过滤

<?php 
    session_start();
    include_once("sql_connect.php"); 

    if( isset( $_POST['usernameinput'] ) && isset( $_POST['passwordinput'] ) ){
        $uname = mysql_real_escape_string( $_POST['usernameinput'] );
        $pass = mysql_real_escape_string( $_POST['passwordinput'] );
        $_SESSION['currentuser']=$uname;

        $sql = "SELECT * FROM `user_data` WHERE `username`='".$uname."' and  `password`='".$pass."';";
        $query = mysql_query( $sql );

        $result = mysql_fetch_array( $query );
        header('location: ' .( $result[0]>0 ) ? 'Ghome.php' : 'loginform_er_incorrectlogpass.php' );
    }
?>