【发布时间】:2015-03-09 06:47:11
【问题描述】:
我使用 PHP 和 Mysql 构建了一个 Web 应用程序。它有一个登录部分。它工作正常,在我的本地服务器上一切正常。但是当我在实时服务器上上传这个应用程序时,重定向功能不再起作用。我的代码:
signin.php:
<form action="do_login.php" method="post">
<input name="user" type="text" id="user" size="25" placeholder="Username" />
<input name="password" type="password" id="password" size="25" placeholder="Password" />
<input name="submit" type="submit" value="Login" class="submit"/>
</form>
do_login.php:
<?php
include 'includes/dbConnect.php';
$my_user = $_POST['user'];
$my_password = $_POST['password'];
if ($my_user == '' || $my_password == '')
{
$myURL = 'error.php?eType=pass';
header('Location: '.$myURL);
exit;
}
$result = mysql_query("SELECT * FROM users where username = '$my_user' and password = '$my_password'") or die("SELECT Error: ".mysql_error());
$num_rows = mysql_num_rows($result);
$get_info = mysql_fetch_row($result);
if (mysql_num_rows($result) > 0)
{
session_start();
$_SESSION['login_status'] = "yes" ;
$_SESSION['email'] = $get_info['3'];
$_SESSION['full_name'] = $get_info['0'];
$myURL = 'admin.php';
header('Location: '.$myURL);
}
else
{
$myURL = 'error.php?eType=wrong';
header('Location: '.$myURL);
exit;
}
?>
当用户成功登录时,浏览器会转到do_login.php 并显示一个空白页面,该页面不会在实时服务器上重定向到admin.php,但在本地主机上它会重定向到admin.php。当我手动转到admin.php,它有限制,只有登录的用户可以访问它,我可以访问它,这意味着我已经登录并且工作正常。
错在哪里?
【问题讨论】:
-
不要使用已弃用的
mysql_*API。使用mysqli_*或pdo -
开启错误报告 -
ini_set('display_errors', 1); error_reporting(E_ALL);。我几乎可以肯定你会收到"Headers already sent"错误。 -
查看您的服务器日志文件以了解是否有错误。
-
你能照我说的@MajidAli 告诉我出现了什么错误吗?
-
来这里的人原则上愿意提供帮助。因此,不要乞求(在问题和 cmets 中)按要求更新您的问题,因为它不完整。当更新从不使用 Edit 或 Update 时,我们可以从系统编辑历史记录中看到如有必要发生了哪些变化。更重要的是一个易于阅读、连贯的问题,无需闲聊。