Foros del Web » Programando para Internet » PHP »

problema con codigo...

Estas en el tema de problema con codigo... en el foro de PHP en Foros del Web. intento ejecutar un codigo de autentificacion con cookies k obtuve de zend, pero algo esta mal con las cookies supongo vean: Pagina user: Pablasso pass: ...
  #1 (permalink)  
Antiguo 20/06/2003, 20:50
pablasso
Invitado
 
Mensajes: n/a
Puntos:
Pregunta problema con codigo...

intento ejecutar un codigo de autentificacion con cookies k obtuve de zend, pero algo esta mal con las cookies supongo vean:

Pagina

user: Pablasso pass: test

son dos pages este es el codigo

Código PHP:
//login.php

<?php

if ($click) {
    
$bd mysql_connect("localhost""xxxx""xxx");
    
mysql_select_db("test"$bd);

$sql "
SELECT nivel
FROM uac_usuarios
WHERE username = '$username'
AND password = '$password' "
;

    
$resultado mysql_query($sql);
    while (
$row mysql_fetch_array($resultado)) {
        
$nivel $row["nivel"];
    }
    
    if (!
mysql_num_rows($resultado)) {
        echo 
"No estas autorizado para entrar >_<!!";
        
    } else {
        
setcookie('username'$_POST['username'], (time()+2592000), '/'''0);
        
setcookie('nivel'$_POST['nivel'], (time()+2592000), '/'''0);
     }
    
    if (
$nivel == "1") {
        echo 
"Estas logeado como Invitado!.<br />
        <a href='pagina.php'>Click aqui para continuar</a>"
;
    } elseif (
$nivel =="2") {
        echo 
"Estas logeado como Alumno!.<br />
        <a href='pagina.php'>Click aqui para continuar</a>"
;
    } elseif (
$nivel =="3") {
        echo 
"Estas logeado como Maestro!.<br />
        <a href='pagina.php'>Click aqui para continuar</a>"
;
    } elseif (
$nivel =="4") {
        echo 
"Estas logeado como Administrador!.<br />
        <a href='pagina.php'>Click aqui para continuar</a>"
;
    }
    
} else {
?>

<form method="POST" action="<?php echo $GLOBALES['PHP_SELF']; ?>">
Usuario:<input type="text" name="username"><br />
Contraseña:<input type="password" name="password"><br />
<input type="submit" name="click" value="Entrar"><br />
</form>

<?php

}

?>
Código PHP:
//pagina.php

<?php

if ($click) {
    
setcookie('username'''time() - 3600);
    
setcookie('nivel'''time() - 3600);
    echo 
"Ahora estas fuera del sistema!";
} else {
    if (!
$_COOKIE['username']) {
        echo 
"No estas autorizado para ver esta pagina!";
        exit;
    }

    
?>
    
    <b>Usuario: </b> <?php echo $_COOKIE['username'];?><br />
    <b>Tu nivel de Usuario es: </b> <?php echo $_COOKIE['nivel'];?><br />
    <form method="POST" action"<?php echo $GLOBALS['PHP_SELF'];?>">
    <input type="submit" value="Salir" name="salir">
    </form>
    
    <?php
    
}

?>
alguien sabe k pasa?
  #2 (permalink)  
Antiguo 20/06/2003, 22:21
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
localiza esta linea
setcookie('nivel', $_POST['nivel'], (time()+2592000), '/', '', 0);

estas diciendo que ponga la cookie con valor $_POST[nivel] pero esa nunca se declaro entonces como haces la consulta seria

setcookie('nivel', $nivel, (time()+2592000), '/', '', 0);

por que nivel lo declaras aqui:

while ($row = mysql_fetch_array($resultado)) {
$nivel = $row["nivel"];
}

pero seria mejor que hicieras

$row=mysql_fetch_array($resultado);
$nivel=$row['nivel'];

por que solo tomarias unregistro osea quedaria asi:

Código PHP:

<?php

if ($click) {
    
$bd mysql_connect("localhost""xxxx""xxx");
    
mysql_select_db("test"$bd);

$sql "
SELECT nivel
FROM uac_usuarios
WHERE username = '$username'
AND password = '$password' "
;

    
$resultado mysql_query($sql);
    
$row=mysql_fetch_array($resultado);
    
$nivel=$row['nivel'];
    
    if (!
mysql_num_rows($resultado)) {
        echo 
"No estas autorizado para entrar >_<!!";
        
    } else {
        
setcookie('username'$_POST['username'], (time()+2592000), '/'''0);
        
setcookie('nivel'$nivel, (time()+2592000), '/'''0);
     }
    
    if (
$nivel == "1") {
        echo 
"Estas logeado como Invitado!.<br />
        <a href='pagina.php'>Click aqui para continuar</a>"
;
    } elseif (
$nivel =="2") {
        echo 
"Estas logeado como Alumno!.<br />
        <a href='pagina.php'>Click aqui para continuar</a>"
;
    } elseif (
$nivel =="3") {
        echo 
"Estas logeado como Maestro!.<br />
        <a href='pagina.php'>Click aqui para continuar</a>"
;
    } elseif (
$nivel =="4") {
        echo 
"Estas logeado como Administrador!.<br />
        <a href='pagina.php'>Click aqui para continuar</a>"
;
    }
    
} else {
?>

<form method="POST" action="<?php echo $GLOBALS['PHP_SELF']; ?>">
Usuario:<input type="text" name="username"><br />
Contraseña:<input type="password" name="password"><br />
<input type="submit" name="click" value="Entrar"><br />
</form>

<?php

}

?>
ojala te sirva
__________________

la vida es bella cuando no es culera
  #3 (permalink)  
Antiguo 20/06/2003, 22:38
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
y pagina.php modificarl asi

Código PHP:

//pagina.php

<?php

if ($_POST['click']) {
    
setcookie('username''x'time() - 3600);
    
setcookie('nivel''x'time() - 3600);
    echo 
"Ahora estas fuera del sistema!";
} else {
    if (!
$_COOKIE['username']) {
        echo 
"No estas autorizado para ver esta pagina!";
        exit;
    }

    
?>
    
    <b>Usuario: </b> <?php echo $_COOKIE['username'];?><br />
    <b>Tu nivel de Usuario es: </b> <?php echo $_COOKIE['nivel'];?><br />
    <form method="POST" action"<?php echo $GLOBALS['PHP_SELF'];?>">
    <input type="submit" value="Salir" name="salir">
    </form>
    
    <?php
    
}

?>
__________________

la vida es bella cuando no es culera
  #4 (permalink)  
Antiguo 20/06/2003, 22:43
pablasso
Invitado
 
Mensajes: n/a
Puntos:
muchas gracias por responder... tenias razon, ya funciona el nivel de usuario, gracias! pero me sigue fallando el desloguearme y el k guarde la cookie para recordarte cuando regreses.... le estuve picando pero nomas na de naa...

no sabes eso?

gracias!
  #5 (permalink)  
Antiguo 21/06/2003, 07:49
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 21 años, 4 meses
Puntos: 0
se me olvido un error mio el boton submit debe tener el nombre clic asi:

Código PHP:

<?php

if(isset($_COOKIE['username']))
{

if (
$_POST['salir']) {
    
setcookie('username''x'time() - 3600);
    
setcookie('nivel''x'time() - 3600);
    echo 
"Ahora estas fuera del sistema!";


    
?>
    
    <b>Usuario: </b> <?php echo $_COOKIE['username'];?><br />
    <b>Tu nivel de Usuario es: </b> <?php echo $_COOKIE['nivel'];?><br />
    <form method="POST" action"<?php echo $GLOBALS['PHP_SELF'];?>">
    <input type="submit" value="Salir" name="salir">
    </form>
    
    <?php
    
}
else
{
   echo 
"no estas autorizado para ver esta pagina";
}

?>
ojala te sirva
__________________

la vida es bella cuando no es culera

Última edición por sdf23; 21/06/2003 a las 07:55
  #6 (permalink)  
Antiguo 21/06/2003, 16:19
pablasso
Invitado
 
Mensajes: n/a
Puntos:
si me sirvio, muchas gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:48.