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 に答える