在我的网站上,在每个php页面的顶部,我有一个
include_once'head.php';
此文件包含HTML。
在我的文件'authenticate.php'中,我想在登录索引后进行重定向。
我的代码如下: 标题('位置:http://www.URLHERE.com/index.php');
但是在提交后,页面会刷新。它没有重定向。重定向在我的localhost dev服务器上正常工作,但是一旦我在线上传它,它就停止了工作。
这是因为我的标题包含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
答案 0 :(得分: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.
Here you can see a concise but complete example with some explanations and reasoning。但是摆脱header.php并开始使用模板的主要原因是你提出的问题。
答案 1 :(得分:-1)
也许是因为您在设置标题后执行的代码?在该行之后添加die
(header
未停止执行!)。
答案 2 :(得分:-1)
您可以在include
中执行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!!!!!
}