PDA

View Full Version : Non riesco a settare i cookis in PHP


LordBerisha
17-03-2003, 23:40
Ciao a tutti.

Ho un problema con il settaggio di un cookie.

La sintassi del codice dovrebbe essere corretta,una cosa tipo:

setcookie("nome_cookie",$valore,time()+3600)

Ma se provo a verificare in un altra pagina se il cookie esiste con:

isset("nome_cookie");

non risulta presente.
Inoltre nella directory dei cookies del mio pc non compare niente di nuovo.

Tuute le fonti in mio possesso (manuale php e svariate guide online) mi dicono che la sintassi è esatta...

Qualche suggeriento?[/b]

cionci
18-03-2003, 00:08
I cookies vanno settati prima di qualsiasi output sulla pagina HTML...
I cookies diventano disponibili solo nella pagina successiva nella quale li abbiamo settati...

Se non risulta definita la variabile $nome_cookie...prova a recuperare il cookie con il vettore globale associativo $_COOKIE["nome_cookie"]...

LordBerisha
18-03-2003, 10:16
La definizione del cookie è già prima di qualsiasi output HTML e la verifica del cookie avviene in un'altra pagina, tutto da manuale.

Hio provato a recuperare il cookie sia con $_COOKIE["nome_cookie"]
sia con $HTTP_COOKIE_VARS["nome_cookie"] che con $nome_cookie.

Niente da fare.

Ho provato a controllare la directory dei cookies del mio pc ma non si vede niente quindi credo che il problema sia nel settaggio.

cionci
18-03-2003, 10:23
Sicuro che non fai alcun output ? Potresti postarmi la pagina esatta (fin dal primo rigo) fino alla definizione del cookie ?

LordBerisha
18-03-2003, 12:25
<?php


//conferma i permessi degli utenti

//input user,log,fwd
include'lbf_settings.php';

//settings per la connessione al database

$db_host="....";
$db_login="....";
$db_pass="..........";

//connessione al database
$link=mysql_connect("$db_host", "$db_login", "$db_pass")
or die ( "Non riesco a connettermi a <b>$db_host");

mysql_select_db ($lbf_database, $link)
or die ( "Non riesco a selezionare il db $lbf_database<br>");

$dati= "SELECT user as u,password as p FROM utenti WHERE user='$user'";
$list=mysql_query ($dati,$link) or die("Invalid query". mysql_error());
$list=mysql_fetch_assoc($list);

//Se la password inserita corrisponde effettua il login
if ($list[u]!="" && $list[p]==$pass){


setcookie("nvb",$user,time()+3600);


echo"<html><head>";
echo"<title>Benvenuto $user</title>";
Echo "<META HTTP-EQUIV=Refresh CONTENT=\"3; URL=http://www.novebraccia.net/$fwd?user=$user&log=$log\"> ";
echo"</head>";
echo "<body>" ;
echo "<table width=\"100%\"> \n<td align=\"center\"><br>\n\n";
Echo "<table width=\"700\" border=\"0\" cellpadding=\"4\" cellspacing=\"2\" bordercolor=\"#0099FF\">";
Echo "<td valign=\"center\" align=\"center\">";
Echo "<font color=\"#0011FF\" size=\"3\">";
Echo "<br>";
Echo "<br>Benvenuto $user<br>Se il tuo browser non ti inoltra automaticamente clicca <a href=\"http://www.novebraccia.net/$fwd?user=$user&log=$log\">QUI</a><br>";
Echo "</td></table>";

Echo "</td></table>";
echo "</body>" ;
echo"</html>";
mysql_close($link);
}
//Se non corrisponde la pass chiede di nuovo i dati
else {
mysql_close($link);
echo"<html><head>";
echo"<title>Login</title>";
echo"</head>";
echo "<body>" ;
echo "<form action=\"login.php\" method=\"post\" \n";

echo "<table width=\"100%\"> \n<td align=\"center\"><br>\n\n";

Echo "<table width=\"700\" border=\"1\" cellpadding=\"4\" cellspacing=\"2\" bordercolor=\"#0099FF\">";
Echo "<td valign=\"center\" align=\"center\">";
Echo "<font color color=\"#0011FF\" size=\"3\">";
Echo "<br>";
Echo "<br>Username:<input name=\"user\" type=\"text\" maxlength=\"20\" size=\"20\">";
echo "</td>";
Echo "<input name=\"fwd\" type=\"hidden\" value=\"$fwd\">";
Echo "<tr><td align=\"center\">Password<input name=\"pass\" type=\"password\" maxlength=\"20\" size=\"20\"></td></tr>";
Echo "<tr><td align=\"center\"><input type=\"submit\" value=\"Collegami\">";
Echo "</tr></td></table>";

Echo "</td></table>";
echo "</form>";
echo "</body>" ;
echo"</html>";
}


?>

cionci
18-03-2003, 13:43
include'lbf_settings.php';
Lì dentro fai qualche output ?

Ricordati che anche una sola riga al di fuori di <?php ... ?> è un output...
Anche un riga vuota all'inizio del file...

LordBerisha
18-03-2003, 14:08
Grande cionci! :D
C'era una riga bianca all'inizio di lbf_settings.php, ora funziona.
Hai appena reso possibile il proseguimento dei lavori del mio forum!

Grazie :D

cionci
18-03-2003, 14:15
Ue bene :)