Foros del Web » Programando para Internet » PHP »

Ayuda: este código tampoco me funciona

Estas en el tema de Ayuda: este código tampoco me funciona en el foro de PHP en Foros del Web. El problema que tengo es que cuando introduzco los datos de un usuario registrado, me dice que los datos son incorrectos y me vuelve a ...
  #1 (permalink)  
Antiguo 02/02/2007, 10:36
 
Fecha de Ingreso: enero-2007
Mensajes: 76
Antigüedad: 17 años, 4 meses
Puntos: 0
Ayuda: este código tampoco me funciona

El problema que tengo es que cuando introduzco los datos de un usuario registrado, me dice que los datos son incorrectos y me vuelve a la página del login.

Código PHP:
<? 
include("config.php");

//Sentencia SQL para buscar un usuario con esos datos 
$ssql "SELECT * FROM usuarios WHERE nick='$nick' and pass='$pass'"

//Ejecuto la sentencia 
$rs mysql_query($ssql,$link); 

//vemos si el usuario y contraseña es váildo 
//si la ejecución de la sentencia SQL nos da algún resultado 
//es que si que existe esa conbinación usuario/contraseña 
if (mysql_num_rows($rs)!=0){ 
    
//usuario y contraseña válidos 
    //defino una sesion y guardo datos 
    
session_start(); 
    
session_register("autentificado"); 
    
$autentificado "SI"
    echo 
"Login realizado con exito. Será redireccionado a la zona privada.";
    
?>
    <script type="text/javascript">
    
    var pagina = 'entrada.php';
    var segundos = 5000;
    
    function redireccion() {
    
    document.location.href=pagina;
    
    }
    
    setTimeout("redireccion()",segundos);
    
    </script>
    <?
    
}else { 
    
//si no existe le mando otra vez a la portada 
    
echo "Datos incorrectos. Inténtelo de nuevo.";
    
?>
    <script type="text/javascript">
    
    var pagina = 'login.php';
    var segundos = 5000;
    
    function redireccion() {
    
    document.location.href=pagina;
    
    }
    
    setTimeout("redireccion()",segundos);
    
    </script>
    <?
    

mysql_free_result($rs); 
mysql_close($link); 
?>
  #2 (permalink)  
Antiguo 02/02/2007, 10:50
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: Ayuda: este código tampoco me funciona

¿Donde esta tu definición de $nick y $pass?

Saludillos.
  #3 (permalink)  
Antiguo 02/02/2007, 10:51
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Ayuda: este código tampoco me funciona

Estas recepcionando los valores de $nick y $pass?

osea:

$nick = $_POST['nick'];
$pass = $_POST['pass'];

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM usuarios WHERE nick='$nick' and pass='$pass'";
.....
  #4 (permalink)  
Antiguo 02/02/2007, 11:01
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Ayuda: este código tampoco me funciona

Proba esto tb...
en mayusculas
SESSION_START();
SESSION_REGISTER("autentificado");
  #5 (permalink)  
Antiguo 02/02/2007, 11:13
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Ayuda: este código tampoco me funciona

Adonde tienes guardado el password del usuario en la base, lo has encriptado de alguna forma??? Por que en la consulta no lo haces.
  #6 (permalink)  
Antiguo 02/02/2007, 11:18
 
Fecha de Ingreso: enero-2007
Mensajes: 76
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda: este código tampoco me funciona

OK. Muchas gracias, era eso que no tenía declaradas las variables....

Ahora tengo otro problemilla, que creo que será parecido: tengo otro archivito php que es el que se encarga de verificar el registro y el que redirecciona o no a la zona restringida. Este archivo luego lo pongo en un include en las paginas restringidas. El caso es que me vuelve a redireccionar siempre al login. Supongo que será un problema parecido a lo anterior... a ver si me volvéis a ayudar. Gracias otra vez.

El código en cuestión que me está fallando es este:
Código PHP:
<? 
//TOMO VARIABLES DE SESION SOBRE LA AUTENTIFICACION 
session_register("autentificado"); 
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO 
if ($autentificado != "SI") { 
    
//si no existe, envio a la página de autentificacion 
    
header("Location: login.php"); 
    
//ademas salgo de este script 
    
exit(); 

?>
  #7 (permalink)  
Antiguo 02/02/2007, 11:24
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Ayuda: este código tampoco me funciona

jeje efectivamente es lo mismo donde inicializas tu variable autentificado, el uso de session_register ya no es recomendable... te recomendo que uses $_SESSION["autententificado"] = true;


Saludillos.
  #8 (permalink)  
Antiguo 02/02/2007, 11:34
 
Fecha de Ingreso: enero-2007
Mensajes: 76
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda: este código tampoco me funciona

Cita:
Iniciado por mauled Ver Mensaje
jeje efectivamente es lo mismo donde inicializas tu variable autentificado, el uso de session_register ya no es recomendable... te recomendo que uses $_SESSION["autententificado"] = true;


Saludillos.

No te he entendido muy bien... y otra duda: donde pongo session_register("autentificado"); , el "autentificado" ese ¿no tendrá que ser el nombre del usuario registrado? ¿Lo tengo que sustituir por "nick", o por "$nick "?

Y otra cosa: no será que no estoy enviando la variable $autentificado a este archivo??
  #9 (permalink)  
Antiguo 02/02/2007, 12:27
 
Fecha de Ingreso: enero-2007
Mensajes: 76
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda: este código tampoco me funciona

Venga, chicos, que estoy a punto (creo) de que me funcione. ¿Alguna sugerencia sobre mis últimas dudas?

Gracias
  #10 (permalink)  
Antiguo 02/02/2007, 12:30
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Ayuda: este código tampoco me funciona

Yo te recomendaria q hagas esto:

session_start();
session_register('nick');//paraq lo puedas usar en las paginas restringidas


ahora el las pag restringidas:
session_start();
if (!session_is_registered('nick')){
header("Location: login.php");
}
  #11 (permalink)  
Antiguo 02/02/2007, 12:45
 
Fecha de Ingreso: enero-2007
Mensajes: 76
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda: este código tampoco me funciona

Ahora lo he dejado así.

El archivo de log.php, en la parte en la que detecta un usuario correctamente conectado he puesto:

Código PHP:
<?if (mysql_num_rows($rs)!=0){ 
    
//usuario y contraseña válidos 
    //defino una sesion y guardo datos 
    
session_start(); 
    
$_SESSION["nick"] = true;
     echo 
"Login realizado con exito. Será redireccionado a la zona privada.";
    
?>
    <script type="text/javascript">
    
    var pagina = 'entrada.php';
    var segundos = 5000;
    
    function redireccion() {
    
    document.location.href=pagina;
    
    }
    
    setTimeout("redireccion()",segundos);
    
    </script>
    <??>
... y en el archivo valid.php, el que uso para incluir al inicio de las páginas restrigidas lo he dejado asi:

Código PHP:
<?
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO 
    
if ($_SESSION["nick"] != true)){
    
//si no existe, envio a la página de autentificacion 
    
header("Location: login.php"); 
    
//ademas salgo de este script 
    
exit(); 

?>
... y me da el siguiente error

Parse error: syntax error, unexpected ')' in /www/sites/1/iespana.es/q/u/quintadim/site/Valid.php on line 4

... como veis estoy empezando en esto, y no hago más que estrellarme, pero es lo que tiene intentar aprender por uno mismo...
  #12 (permalink)  
Antiguo 02/02/2007, 13:16
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Ayuda: este código tampoco me funciona

el error es por esto

<?
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["nick"] != true){ //tenias una ")" de mas
//si no existe, envio a la página de autentificacion
header("Location: login.php");
//ademas salgo de este script
exit();
}
?>
  #13 (permalink)  
Antiguo 05/02/2007, 03:02
 
Fecha de Ingreso: enero-2007
Mensajes: 76
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda: este código tampoco me funciona

Gracias a todos por vuestra ayuda. Al final lo he dejado así, y me funciona (por si a alguien le interesa usarlo o mejorarlo):

Archivo que recoge los datos del formulario:

Código PHP:
<? 
include("config.php");

$nick $_POST['nick'];
$pass $_POST['pass'];


//Sentencia SQL para buscar un usuario con esos datos 
$ssql "SELECT * FROM usuarios WHERE nick='$nick' and pass='$pass'"

//Ejecuto la sentencia 
$rs mysql_query($ssql,$link); 

//vemos si el usuario y contraseña es váildo 
//si la ejecución de la sentencia SQL nos da algún resultado 
//es que si que existe esa conbinación usuario/contraseña 
if (mysql_num_rows($rs)!=0){ 
    
//usuario y contraseña válidos 
    //defino una sesion y guardo datos 
    
session_start();
    
session_register('nick');
     echo 
"Login realizado con exito. Será redireccionado a la zona privada.";
    
?>
    <script type="text/javascript">
    
    var pagina = 'entrada.php';
    var segundos = 5000;
    
    function redireccion() {
    
    document.location.href=pagina;
    
    }
    
    setTimeout("redireccion()",segundos);
    
    </script>
    <?
    
}else { 
    
//si no existe le mando otra vez a la portada 
    
echo "Datos incorrectos. Inténtelo de nuevo.";
    
?>
    <script type="text/javascript">
    
    var pagina = 'login.php';
    var segundos = 5000;
    
    function redireccion() {
    
    document.location.href=pagina;
    
    }
    
    setTimeout("redireccion()",segundos);
    
    </script>
    <?
    

mysql_free_result($rs); 
mysql_close($link); 
?>
Archivo que valida los datos y que debemos poner en un include al inicio de las páginas privadas:

Código PHP:
<?
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO 
    
session_start();
    if (!
session_is_registered('nick')){
    }
    else{
    
//si no existe, envio a la página de autentificacion 
    
header("Location: login.php"); 
    
//ademas salgo de este script 
    
exit(); 
    }
?>
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 00:14.