2011-06-29 115 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,空白等等。