Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No consigo iniciar sesión php+sql

Estas en el tema de No consigo iniciar sesión php+sql en el foro de PHP en Foros del Web. Saludos a todos. No consigo entrar con un usuario correcto y su correspondiente contraseña. Anteriormente si que podia usando otro campo de la dbcomo user ...
  #1 (permalink)  
Antiguo 20/04/2014, 15:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 1
No consigo iniciar sesión php+sql

Saludos a todos.

No consigo entrar con un usuario correcto y su correspondiente contraseña.
Anteriormente si que podia usando otro campo de la dbcomo user por lo que tengo testeado ya el acceso.

ahora el usuario es dni.
en la db mysql esta el campo como DNI y lo uso como variable $dni

Adjunto el código php de la pagina de incio y de la función.

Muchas gracias y feliz Pascua a todos!

pagina inicio
Código PHP:
Ver original
  1. <?php
  2.     include ("funcions.php");
  3.                             if (isset($_GET["error"])) {
  4.  
  5.                                 echo "Usuari o contrasenya incorrecta, ja esta registrat?";
  6.                             }
  7.  
  8.  
  9.                             if (isset($_SESSION["DNI"])){
  10.                                 $nom=$_SESSION["DNI"];
  11.  
  12.                             }
  13.                             else{              
  14.                                 echo"<form name=\"form-login\" method=\"post\" action=\"funcions.php\">
  15.                                 <input type=\"text\" name=\"user\" id=\"barra-usuari\"/>
  16.                                
  17.                                 <input type=\"password\" name=\"password\" id=\"barra-password\" />
  18.                                 <input type=\"submit\" value=\"enviar\" id=\"boton-login\" name=\"login_submit\" />
  19.                                 </form>";
  20.  
  21.                                 echo"<li class=\"neteja\"><a href=\"paginaInici.php\">Neteja els Camps</a></li>";
  22.  
  23.  
  24.                                 }
  25.                         ?>

pagina de funciones (seguro que aqui es donde la he liado!)
Código PHP:
Ver original
  1. include("conectar_db.php"); // Farem servir el DNI PER ENTRAR
  2.  
  3.     function login ($dni, $password) { // funció per entrar i dirigir als usuaris segons el carrec
  4.  
  5.  
  6.         $password=md5($password);
  7.  
  8.         $query_login=mysql_query("SELECT DNI, password, carrec FROM usuaris WHERE DNI=\"$dni\" AND password=\"$password\"");
  9.         $login=(int) mysql_num_rows($query_login);
  10.  
  11.  
  12.  
  13.         if ($login > 0) {
  14.  
  15.             while ($row=mysql_fetch_array($query_login)){
  16.  
  17.             $carrec=$row["carrec"];
  18.  
  19.         }
  20.  
  21.             session_start();
  22.             $_SESSION["DNI"]=$dni;
  23.  
  24.             switch ($carrec) {
  25.                 case 0:
  26.                     header("location:paginaAdmin.php");
  27.                     break;
  28.                
  29.                 case 1:
  30.                     header("location:paginaProfe.php");
  31.                     break;
  32.  
  33.                 case 2:
  34.                     header("location:paginaAlumne.php");
  35.                     break;
  36.             }
  37.            
  38.         } else {
  39.  
  40.             header("location:paginaInici.php?error=login"); // Si la autentificació és incorrecte, tornem a la pàgina d'inici
  41.  
  42.  
  43.  
  44.         }
  45.  
  46.     }
  47.  // otras funciones
  48.  
  49. if (isset($_POST["login_submit"])) {
  50.  
  51.     login($_POST["DNI"], $_POST["password"]);
  52. }
  53.  
  54. if (isset($_POST["signup_submit"])) {
  55.  
  56.     signup();
  57. }
  #2 (permalink)  
Antiguo 20/04/2014, 16:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: No consigo iniciar sesión php+sql

Por lo pronto, cuando mandas a ejecutar la consutla no estás considerando si devuelve un error o no. No lo muestras, y bien podría estar sucediendo.

Yo te sugiero poner la query así:
Código PHP:
Ver original
  1. $sql  = "SELECT DNI, password, carrec FROM usuaris WHERE DNI= '$dni' AND password  ='$password'";
  2. $query_login=mysql_query($sql);
  3. if(!$query_login)
  4. {echo mysql_error();}
  5. else
  6. {
  7. // Aquyí el resto de tu script, para el caso de haber obtenido resultados.
  8. }
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 20/04/2014, 16:47
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: No consigo iniciar sesión php+sql

Saludos!
Gracias por el tema de las depuraciones, estoy en ello.
dentro de ese else iria el resto de todo el script o solo el de esa funcion en particular?
  #4 (permalink)  
Antiguo 20/04/2014, 17:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: No consigo iniciar sesión php+sql

¿Puedes ver la nota comentada en el script que te propongo?
Quiere decir que dentro del else debe ir todo lo que vaya a hacerse si la query devuelve un resultado. Es decir, si devuelve datos.
El qué vayas a poner alli depende de lo que tengas tu en tu script. Esa parte te la dejo a ti.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/04/2014, 01:40
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: No consigo iniciar sesión php+sql

ok, gracias por la aclaración!
voy ha ir depurando errores y una vez que ya tenga el código correctamete lo cuelgo.

merci
  #6 (permalink)  
Antiguo 21/04/2014, 03:08
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: No consigo iniciar sesión php+sql

Hola lo estoy filtrando y me da los siguientes errores:

Notice: Undefined index: DNI in C:\xampp\htdocs\Practica3\funcions.php on line 111

Notice: Undefined variable: login in C:\xampp\htdocs\Practica3\funcions.php on line 17

estoy suando el isset y el post para definir el DNI y el password y el login lo tengo como tengo como función y varaible ya definido (creo).
alguién me puede explicar por donde peta?
ya he probado la consulta de mysql en phpmyadmin y funciona bién,
seguimos investigando, gracias

Código PHP:
Ver original
  1. <?php
  2.    
  3.     include("conectar_db.php"); // Ffarem servir el DNI PER ENTRAR
  4.  
  5.     function login ($dni, $password) { // funció per entrar i dirigir als usuaris segons el carrec
  6.  
  7.  
  8.         $password=md5($password);
  9.  
  10.         $sql  = "SELECT DNI, password, carrec FROM usuaris WHERE DNI= '$dni' AND password  ='$password'";
  11.         $query_login=mysql_query($sql);
  12.         if(!$query_login)
  13.         {echo mysql_error();}
  14.             else {
  15.  
  16.  
  17.         if ($login > 0) { //aqui es donde hay uno de los errores, Notice: Undefined variable: login in C:\xampp\htdocs\Practica3\funcions.php on line 17
  18.  
  19.             while ($row=mysql_fetch_array($query_login)){
  20.  
  21.             $carrec=$row["carrec"];
  22.  
  23.         }
  24.  
  25.             session_start();
  26.             $_SESSION["DNI"]=$dni;
  27.  
  28.             switch ($carrec) {
  29.                 case 0:
  30.                     header("location:paginaAdmin.php");
  31.                     break;
  32.                
  33.                 case 1:
  34.                     header("location:paginaProfe.php");
  35.                     break;
  36.  
  37.                 case 2:
  38.                     header("location:paginaAlumne.php");
  39.                     break;
  40.             }
  41.                 }
  42.            
  43.         }
  44.  
  45.     }
  46.  
  47.  
  48.     function validarDNI($valor) { // funció per valiar el DNI
  49.        $numero=substr($valor,0,8);
  50.        $lletra=substr($valor,-1);
  51.        $cadena="TRWAGMYFPDXBNJZSQVHLCKET";
  52.        $posicio=$numero%23;
  53.        $lletra2=substr($cadena,$posicio,1);
  54.        
  55.        if ($lletra==$lletra2){
  56.         return true;
  57.        }else
  58.        {
  59.         return false;
  60.        }  
  61.      }
  62.  
  63.  
  64.     function signup () { // funció per registrar
  65.  
  66.  
  67.         $nom = trim($_POST["nom"]);
  68.         $cognoms = trim($_POST['cog']);
  69.         $password= trim($_POST["pass"]);
  70.         $telefon= trim($_POST["tel"]); 
  71.         $mail= trim($_POST["mail"]);
  72.         $carrec = ($_POST["carrec"]);
  73.         $dni = trim($_POST["dni"]);
  74.  
  75.  
  76.  
  77.         if ($carrec == $_POST[0]) {
  78.  
  79.             $carrec == 0;
  80.         }
  81.  
  82.         if ($carrec == $_POST[1]) {
  83.  
  84.             $carrec == 1;
  85.         }
  86.  
  87.         if ($carrec == $_POST[2]) {
  88.  
  89.             $carrec == 2;
  90.         }
  91.        
  92.  
  93.         $password = md5($password);
  94.  
  95.         if(validarDNI($dni)){
  96.  
  97.             mysql_query("INSERT INTO usuaris (nom,cognom,usuari,DNI,carrec,password,telefon,mail) VALUES (\"$nom\",\"$cognoms\",'dasd',\"$dni\",\"$carrec\",\"$password\",\"$telefon\",\"$mail\")");
  98.                             header("location:paginaInici.php");
  99.         } else {
  100.  
  101.  
  102.             header("location:formulariRegistre.php?error=dni");
  103.  
  104.         }
  105.  
  106.     }
  107.  
  108.  
  109. if (isset($_POST["login_submit"])) {
  110.  
  111.     login($_POST["DNI"], $_POST["password"]); // aqui el otro,  Notice: Undefined index: DNI in C:\xampp\htdocs\Practica3\funcions.php on line 111
  112. }
  113.  
  114. if (isset($_POST["signup_submit"])) {
  115.  
  116.     signup();
  117. }
  118.     ?>
  #7 (permalink)  
Antiguo 21/04/2014, 09:58
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: No consigo iniciar sesión php+sql

Soluciodo... el problema eran unas varibles mal puestas.
adjunto el total del código correcto.
gracias

Código PHP:
Ver original
  1. <?php
  2.    
  3.     include("conectar_db.php"); // Farem servir el DNI PER ENTRAR
  4.  
  5.     function login ($user, $password) { // funció per entrar i dirigir als usuaris segons el carrec
  6.  
  7.         echo $user;
  8.         echo $password;
  9.         $password=md5($password);
  10.        
  11.         $query_login=mysql_query("SELECT usuari, password, carrec FROM usuaris WHERE DNI=\"$user\" AND password=\"$password\"");
  12.        
  13.         $sqlRows=mysql_num_rows($query_login);
  14.         echo $sqlRows;
  15.  
  16.         if ($sqlRows == 1) {
  17.  
  18.             while ($row=mysql_fetch_array($query_login)){
  19.            
  20.             $carrec=$row["carrec"];
  21.             echo $carrec;
  22.  
  23.         }
  24.  
  25.             session_start();
  26.             $_SESSION["usuari"]=$user;
  27.  
  28.             switch ($carrec) {
  29.                 case 0:
  30.                     header("location:paginaAdmin.php");
  31.                     break;
  32.                
  33.                 case 1:
  34.                     header("location:paginaProfe.php");
  35.                     break;
  36.  
  37.                 case 2:
  38.                     header("location:paginaAlumne.php");
  39.                     break;
  40.             }
  41.            
  42.         } else {
  43.  
  44.             header("location:paginaInici.php?error=login"); // Si la autentificació és incorrecte, tornem a la pàgina d'inici
  45.  
  46.  
  47.  
  48.         }
  49.  
  50.     }
  51.  
  52.  
  53.     function validarDNI($valor) { // funció per valiar el DNI
  54.        $numero=substr($valor,0,8);
  55.        $lletra=substr($valor,-1);
  56.        $cadena="TRWAGMYFPDXBNJZSQVHLCKET";
  57.        $posicio=$numero%23;
  58.        $lletra2=substr($cadena,$posicio,1);
  59.        
  60.        if ($lletra==$lletra2){
  61.         return true;
  62.        }else
  63.        {
  64.         return false;
  65.        }  
  66.      }
  67.  
  68.  
  69.     function signup () { // funció per registrar
  70.  
  71.  
  72.         $nom = trim($_POST["nom"]);
  73.         $cognoms = trim($_POST['cog']);
  74.         $password= trim($_POST["pass"]);
  75.         $telefon= trim($_POST["tel"]); 
  76.         $mail= trim($_POST["mail"]);
  77.         $carrec = ($_POST["carrec"]);
  78.         $dni = trim($_POST["dni"]);
  79.  
  80.  
  81.  
  82.         if ($carrec == $_POST[0]) {
  83.  
  84.             $carrec == 0;
  85.         }
  86.  
  87.         if ($carrec == $_POST[1]) {
  88.  
  89.             $carrec == 1;
  90.         }
  91.  
  92.         if ($carrec == $_POST[2]) {
  93.  
  94.             $carrec == 2;
  95.         }
  96.        
  97.  
  98.         $password = md5($password);
  99.  
  100.         if(validarDNI($dni)){
  101.  
  102.             mysql_query("INSERT INTO usuaris (nom,cognom,usuari,DNI,carrec,password,telefon,mail) VALUES (\"$nom\",\"$cognoms\",'dasd',\"$dni\",\"$carrec\",\"$password\",\"$telefon\",\"$mail\")");
  103.                             header("location:paginaInici.php");
  104.         } else {
  105.  
  106.  
  107.             header("location:formulariRegistre.php?error=dni");
  108.  
  109.         }
  110.  
  111.     }
  112.  
  113.  
  114. if (isset($_POST["login_submit"])) {
  115.  
  116.     login($_POST["dni"], $_POST["password"]);
  117. }
  118.  
  119. if (isset($_POST["signup_submit"])) {
  120.  
  121.     signup();
  122. }
  123.     ?>

Etiquetas: mysql, select, sesión, sql, 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 05:44.