Ver Mensaje Individual
  #16 (permalink)  
Antiguo 18/08/2011, 15:51
Avatar de vgonga1986
vgonga1986
 
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Problemas con sistema de usuarios

login.php:
Código PHP:
Ver original
  1. <?php
  2.     ob_start();
  3.      
  4.     include("config.php");
  5.      
  6.     // connect to the mysql server
  7.     $link = mysql_connect($server, $db_user, $db_pass)
  8.     or die ("Could not connect to mysql because ".mysql_error());
  9.      
  10.     // select the database
  11.     mysql_select_db($database)
  12.     or die ("Could not select database because ".mysql_error());
  13.      
  14.     $match = "select id from $table where username = '".$_POST['username']."'
  15.    and password = '".$_POST['password']."';";
  16.      
  17.     $qry = mysql_query($match)
  18.     or die ("Could not match data because ".mysql_error());
  19.     $num_rows = mysql_num_rows($qry);
  20.      
  21.     if ($num_rows <= 0) {
  22.        echo "No existe un usuario o contraseña con: <strong>".$_POST['username']."</strong><br>";
  23.        echo "<a href=login.html>Vuelve a intentarlo</a>";
  24.        exit;
  25.     } else {
  26.        session_start();
  27.        $row = mysql_fetch_array($qry);
  28.        // Aquí puedes pasar los datos que quieras, pero realmente con la id te vale, si necesitas sacar el nombre, haces una consulta con esta id y listo.
  29.        $_SESSION['id'] = $row['id'];
  30.        echo "<img src=img/user.png /> <span style=font-size:25px;><strong>".$_POST['username']."</strong></span><br><a href=logout.php>Cerrar sesión</a><br><br><img src=img/edit.png /> <a href=members/profile.php>Editar perfil</a><br><img src=img/members.png /> <a href=list.php>Miembros</a> | <a href=login2.php>Prueba</a>";
  31.     }
  32.     ob_end_flush();
  33.     ?>
  34.     <html>
  35.     <head>
  36.     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  37.     <style type="text/css">
  38.     body {
  39.         background:#fafafa;
  40.         font-family: Arial, Helvetica, sans-serif;
  41.         font-size: 12px;
  42.         color: rgb(75,75,74);
  43.         text-align: left;
  44.     }
  45.     a {
  46.         text-decoration:none;
  47.         color: rgb(75,75,74);
  48.     }
  49.     </style>
  50.     </head>
  51.     </html>

Luego, en todas las demás páginas que quieras que tenga acceso restringido pones esto:
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     if (!isset($_SESSION['id'])) {
  4.        // Esto lo va a enviar al índice, porque no está logueado.
  5.        header('Location: index.html');
  6.        exit;
  7.     }
  8.     // Aquí ya está logueado y pones el resto de tu código PHP.
  9.     ?>
  10. <p>Aquí pones todo el resto de tu código HTML</p>

Por último, que ya veo que la tienes por ahí, en logout.php (página a la que envías para cerrar sesión) pones:
Código PHP:
Ver original
  1. <?php
  2. unset($_SESSION['id']);
  3. header('Location: index.html');
  4. ?>

Yo creo que ya está. Sigo repitiéndote que estoy no es ni mucho menos una cosa general, cada aplicación es un mundo, igual la tuya no se adapta a esto. De hecho, seguramente no se adapte, es más bien al contrario, tienes que adaptar tú lo que te doy a tu aplicación.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?