运行我的脚本时,我收到几个这样的错误:
警告:不能更改头信息-头已经发出(输出开始/some/file.php:12)在/some/file.php上线23
错误消息中提到的行包含header()和setcookie()调用.
这可能是什么原因?以及如何解决它?
PHP可以在执行函数后进行重定向调用吗?我正在创建一个函数,我希望它能够重定向到位于同一根文件夹中的文件.可以吗?
if (...) {
// I am using echo here.
} else if ($_SESSION['qnum'] > 10) {
session_destroy();
echo "Some error occured.";
// Redirect to "user.php".
}
Run Code Online (Sandbox Code Playgroud) 我在stackoveflow找到了一些关于如何压缩特定文件的代码,但是特定文件夹怎么样?
Folder/
index.html
picture.jpg
important.txt
Run Code Online (Sandbox Code Playgroud)
在里面My Folder,有文件.在压缩之后My Folder,我还要删除文件夹的全部内容important.txt.
在堆栈找到这个
我需要你的帮助.谢谢.
基于RFC,似乎302响应中的位置字段应该是绝对的. http://tools.ietf.org/html/rfc2616#section-14.30
如果这个陈述是正确的,浏览器是否尊重这个 - 或者他们是否允许相对路径?
我正在建立一个包含登录页面的网站.我需要在用户成功登录后将用户重定向到他们的个人资料页面,但我不知道如何在PHP中这样做(这是我的第一个网站).
我已经搜索过互联网,并且被告知header()函数应该可以解决问题,但只有在使用之前我没有输出任何信息时它才会起作用.
那就是问题所在.我输出了一堆信息(包括HTML来构建登录页面本身).
那么如何将用户从一个页面重定向到另一个页面呢?
我有什么选择?此外,这些情况下的最佳做法是什么?
编辑:这是我的整个login.php页面
<?php
session_start();
echo "<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Sprout</title>
<link rel='stylesheet' href='stylesheet.css' type='text/css'>
</head>
<body>
<div class='box'>
<form action='login.php' method='post'>
Name<br /> <input type='text' name='username' class='form'/><br />
Password<br /> <input type='password' name='password' class='form'/>
<input type='submit' value='Login' class='button' />
</form>
</div>
</body>
</html>";
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$username = $_POST["username"];
$password = $_POST["password"];
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "root";
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to database"); …Run Code Online (Sandbox Code Playgroud) 如何使用PHP重定向到同一页面?
例如,我的本地网址是:
http://localhost/myweb/index.php
Run Code Online (Sandbox Code Playgroud)
如何在我的网站内重定向到另一个页面,说:
header("Location: clients.php");
Run Code Online (Sandbox Code Playgroud)
我知道这可能是错的,但我真的需要把整个事情搞定吗?如果不是以后怎么http://localhost/办?
有没有办法做这样的事情?此外,我有很多代码,然后在完成处理一些代码后...我试图重定向使用它.这可以吗?
是的,之前已经问过这个问题,但答案是不一致的.就拿我为什么要通过在PHP头("位置..")重定向后打电话到"退出"?例如.每个答案(包括接受的答案)都是肯定的,除了收到零票的最后一个答案,表示"可能".我开始认为正确的答案是"可能".为了使它成为一个简单的"是"或"否"问题,将在给定以下脚本的情况下执行这个()吗?谢谢
header('Location: http://somewhereElse.com');
//die();
sleep(1000);
doThis();
Run Code Online (Sandbox Code Playgroud)
编辑谢谢,所有.使用我的PHP/Linux/Apache配置,第二个syslog()执行,所以答案是"是的,将执行标题的所有脚本下游".我将假设(并希望我是正确的)它与所有PHP/Linux/Apache配置相同!
<?php
header('Location: http://google.com');
syslog(LOG_INFO,'first');
sleep(5);
syslog(LOG_INFO,'Second');
?>
Run Code Online (Sandbox Code Playgroud) 这个contact.php表单正在处理提交,然后重定向到新页面,然后突然停止工作.我已经尝试添加错误处理,并将标题移动到所有其他前面的顶部,但都不起作用.表单仍然按预期提交数据,只是重定向不起作用.任何想法,将不胜感激.
<?php
include 'config.php';
$post = (!empty($_POST)) ? true : false;
if($post)
{
$email = trim($_POST['email']);
$subject = "Downloaded Course Units";
$error = '';
if(!$error)
{
$mail = mail(WEBMASTER_EMAIL, $subject, $message,
"From: ".$email."\r\n"
."Reply-To: ".$email."\r\n"
."X-Mailer: PHP/" . phpversion());
if($mail)
{
echo 'OK';
header('location: http://www.google.com.au/');
exit();
}
}
}
?>
Run Code Online (Sandbox Code Playgroud) 我有一个signup.php页面,其中包含通过facebook按钮登录.页面结构就是这样的
<?php
if(!isset($_SESSION['logged_in']))
{
echo '<div id="results">';
echo '<!-- results will be placed here -->';
echo '</div>';
echo '<div id="LoginButton">';
echo '<a href="#" rel="nofollow" class="fblogin-button" onClick="javascript:CallAfterLogin();return false;">Login with Facebook</a>';
echo '</div>';
}
else
{
echo 'Hi '. $_SESSION['user_name'].'! You are Logged in to facebook, <a href="?logout=1">Log Out</a>.';
}
?>
Run Code Online (Sandbox Code Playgroud)
此页面上使用的ajax代码调用另一个页面process_facebook.php并在后端处理数据.在signup.php页面中用于ajax的代码是
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo $appId; ?>',
cookie: true,xfbml: true,
channelUrl: '<?php echo $return_url; ?>channel.php',
oauth: true
});
};
(function() {
var e = document.createElement('script'); …Run Code Online (Sandbox Code Playgroud)