Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/11/2005, 06:53
Tigervlc
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Bueno, pues pongo el código del login entero.
Se encuentra en un archivo llamado login.php, que es incluido con include() en un <DIV> de index.php, con lo cual es ejecutado siempre.

Este es el código:

Código PHP:
<?php 
        
@$us_registrado $_SESSION['us_registrado'];
        echo 
'<h1>Cuenta de usuario:</h1>';
        if (isset(
$_POST["log_in"]) && isset($_POST["password"]))
        
// Se acaba de enviar el formulario de log in
        
{
            @
$log_in $_POST["log_in"];
            @
$password $_POST["password"];
            @
$recordar $_POST["recordar"];
            
            
// Si se ha marcado la casilla recordar, poner una cookie en ese equipo para recordar
            
if (isset($_POST["recordar"])) {
                
setcookie('loginWebVN',"$log_in,$password",false);
            }
            
            @
$link mysql_connect('localhost''registrador''passwordDelRegistrador');
            if (!
$link) {
                   die(
'No se ha podido conectar al servidor. Error: ' mysql_error());
            }
            @
$db mysql_select_db('auth'$link);
            if (!
$db) {
                die(
'Error en el acceso a la base de datos. Inténtalo más tarde. Error<br />'.mysql_error());
            }
            
            
$query "SELECT * FROM authorized_users WHERE name='".$log_in."' AND password='".sha1($password)."'";
            @
$result mysql_query($query$link);
            if (!
$result) {
                   die(
'Error en la consulta: ' mysql_error());
            }
            
$num_results mysql_num_rows($result);
            
            if (
$num_results 0) {
                
// Se ha encontrado alguna coincidencia. Usuario válido. Se crea variable de sesión.
                
$_SESSION['us_registrado'] = $log_in;
                                                   
// Se vacían las vbles del login para no repetir este proceso
                
unset($_POST["log_in"]);
                unset(
$_POST["password"]);
            }
            
            
mysql_free_result($result);
            
mysql_close($link);
        }

        if (isset(
$_SESSION['us_registrado']) && !isset($_POST["desconectar"])) 
        {
            
// Ya se ha registrado el usuario actual y no ha hecho log out
?>  
            <form name="registrado" method="post" action="index.php">
                <p>Usuario conectado:<br /> 
                  <strong><?php echo $_SESSION['us_registrado']; ?></strong>
                  <input type="hidden" name="desconectar" value="on">
              </p>
                <p><input name="logout" type="submit" id="logout" value="Log out"></p>
            </form>
<?php 
        

        else 
        { 
// El usuario no es válido y ha intentado conectarse, o acaba de hacer log out, o no ha hecho login ni registro
            
if (isset($_POST["desconectar"])) {
                
// Se ha hecho log out. Destruimos la variable de sesión.
                
unset($_SESSION['us_registrado']);
            }
            
            if (isset(
$log_in) || isset($password)) {
                
// Aunque no tenemos id de sesión, hay valores en los campos del log in, o sea: usuario no válido
                
echo '<strong>Usuario o contraseña incorrectos.</strong><br />';
            } 
            
            else {
                
// Usuario que no se ha conectado aún, o ha hecho log out
                
echo 'Usuario desconectado o no registrado.<br />';
            }    
?>
             <form name="form2" method="post" action="index.php">
                 <table width="100%" border="0">
                  <tr>
                    <td>Conexi&oacute;n:</td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td>log in</td>
                    <td><input name="log_in" type="text" size="15" value="<?php if (isset($_COOKIE["loginWebVN"])) 
                                                                                { 
                                                                                        
$partes explode(',',$_COOKIE["loginWebVN"]);
                                                                                        echo 
$partes[0];
                                                                                }
                                                                                
?>"/>
                                                                                </td>
                  </tr>
                  <tr>
                    <td>password</td>
                    <td><input name="password" type="password" size="15" value="<?php if (isset($_COOKIE["loginWebVN"])) 
                                                                                { 
                                                                                        
$partes explode(',',$_COOKIE["loginWebVN"]);
                                                                                        echo 
$partes[1];
                                                                                        }
                                                                                
?>"/>
                                                                                </td>                  </tr>
                  <tr>
                    <td><div class="Estilo1">
                      <div>Recordar en este equipo (necesita
                    tener cookies habilitadas): </div>
                    </div></td>
                    <td><input name="recordar" type="checkbox" id="recordar" value="true" /></td>
                  </tr>
                  <tr>
                    <td colspan="2"><div align="center">
                      <input name="signIn" type="submit" id="signIn" value="Enviar" />
                    </div></td>
                  </tr>
                </table>
</form>
            <form name="form1" method="post" action="index.php">
                    Usuario no registrado: 
                    <input name="registro" type="submit" id="registro" value="Registrarse">
                    <input type="hidden" name="registrar" value="on">
                    <br>
            </form>
<?php 
        
}
?>
Por lo que entiendo de lo que dices, se ve que hago mal el manejo de la cookie, que es mi pregunta.

A ver si con todo el código me puedes tu o algún otro corregir el error. Como digo, quiero que cuando seleccione la casilla de recordar, posteriormente aparezcan el nombre de usuario y password en sus respectivos campos y sólo sea necesario hacer click en el botón de conexión.