Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2009, 13:27
miwelillo
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 16 años, 9 meses
Puntos: 11
Problema con login y cookies

Saludos a todos, llevo un tiempo leyendo el foro y empapándome de información pero nunca me había decidido a escribir ya que en general he podido encontrar solución a mis dudas a base de buscar. El problema es que para este caso no he encontrado nada similar a mi problema.

Tengo una página de login que tiene los datos almacenados en una base de datos. Accede perfectamente a la zona "privada", pero el problema es que no funciona a la primera, si no que hay que recargar la página para que se pueda entrar con éxito. He comprobado las cookies y todo el proceso se realiza correctamente. No obstante la primera vez carga hasta el if(isset($_COOKIE[...]) y no lo toma como válido, a pesar de que la cookie se ha creado correctamente y la variable tiene el valor apropiado.

Os adjunto el código (bastante simple) para que podáis echarle un vistazo a ver si alguien descubre que puede estar pasando.

Un saludo y enhorabuena por el foro!

Código PHP:
<?php

    $surname
=$_POST["surname"];
    
$password=$_POST["password"];
    if(isset(
$surname) && isset($password)){
        
$conexion=mysql_connect("localhost","user","password");
        
$sql="select persons.surname, officers.password from persons, officers where persons.surname='$surname' and persons.pid=officers.pid";
        
$result=mysql_db_query("elections_db",$sql);
        
$fila=mysql_fetch_array($result);
        if(
$fila["password"]==$password && $fila["surname"]==$surname){
            
$uid=$surname;
            
setcookie('uid'$uidtime() + 14400'/');
            echo 
"
            
            <html xmlns=\"http://www.w3.org/1999/xhtml\">
            <head>
            <title>Ufficio Elettorale</title></head>
            <body>
            <h2>Ufficio Elettorale</h2>"
;

// La primera vez que me logeo solo carga hasta aqui, una vez pulso F5 carga correctamente a pesar de que la cookie existe y la variable uid se ha creado dentro de ella

            
if (isset($_COOKIE['uid']) && $_COOKIE['uid']){
                echo 
"You are logged in as: ".$_COOKIE['uid']."<br/>
            <ol>
            <li>Anagrafe persone
             <ul>
              <li>Elenca persone</li>

                  <li><a href=\"anagrafe-aggiungi.php\">Aggiungi persona</a></li>
                  <li><a href=\"anagrafe-cancella.php\">Cancella persona</a></li>
                  <li><a href=\"anagrafe-modifica.php\">Modifica persona</a></li>
             </ul></li>
            <li>Aggiornamento elenco dei candidati
             <ul>
              <li>Elenca candidato</li>
              <li>Aggiungi candidato</li>

              <li>Cancella candidato</li>
             </ul></li>
            <li>Aggiornamento elenco degli elettori
             <ul>
              <li>Elenca elettore</li>
               <li>Aggiungi elettore</li>
              <li>Cancella elettore</li>
             </ul></li>

            <li><a href=\"start_election.php\">Inizio votazione</a></li>
            <li><a href=\"close_election.php\">Chiusura votazione</a></li>
            <li>Pubblicazione risultati</li>
            </ol>
            <a href=\"logout.php\">Log out</a><br />"
;
            }
        }
        
    
    }
    else{
?>
<h2>Ufficio Elettorale</h2>
You are not logged in.<br />
<form method="post" action="ufficio-elettorale.php">
<table>
<tr><td>Cognome (maiuscolo):</td>

<td><input type="text" name="surname"></input></td></tr>
<tr><td>Password:</td>
<td><input type="password" name="password"></input></td></tr>
<tr><td colspan="2" align="center">
<input type="submit" value="Log in"></input></td></tr>
</table></form>
<?php
    
}
?>
</body>
</html>