Ver Mensaje Individual
  #17 (permalink)  
Antiguo 27/02/2016, 15:40
xerifandtomas
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: No funciona mi login

A ver te voy a exponer un ejemplo completo y comentado para que lo analices he intentes comprnder como funciona y los pasos basicos.

Espero que te sea de ayuda.

Código PHP:
Ver original
  1. <?php
  2. /* inicializamos sesion */
  3. /* extraemos las variables de POST */
  4. extract($_POST, EXTR_SKIP);
  5. /* Creamos una bandera para los errores */
  6. $flag=0;
  7. /* Verificamos los datos */
  8. if (trim($user)==='' OR strlen($user)<3) {$flag=1;}
  9. if (trim($pw)==='' OR strlen($pw)<3) {$flag=1;}
  10. if ($flag===0){}else{echo '<p style="color:red">Usuario o PWD muy cortos. <a href="./login.php">Login</a></p>';exit;}
  11. /* Creamos conexion a la BD */
  12. $link = mysqli_connect("localhost","usuario","contrasena","mi_bd") or die("Error " . mysqli_error($link));
  13. /* Verificamos la conexión */
  14. if (mysqli_connect_errno()) {printf("Fall&oacute; la conexi&oacute;n: %s\n", mysqli_connect_error());exit;}
  15. /* Establecemos el conjunto de caracteres a utf8 */
  16. if (!mysqli_set_charset($link, "utf8")) {printf("Error cargando el conjunto de caracteres utf8: %s\n", mysqli_error($link));exit;}
  17.     mysqli_query($link, 'SET NAMES utf8') or die(mysql_error());
  18.     mysqli_query($link, 'SET CHARACTER SET utf8') or die(mysql_error());
  19.     mysqli_query($link, 'SET COLLATION_CONNECTION="utf8_general_ci" ') or die(mysql_error());
  20. /* Escapamos los datos */
  21. $user=mysqli_real_escape_string($link, $user);
  22. $pw=mysqli_real_escape_string($link, $pw);
  23. /* Creamos la consulta */
  24. $sql="SELECT * FROM usuarios WHERE user='$user' AND pw='$pw' LIMIT 1";
  25. /* Ejecutamos la consulta */
  26. $resultado=mysqli_query($link,$sql);
  27. /* Imprimimos errores si los hubiera */
  28. echo mysqli_error($link);
  29. /* Comprobamos si devuelve algun resultado */
  30. if(mysqli_num_rows($resultado)>0){}else{$flag=1;}
  31. if ($flag===0){}else{echo '<p style="color:red">Error de usuario. <a href="./login.php">Login</a></p>';exit;}
  32. /* Creamos la variables de sesion necesarias */
  33. $row = mysqli_fetch_array($resultado, MYSQLI_ASSOC);
  34. $_SESSION['username']=$row['username'];
  35. $_SESSION['id_usu']=$row['id'] ;
  36. $_SESSION['privilegios']=$row['privilegios'];
  37. $_SESSION['tiempo']=time();
  38. /* Redirigimos a la pagina deseada */
  39. header('Location:./my_pagina.php');
  40. /* Cerramos la conexion */
  41. mysqli_close($link);
  42. ?>