我的php登录脚本出错,但我无法找到它。你能告诉我如何调试这个简单的错误。
这是我的剧本:
session_start();
include("connect.php");
$kullanici = $_POST["user"];
$kullanici_sor = mysql_query("SELECT * FROM admin where isim = '{$user}'") or die (mysql_error)();
$admin = mysql_fetch_array($user_ask);
if($_POST["user"] == "" and $_POST["pass"] == "")
{
echo "Cannot empty fields.Please tyr again!";
}else{
if(isset($_POST["user"]))
{
if($_POST["user"]== $admin['name'] and ($_POST["pass"] == $admin['pass'])){
$_SESSION["enter"] = true;
$_SESSION["name"] =$_POST["user"];
$_SESSION["pass"] =$_POST["pass"];
header("Location: panel.php");
exit();
}else{
echo"Wrong pass or username";
header("refresh:2; url=index.php");
}
}
答案 0 :(得分:2)
你应该改变你的行:
$admin = mysql_fetch_array($user_ask);
信息
$admin = mysql_fetch_array($kullanici_sor);
但是您的代码很容易受到SQL注入攻击。您应该通过PDO而不是mysql使用预准备语句。您还应该在代码的开头(<?php
添加:
error_reporting(E_ALL);
ini_set('display_errors','1');
当您测试脚本时。在生产时,它应设置为:
error_reporting(0);
ini_set('display_errors','0');
编辑当然,正如评论中提到的那样,您绝不应该将密码放入会话中!
答案 1 :(得分:0)
$kullanici_sor = mysql_query("SELECT * FROM admin where isim = '{$user}'") or die (mysql_error)();
$admin = mysql_fetch_array($kullanici_sor);