0
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");
            }
        }
    }
?>
4

2 回答 2

2

尝试<?php作为开始标签而不是<?

或者你使用过 session_start() 吗?

还是您以前在任何地方发送过标头?

php显示有什么错误吗?

于 2012-08-05T19:27:25.490 回答
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 托管服务器上运行?

于 2012-08-05T19:52:42.803 回答