Foros del Web » Programando para Internet » PHP »

Problemas con Login PHP y datos pasados por md5

Estas en el tema de Problemas con Login PHP y datos pasados por md5 en el foro de PHP en Foros del Web. Llevo varios días con una práctica que no logro resolver y ya empiezo a estar desesperado . El ejercicio está distribuido de la siguiente forma: ...
  #1 (permalink)  
Antiguo 07/03/2014, 05:38
 
Fecha de Ingreso: marzo-2014
Mensajes: 6
Antigüedad: 10 años, 1 mes
Puntos: 0
Problemas con Login PHP y datos pasados por md5

Llevo varios días con una práctica que no logro resolver y ya empiezo a estar desesperado .

El ejercicio está distribuido de la siguiente forma:

-index.php (Formulario de ingreso de contraseñas)
-checklogin.php (Los datos del formulario van a parar aquí para procesarlos)
.config.php (las credenciales válidas se almacenan aquí en unas constantes con el hash de las contraseñas).
-error.php (Si la contraseña es incorrecta me envía aquí / sí accedemos directamente a checklogin sin antes pasar por el index.php también me debería de enviar aquí).


Añado el código del checklogin, ahora mismo cuando introduzco los datos desde el formulario éste me manda al checklogin pero aparece la página en blanco, no importa las credenciales si son correctas o incorrectas.


El objetivo del checklogin es el siguiente:

-PASSWORD no coincide ( Enviar directamente a error.php)
-PASSWORD coincide ( Enviar a Intranet.php)
-Si accedo directamente a checklogin (Que me envíe a error.php con un Link de acceso a la index.php)



Código PHP:
<?php

if (!isset($_SESSION['submit'])) {

    
header("Location: ./error.php");

    exit();

}


session_start();

include_once(
"config.php");




$_SESSION['submit']=$_REQUEST['submit'];

$_SESSION['id_usuari']=$_REQUEST['usuari'];

$_SESSION['clau_access']= ($_REQUEST['contrasena']);



$pass md5 ($_POST['contrasena']);

                            

if (isset(
$_POST['usuari'])) {

    
$nom $_POST("usuari");

    }

   


switch(
$nom){

    case 
USER1:

       if (
strcmp($pass $password1)) == {

           
header("Location: ./intranet.php");

           exit;

           }

           break;

                                  

    case 
USER2:

       if (
strcmp($pass $password2)) == {

           
header("Location: ./intranet.php");

           exit;

           }

           break;
        

           default: 
header("Location: ./error.php?ERROR_LOGIN");

      


}

?>


<?php

No se si habrá algun error de sintaxis o error de declaración de variables.


este es el contenido de config.php:

Código PHP:
define('USER1','willy' TRUE);

define('USER2','wonka'TRUE);

$password1 define('PASSWORD1','81dc9bdb52d04dc20036dbd8313ed055'TRUE);
$password2 define('PASSWORD2','161ebd7d45089b3446ee4e0d86dbcf92'TRUE); 


Soy un completo novato en PHP.
  #2 (permalink)  
Antiguo 07/03/2014, 05:47
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problemas con Login PHP y datos pasados por md5

Te recomiendo darte una vuelta por aqui:

http://es1.php.net/define

Verás que estás usando mal $password1 y $password2 ;)


Y el switch:
http://es1.php.net/switch

Tb lo estás usando mal ;) (mira el ej:#2)

Saludos!
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 07/03/2014, 06:04
 
Fecha de Ingreso: marzo-2014
Mensajes: 6
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Problemas con Login PHP y datos pasados por md5

Cita:
Iniciado por Eleazan Ver Mensaje
Te recomiendo darte una vuelta por aqui:

[url]http://es1.php.net/define[/url]

Verás que estás usando mal $password1 y $password2 ;)


Y el switch:
[url]http://es1.php.net/switch[/url]

Tb lo estás usando mal ;) (mira el ej:#2)

Saludos!
No se puede añadir una constante dentro de una variable?
¿Entonces que llamo a las constantes con comillas? dentro de los case del switch me refiero.


Gracias por contestar.
  #4 (permalink)  
Antiguo 07/03/2014, 07:11
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problemas con Login PHP y datos pasados por md5

Cita:
Iniciado por andolinibdn Ver Mensaje
No se puede añadir una constante dentro de una variable?
¿Entonces que llamo a las constantes con comillas? dentro de los case del switch me refiero.


Gracias por contestar.
Fíjate en la documentación.

define devuelve bool, un booleano (verdadero o falso).
En el apartado de valores devueltos "Devuelve TRUE en caso de éxito o FALSE en caso de error.". Eso es lo que tienes en $password1 o $password2... TRUE o FALSE.

Se usaría algo así
Código PHP:
define('PASSWORD1','81dc9bdb52d04dc20036dbd8313ed055'TRUE);

...
if (
PASSWORD1 == $pass) ...
.. 
Fíjate que no he usado $password1, sino PASSWORD1, que ha sido tu define ;)
__________________
>> Eleazan's Source
>> @Eleazan

Etiquetas: formulario, login, md5, variable
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 02:01.