2011-06-29 1 views
0

Quelqu'un peut-il voir pourquoi mes deux fichiers ne fonctionnent pas? Je mets les données de cookie en haut, donc je ne sais pas pourquoi je reçois encore des erreurs d'en-tête. (BTW, je dois utiliser des cookies ici, pas des séances donc je dois travailler avec ce que j'ai)en-tête de formulaire php et les problèmes de cookies

<?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

Généralement, le message d'erreur indique où l'erreur s'est produite. Que dit votre message d'erreur? – Gumbo

+0

Si vous n'utilisez pas de sessions, pourquoi définissez-vous les choses dans $ _SESSION? De plus, de quel fichier et de quelle ligne provient l'erreur d'en-tête? –

+0

votre balise php GitsD

Répondre

0

supprimer cette ligne:

header("Location:form_data.php"); 

la ligne redirigerait vers form_data.php. mais vous êtes dans le fichier form_data => boucle de redirection

et je ne voudrais pas enregistrer un mot de passe en tant que cookie. il est vraiment facile de voler les mot de passe

1
<?php 
ob_start(); 
?> 

Notez les 4 espaces avant l'ouverture <?php. Comme ceux-ci apparaissent AVANT le tag d'ouverture php, ils sont considérés comme une sortie. Si vous voulez faire du buffer de sortie et des en-têtes de sortie, la balise d'ouverture de PHP doit être absolument la première chose dans le fichier. Cela inclut la nomenclature unicode, l'espace, etc ...