1

在我的网站上,在每个 php 页面的顶部,我都有一个

include_once 'header.php';

此文件包含 HTML。

在我的文件“authenticate.php”中,我想在登录回索引后进行重定向。

我的代码如下: header('Location: http://www.URLHERE.com/index.php ');

但是提交后,页面只是刷新。它不会重定向。重定向在我的本地主机开发服务器上正常工作,但是一旦我将其上传到网上,它就停止了工作。

这是因为我的标题包含 HTML,它在 header() 函数之前调用吗?请注意,“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 elseinclude_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 回答