快速介绍...... 我正在尝试为我的计算机上托管的本地网站创建一个数据库系统。
我在PHP中有这个登录脚本,我遇到了一个错误,显示在这个问题的底部。
我在Debian操作系统上运行它,并且安装了PHP5以及Apache2和MySQL。 我无法在Apache和PHP上找到错误日志。
当试图获得'$ _POST ['Anything']'时,它会返回一个空字符串。
这是我的代码:
<?php
ob_start();
$host="localhost";
$username="MySQLUser";
$password="*************";
$db_name="test";
$tbl_name="members";
mysql_connect("$host", "$username", "$password") or die("Cannot connect");
mysql_select_db("$db_name")or die("Cannot select DB");
$myusername=$_POST["vuser"];
$mypassword=$_POST["vpass"];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$mypassword = md5(md5(md5(md5(md5(md5($mypassword)))))); // This is for tests.
$sql="SELECT * FROM $tbl_name WHERE Username='$myusername' and Password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("vuser");
session_register("vpass");
header("location:login_success.php");
} else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>
我甚至改变了
echo“用户名或密码错误”;
到
echo“错误的用户名或密码,$ mypassword和$ myusername, $ _POST ['vuser']和$ _POST ['vpass']“;
vuser,vpass显示为空格。 我回复用户名和密码,以便我可以阅读。基本上是测试。 (这是在它破裂之前)
在我做了什么之后,我不知道是什么...... 这是我收到的:
我要问的是,为什么$ _POST没有显示数据,错误页面有什么问题?
答案 0 :(得分:1)
不确定,因为现在无法测试。有点忙,但只是尝试删除用户名和密码的单引号,如下面的查询:
$sql="SELECT * FROM $tbl_name WHERE Username=$myusername and Password=$mypassword";
或使用以下:
$sql="SELECT * FROM $tbl_name WHERE Username='". $myusername ."' and Password='" . $mypassword . "'";
答案 1 :(得分:0)
确定..
不要使用“session_register”,根据php.net,此功能
<?php
// initialize session
session_start();
define('DB_HOST', 'my.host.com');
define('DB_USER', 'youruser');
define('DB_PASS', 'yourpass');
define('DB_NAME', 'dbname');
// connect
mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Cannot connect");
mysql_select_db(DB_NAME) or die("Cannot select DB");
function clean($value)
{
if (get_magic_quotes_gpc()) {
$value = mysql_real_escape_string(stripslashes($value));
} else {
$value = mysql_real_escape_string($value);
}
return $value;
}
$user = isset($_POST['vuser']) ? trim($_POST['vuser']) : null;
$pass = isset($_POST['vpass']) ? trim($_POST['vpass']) : null;
if (!$user || !$pass) {
echo 'Wrong username or password';
die;
}
$user = clean($user);
$pass = clean($pass);
$sql = sprintf("select * from members where username = '%s' and password = '%s'", $user, $pass);
$query = mysql_query($sql);
if ($query) {
$data = mysql_fetch_array($query, MYSQL_ASSOC);
if (sizeof($data) > 0) {
// save sessions...
// redirect...
// user ok
die;
}
}
echo 'Incorrect!';
die;