if(isset($_SESSION['username']) && isset($_SESSION['password'])){
header("Location: ../welcome/index.php");
我的登录脚本似乎最近停止了工作,7月19日发布了PHP的新更新。
任何人都可以解决这个问题吗?
这是整个剧本。
<?
include_once ('includes.inc.php');
if (!isset($_POST['login']) || (strlen($_POST['username']) < 3) || (strlen($_POST['password']) < 3)) { //User forgot a field
header("Location: ../index.php?message=4");
}
else {
$username = htmlspecialchars(mysql_real_escape_string(trim($_POST['username'])), ENT_QUOTES);
$password = sha1(trim($_POST['password']));
$sqlPass = mysql_query("SELECT isbanned, password, id FROM members WHERE username = '" . $username . "'");
$sqlPass = mysql_fetch_array($sqlPass);
if (($sqlPass['password'] == NULL) || ($sqlPass['password'] != $password)) { //User entered wrong information
header("Location: ../index.php?message=5");
}
else if ($sqlPass['isbanned'] == '1') {
header("Location: ../index.php?message=50");
}
else {
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['uid'] = $sqlPass['id'];
//Log IP
AddIPToLogs();
if (isset($_SESSION['username']) && isset($_SESSION['password'])) {
header("Location: ../welcome/index.php");
}
}
}
?>
答案 0 :(得分:2)
尝试使用<?php
作为开始代码,而不是<?
或者您使用过session_start()??
或者您之前在任何地方发过标题?
php显示有什么错误吗?
答案 1 :(得分:0)
我首先想到的是,查看提供的代码是你的if语句有语法错误。
if (!isset($_POST['login']) || (strlen($_POST['username']) < 3) || (strlen($_POST['password']) < 3)) { //User forgot a field
header("Location: ../index.php?message=4");
}
应该是
if ((!isset($_POST['login']) || (strlen($_POST['username']) < 3) || (strlen($_POST['password']) < 3)) { //User forgot a field
header("Location: ../index.php?message=4");
}
此外,您在'header('Location:')'语句之前有一个'include'语句。您所包含的代码中可能存在一个问题。
最后,您应该详细说明如何更新系统,从哪个版本的PHP到“最新”版本。您是自己进行此更新,还是在Web托管服务器上运行?