登录失败。代码不';t从phpmyadmin窃取用户名密码
Wampserver。在phpmyadmin中,我添加了users db和user_数据表。但是我的代码不起作用登录失败。代码不';t从phpmyadmin窃取用户名密码,php,mysql,login,phpmyadmin,Php,Mysql,Login,Phpmyadmin,Wampserver。在phpmyadmin中,我添加了users db和user_数据表。但是我的代码不起作用 <?php include_once("sql_connect.php"); session_start(); $_SESSION['currentuser']=$_POST['usernameinput']; $uname = $_POST['usernameinput']; $pass = $
<?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");
}
?>
替换此
$query = mysql_query($sql)
有以下几点
$query = mysql_query($sql) or die(mysql_error());
并查看出现了什么错误要解决当前问题,请删除表名周围的引号,并习惯使用反勾号
SELECT * FROM `user_data` ...
不是这个:
SELECT * FROM 'user_data' ...
(从技术上讲,这里甚至不需要回勾,但使用回勾是一种很好的做法,它将有助于捕捉各种打字错误。)
一些额外的提示:
- 从不将密码存储为纯文本;这是非常糟糕的安全做法。使用散列和盐渍。具体来说,使用bcrypt
- 请;
mysql.*
函数已经过时,而且不安全。使用或代替李>
- 你对我敞开心扉李>
您在sql中的表名周围使用了单引号,这是错误的-您应该改为使用反勾号。此外,没有检查已发布的变量。理想情况下,为了避免将来的心痛,可以考虑迁移使用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' );
}
?>
您真的在数据库中以明文形式存储密码吗?不要那样做!你说“不行”是什么意思?什么是错误消息,什么是测试数据,等等?您应该提供更多信息以获得答案。(!)解析错误:语法错误,意外的“$result”(T_变量)$result=mysql_fetch_数组($qury);
<?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' );
}
?>