2011-06-29 81 views
0

任何人都可以看到为什么我的两个文件不工作?我把cookie的数据放在最上面,所以我不知道为什么我仍然会收到标题错误。 (顺便说一句,我要在这里使用cookie,没有会话所以我有与我有什么工作)php表头和cookie问题

<?php 
ob_start(); 
?> 

<?php 

$browser = get_browser(); 

$_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; 
echo "<b>Welcome user. You ip is: ".$_SESSION['ip']." and your using ".$browser->browser." as your browser.</b>"; 

echo "<form action=\"form_data.php\" method=\"post\">"; 
echo "Your username:<input type=\"text\" name=\"username\" size=\"20\"><br/>"; 
echo "Your password:<input type=\"codeword\" name=\"codeword\" size=\"20\"><br/>"; 
echo "<input type=\"submit\" value=\"Submit data\" />"; 
echo "<br /><input type=\"hidden\" name=\"submitted\" value=\"true\" />"; 
?> 

<?php 
ob_end_flush(); 
?> 

form_data.php

<?php 
setcookie('username',$_POST['username']); 
setcookie('password', $_POST['codeword']); 
header("Location:form_data.php"); 

echo "<b>Thanks, </b>".$_COOKIE['username']. " <br />"; 
echo "Your codeword is ".$_COOKIE['codeword']."<br />"; 
echo "Started here: ".date("g:i a").", " .date("F j, Y"); 
echo "<br/>IP Address: ".$_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; 
?> 
+0

通常,错误消息指出发生错误的位置。你的错误信息说什么? – Gumbo

+0

如果您不使用会话,为什么要将事情设置为$ _SESSION?另外,头文件错误来自哪个文件和行? –

+0

你的php标签<?php在输出4或5个空格后打开,这就是为什么标题给出错误。并且还建议编写标题(“location:form_data.php”);而不是头(“location:form_data.php”);.请留意位置后的空间:这可能是反映。 – GitsD

回答

0

删除此行:

header("Location:form_data.php"); 

该行将重定向到form_data.php。但你在form_data文件=>重定向循环

我不会保存密码作为cookie。盗取这些密码真的很容易

1
<?php 
ob_start(); 
?> 

请注意在您打开<?php之前的4个空格。由于这些出现在PHP开放标签之前,它们被认为是输出。如果你想在整个过程中输出缓冲区和输出头文件,PHP的开始标签必须是文件中的第一个。这包括unicode BOM,空白等等。