1

私のウェブサイトでは、すべてのphpページの上部に、

include_once 'header.php';

このファイルには HTML が含まれています。

私のファイル「authenticate.php」では、インデックスにログインした後にリダイレクトしたいと考えています。

私のコードは次のとおりです。

ただし、送信後、ページが更新されるだけです。リダイレクトしません。私の localhost 開発サーバーではリダイレクトが適切に機能していましたが、オンラインにアップロードするとすぐに機能しなくなりました。

これは、header() 関数の前に呼び出される HTML がヘッダーに含まれているためですか? 「header.php」ファイル内のすべての HTML は HEREDOC タグ内にあることに注意してください。

これが私のコードです:

<?php // login.php
include_once 'header.php';
include_once 'functions.php';
require_once 'login_users.php';

$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to database:" . mysql_error());
mysql_select_db($db_database)
    or die("Unable to find database:" . mysql_error());

if (isset($_POST['username']) &&
    isset($_POST['pw_temp']))
{
    $username = sanitizeString($_POST['username']);
    $pw_temp = sanitizeString($_POST['pw_temp']);
    $pw_temp = md5($pw_temp);
    $query = "SELECT username,password FROM users WHERE username='$username' AND password='$pw_temp'";
    if (mysql_num_rows(mysql_query($query)) == 0)
    {
    die("Wrong info");
    }
    else
    {
            $_SESSION['username'] = $username;
            $_SESSION['password'] = $pw_temp;
            $_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
            header('Location: http://www.URLHERE.com/index.php');
        }       
}

...more code down here
4

3 に答える 3

0

私のウェブサイトでは、すべてのphpページの上部に、include_once 'header.php';

これはあなたが間違っていることです。

あるべき姿

<?php // login.php
include_once 'functions.php';
require_once 'login_users.php';

// some code

include 'output.php'; // ONLY HERE output starts.

ここでは、いくつかの説明と推論を含む簡潔だが完全な例を見ることができます。しかし、header.php を削除してテンプレートの使用を開始する主な理由は、まさにあなたが尋ねた質問です。

于 2013-07-31T13:44:26.313 に答える
-1

ヘッダーを設定した後に実行しているコードが原因でしょうか? dieその行の後に追加します(header実行を停止していません!)。

于 2013-07-31T13:46:27.350 に答える
-1

includeinを実行し、ファイルの先頭行からelseを削除して、次のように実行できます。include_once 'header.php';

if (isset($_POST['username']) &&
    isset($_POST['pw_temp']))
{
    $username = sanitizeString($_POST['username']);
    $pw_temp = sanitizeString($_POST['pw_temp']);
    $pw_temp = md5($pw_temp);
    $query = "SELECT username,password FROM users WHERE username='$username' AND password='$pw_temp'";
    if (mysql_num_rows(mysql_query($query)) == 0)
    {
    die("Wrong info");
    }
    else
    {
            $_SESSION['username'] = $username;
            $_SESSION['password'] = $pw_temp;
            $_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
            header('Location: http://www.URLHERE.com/index.php');
        }       
}
else
{
include_once 'header.php';
//..... now your code!!!!!

}
于 2013-07-31T13:46:30.607 に答える