Salve, ho un problema con i setcookie. Ovvero:
Lavorando in locale non ho avuto nessun tipo di problema, quando sono andato a fare le prove sul server non riesco a capire perche diavolo non mi fa il setcookie.. Ecco il codice:
Codice PHP:
<?php
?>
<?php
$hour = time() + 3600;
setcookie(ciccio, 'mamt', $hour);
echo '......'.$_COOKIE['ciccio'];
echo '......'.$_COOKIE['ciccio2'];
$link = mysql_connect('***********', '***********', '*********');
if (!$link) {
die ('Non riesco a connettermi: ' . mysql_error());
}
$db_selected = mysql_select_db('*******', $link);
if (!$db_selected) {
die ("Errore nella selezione del database: " . mysql_error());
}
?>
<table width="998" height="66" border="0" >
<tr>
<td width="660" height="62" colspan="2"></td>
</tr>
</table>
<blockquote>
<div id="apDiv1" style="overflow:auto">
<?php
// Connects to your Database
//mysql_connect('localhost', 'cagi76_burraco', 'tony') or die(mysql_error());
//mysql_select_db("cagi76_burraco") or die(mysql_error());
//Checks if there is a login cookie
if(isset($_COOKIE['id']))
echo '.......!!!.......';
//if there is, it logs you in and directes you to the members page
{
$nickname = $_COOKIE['id'];
$pass = $_COOKIE['Key'];
$check = mysql_query("SELECT * FROM staff WHERE nickname = '$nickname'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
header("Location: [url]www.google.it[/url]");
}
else
{
header("Location: AdminMain.php");
}
}
}
//if the login form is submitted
if ($_POST['submit'])
{
// if form has been submitted
// makes sure they filled it in
if(!$_POST['nickname'] | !$_POST['pass'])
die('You did not fill in a required field.');
$check = mysql_query("SELECT * FROM staff WHERE nickname = '".$_POST['nickname']."'")or die(mysql_error());
//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0)
die('Questo user non esiste nel nostro database.');
while($info = mysql_fetch_array( $check ))
{
$info['password'] = stripslashes($info['password']);
//gives error if the password is wrong
if ($_POST['pass'] != $info['password'])
die('Password non corretta, torna indietro e prova di nuovo.');
else
{
// if login is ok then we add a cookie
$hour = time() + 3600;
setcookie("id", $_POST['nickname'] , $hour) or die('errore');
setcookie("Key", $_POST['pass'], $hour) or die('errore');
setcookie(ciccio2, 'mamt2', $hour);
echo $_COOKIE['id'];
//then redirect them to the members area
header("Location: AdminMain.php");
}
}
}
else
{
// if they are not logged in
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<div align="center">
<table width="364" border="0">
<tr><td colspan=2 bgcolor="#FFFFFF" class="Stile1"><h1>Admin Login</h1></td></tr>
<tr>
<td width="98" bgcolor="#FFFFFF" class="Stile1">[b]Nickname:[/b]</td>
<td width="256" bgcolor="#FFFFFF" class="Stile1">
<input type="text" name="nickname" maxlength="40" style="border-style: solid; "> </td></tr>
<tr>
<td bgcolor="#FFFFFF" class="Stile1">[b]password:[/b]</td>
<td bgcolor="#FFFFFF" class="Stile1">
<input type="password" name="pass" maxlength="50" style="border-style: solid; "> </td></tr>
<tr>
<td colspan="2" align="right" bgcolor="#FFFFFF" class="Stile1"><input type="submit" name="submit" value="Entra" /></td>
</tr>
</table>
</div>
</form>
<?php
}
?>
</div>
Ora, provando a fare il setcookie all'inizio del codice non ci sono problemi, la pagina dopo mi stampa il contenuto del Cookie che viene conservato. Però quando provo a fare il setcookie nella condizione:
Codice PHP:
else
{
echo ' ELSE TROVATO ';
// if login is ok then we add a cookie
$hour = time() + 3600;
setcookie("id", $_POST['nickname'] , $hour) or die('errore');
setcookie("Key", $_POST['pass'], $hour) or die('errore');
setcookie(ciccio2, 'mamt2', $hour);
echo $_COOKIE['id'];
//then redirect them to the members area
header("Location: AdminMain.php");
}
non mi fa il maledetto setcookie.. E mi stampa giustamente "errore". Ora, nell'else entra.. PErchè ho fatto la prova con l'echo e perchè mi stampa "errore". Però non riesco a capire per quale diavolo di motivo non mi setti il cookie..
Qualcuno ha qualche idea? Sto impazzendo letterlmente.. E non riesco a capire perchè la stessa linea di codice funge sopra, ma non qualche linea di codice più in basso.. Inoltre funge in locale ma non sul server..