我有一个用户登录页面与一个形式的行动是“auth.php”PHP SQL身份验证问题
auth.php看起来是这样的:
<?php
session_start();
require_once('database.php');
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM access_getaccountswithinfo WHERE username='".$username."' AND password='".$password."'";
$run = mysql_query($sql);
$row = mysql_fetch_array($run);
if (mysql_num_rows($run) == 1) {
$_SESSION['logged_in'] = true;
$_SESSION['username'] = $row['username'];
$_SESSION['password'] = $row['password'];
$_SESSION['packagename'] = $row['packagename'];
$_SESSION['creation-date'] = $row['creation-date'];
$_SESSION['cap'] = $row['cap'];
$_SESSION['total'] = $row['total'];
$_SESSION['remainingtopup'] = $row['remainingtopup'];
header("location: usage.php");
} else {
header("location: user_login.php");
$message = MSG_INVALID_USERPW;
}
mysql_close($link);
?>
那么这auth.php有Require_once于:database.php中 database.php文件如下:
<?php
$link = mysql_connect('localhost', 'testdatabase', '123456');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
// make testdatabase the current db
$db_selected = mysql_select_db('testdatabase', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
echo 'Connected successfully';
?>
因此,在短期...你登录登录页面上,行动然后用auth.php检查,如果用户可以同时要求database.php中精读认证如果用户进行身份验证,它将把页面的usage.php设置为header(“location:usage.php”);在auth.php。
现在这个工作100%在我的本地机器上,带有一个xampp Apache和SQL服务器。
但是,当我上传到网络服务器,我登录登录页面,它将我带到页面“auth.php”,并停在那里,显示“连接成功”按database.php回声。没有什么更进一步的,它是假设认证,然后带我到usage.php。我检查过数据库名称,表格等,是否正确,有没有想法请求?
启用一个适当的error_reporting的display_errors,看看你不能发送头头功能之前的任何呼应如果你已经发送了输出,除非你有默认的output_buferring。 – Wrikken
如何启用display_errors? –
@StephanBotes:通过在网页中的php代码开头处添加此语句来启用显示错误LINK:http://php.net/manual/en/function.error-reporting.php –