Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: sarawlf en 6 Diciembre 2011, 17:05 pm



Título: crear una session para admin
Publicado por: sarawlf en 6 Diciembre 2011, 17:05 pm
Me gustaría crear una sesion para el administrador, pero no se como implementarla en el codigo, alguna idea? gracias  ;)
Código
  1. <?php
  2. if (isset($_POST['userid']) && isset($_POST['password']))
  3. {
  4. //si el usuario acaba de intentr conectarse
  5. $userid = $_POST['userid'];
  6. $password = $_POST['password'];
  7.  
  8.  
  9. if (!$db_conn=mysql_connect("localhost","root","root"))
  10.   {
  11.      echo "Error conectando a la base de datos.";
  12.      exit();
  13.   }
  14.   if (!mysql_select_db("feisbook",$db_conn))
  15.   {
  16.      echo "Error seleccionando la base de datos.";
  17.      exit();
  18.   }
  19.  
  20. $query = "select * from usuarios where id='$_REQUEST[userid]' and password='$_REQUEST[password]'";
  21.  
  22.  
  23. $result=mysql_query($query,$db_conn);
  24.  
  25. if (mysql_num_rows($result)>0)
  26. if ($_REQUEST['userid'] !="administrador")
  27. {
  28. //si existe en la base de datos
  29. $_SESSION['valid_user'] = $userid;
  30. }
  31.  
  32. //if fila[rol]==admin sessoio[isadminn]=true
  33.  
  34. $db_conn->close();
  35. }
  36.  
  37. ?>
  38. <html>
  39. <body>
  40. <head>
  41. <meta http-equiv="content-type" content="text html;charset=UTF-8" />
  42. <link href="estilo.css" rel="stylesheet" type="text/css"  />
  43. </head>
  44.  
  45. <h1>Bienvenido a PCALTAGAMA venta de productos informáticos</h1>
  46. <?php
  47. if (isset($_SESSION['valid_user']))
  48. {
  49. echo ' te has logeado como: '.$_SESSION['valid_user'].'<br/>';
  50. echo '<a href="logout.php">cerrar sesion </a><br />';
  51. }
  52.  
  53.  
  54. else
  55. {
  56. if (isset($userid))
  57. {
  58. //si se han intentdo logearse y no lo han conseguido
  59. echo 'no has podido logearte';
  60. }
  61. else
  62. {
  63. //todavia no han intentdo conectarse
  64. echo 'no estas logeado';
  65. echo '<a href="formulario.php ">registrate</a>';
  66. }
  67. //proporcionando un formulario para conectarse
  68.  
  69.  
  70. echo '<div class="main">';
  71. echo '<div class="login">';
  72. echo '<form action="authmain.php" method="post">';
  73. echo '<table>';
  74. echo '<tr><td>nombre:</td>';
  75. echo '<td><input type="text" name="userid"/></td></tr>';
  76. echo '<tr><td>password:</td>';
  77. echo '<td><input type="password" name="password"/></td></tr>';
  78. echo '<tr><td colspan="2" align="center">';
  79. echo '<input type="submit" value="log in"></td></tr>';
  80. echo '</table></form>';
  81. }
  82. ?>
  83. <br>
  84. <a href="tienda.php">entra a la tienda</a>
  85.  
  86.  
  87. </body>
  88. </html>


Título: Re: crear una session para admin
Publicado por: mokoMonster en 6 Diciembre 2011, 21:21 pm
Sabes lo que esta haciendo el codigo ?

Estas poniendo if($_REQUEST[userid'] != 'administrador')... aqui estas poniendo que si el usuario no es el administrador entonces es un 'valid user', desde aqui ya no puedes hacer una sesion administrador por que tu mismo lo estas excluyendo.

En la sentencia sql, debes de poner los parametros nuevos como "'.$valor.'" ya que si no se leera mal.

Saludos


Título: Re: crear una session para admin
Publicado por: sarawlf en 6 Diciembre 2011, 21:44 pm
es una linea que se me olvidó quitar, veras cree dos sesiones una para usuarios que no fuesen administrador y otra para administrador, mas que nada para que no se repitiese dos veces  "el te has logeado como"si me logeaba como admin. el caso es  que probe esá forma y no me funcionaba, no me cogia la sesion de admin. si me puedes dar una solucion  te lo agarecería.


Título: Re: crear una session para admin
Publicado por: xemnas en 7 Diciembre 2011, 16:57 pm
así te funcionará:
Código
  1. <?php
  2. if (isset($_POST['userid']) && isset($_POST['password']))
  3. {
  4. //si el usuario acaba de intentr conectarse
  5. $userid = $_POST['userid'];
  6. $password = $_POST['password'];
  7.  
  8.  
  9. if (!$db_conn=mysql_connect("localhost","root","root"))
  10.   {
  11.      echo "Error conectando a la base de datos.";
  12.      exit();
  13.   }
  14.   if (!mysql_select_db("feisbook",$db_conn))
  15.   {
  16.      echo "Error seleccionando la base de datos.";
  17.      exit();
  18.   }
  19.  
  20. $query = "select * from usuarios where id='$_REQUEST[userid]' and password='$_REQUEST[password]'";
  21.  
  22.  
  23. $result=mysql_query($query,$db_conn);
  24.  
  25. if (mysql_num_rows($result)>0 && $userid!="administrador")
  26.  
  27. {
  28. //si existe en la base de datos
  29. $_SESSION['valid_user'] = $userid;
  30. }
  31. else {
  32. if (mysql_num_rows($result)>0 && $userid=="administrador")
  33.  
  34. $_SESSION['valid_admin'] = $userid;
  35. }
  36.  
  37. $db_conn->close();
  38. }
  39.  
  40. ?>
  41. <html>
  42. <body>
  43. <head>
  44. <meta http-equiv="content-type" content="text html;charset=UTF-8" />
  45. <link href="estilo.css" rel="stylesheet" type="text/css"  />
  46.  
  47. </head>
  48.  
  49. <h1>Bienvenido a PCALTAGAMA venta de productos informáticos</h1>
  50.  
  51. <?php
  52. if (isset($_SESSION['valid_user'])) {
  53. echo ' te has logeado como: '.$_SESSION['valid_user'].' ya puedes acceder a nuestra tienda<br/>'; }
  54.  
  55. elseif (isset($_SESSION['valid_admin'])) {
  56. echo 'te has logeado como '.$_SESSION['valid_admin'].' ya puedes acceder a nuestra tienda<br/>'; }
  57.  
  58.  
  59.  
  60. else {
  61. //todavia no han intentdo conectarse
  62. echo 'no estas logeado';
  63. echo '<a href="formulario.php ">registrate</a>';}
  64. //proporcionando un formulario para conectarse
  65.  
  66. if (!isset($_POST['userid']) && !isset($_POST['password'])) {
  67. echo '<div class="main">';
  68. echo '<div class="login">';
  69. echo '<form action="authmain.php" method="post">';
  70. echo '<table>';
  71. echo '<tr><td>nombre:</td>';
  72. echo '<td><input type="text" name="userid"/></td></tr>';
  73. echo '<tr><td>password:</td>';
  74. echo '<td><input type="password" name="password"/></td></tr>';
  75. echo '<tr><td colspan="2" align="center">';
  76. echo '<input type="submit" value="log in"></td></tr>';
  77. echo '</table></form>';
  78. }
  79. ?>
  80. <br>
  81. <a href="tienda.php">entra a la tienda</a>
  82.  
  83.  
  84. </body>
  85. </html>