Foros del Web » Programando para Internet » PHP »

Ayuda autentificacion!!

Estas en el tema de Ayuda autentificacion!! en el foro de PHP en Foros del Web. Hola, Estoy haciendo un sistema de registro de usuarios en PHP y MySql . El registro y el login lo hice bien, pero me falta ...
  #1 (permalink)  
Antiguo 22/03/2010, 08:51
Avatar de juaco14  
Fecha de Ingreso: mayo-2009
Mensajes: 185
Antigüedad: 15 años, 6 meses
Puntos: 1
Exclamación Ayuda autentificacion!!

Hola,
Estoy haciendo un sistema de registro de usuarios en PHP y MySql.
El registro y el login lo hice bien, pero me falta la parte de verificar las cookies.
Lo que quiero hacer en mi index.php es:

Si esta logeado ( si se validan las cookies) mostrar un mensaje en una parte determinada ->
"Bienvenido, nombredeusuario" Salir

Si no esta logeado ( si no se validan las cookies) mostrar el formulario para logearse ->
Usuario:
Contraseña:
Ingresar



Lo que probe hacer es en mi index.php, incuir otro php (login.php) donde buscaba las cookies y las comparaba con registros en mi BD:

Código:
<?php
      $loginCorrecto = false;
      $idUsuarioL;
      $nickUsuarioL;
      $emailUsuarioL;
      $nombreUsuarioL;
      $apellidoUsuarioL;	  
      $grupoUsuarioL;

      if(isset($HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"]))
      {
      $result = mysql_query("SELECT * FROM usuarios WHERE nick='".
      $HTTP_COOKIE_VARS["usNick"]."' AND password='".$HTTP_COOKIE_VARS["usPass"]."'");
	  
      if( $row = mysql_fetch_array($result) )
      {
      setcookie("usNick",$HTTP_COOKIE_VARS["usNick"],time()+7776000);
      setcookie("usPass",$HTTP_COOKIE_VARS["usPass"],time()+7776000);
      $loginCorrecto = true;
      $idUsuarioL = $row["id"];
      $nickUsuarioL = $row["nick"];
      $emailUsuarioL = $row["email"];
      $nombreUsuarioL = $row["nombre"];
      $apellidoUsuarioL = $row["apellido"];
      $grupoUsuarioL = $row["grupo"];
      }
      else
      {
      //Destruimos las cookies.
      setcookie("usNick","x",time()-3600);
      setcookie("usPass","x",time()-3600);
      }
      mysql_free_result($result);
      }
?>
Pero no me funciona.
Alguien tiene alguna otra idea para validar las cookies?
Gracias!
  #2 (permalink)  
Antiguo 22/03/2010, 08:56
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Ayuda autentificacion!!

Que version de php tienes instalado?

Prueba cambiando $HTTP_COOKIE_VARS por $_COOKIE como prueba uno.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 22/03/2010, 09:13
Avatar de juaco14  
Fecha de Ingreso: mayo-2009
Mensajes: 185
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda autentificacion!!

Ahora no me tira mas el error que me tiraba antes, pero no se si es por problemas de que no guarda las cookies u otro, que no me logea.

te dejo el prototipo de la web para que lo veas mejor.

http://joaquinbeceiro.com/itsp/index.php

Muchas gracias!
  #4 (permalink)  
Antiguo 22/03/2010, 11:19
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 11 meses
Puntos: 12
Respuesta: Ayuda autentificacion!!

Lo que muestras es el login.php? muestranos el codigo del index.php y lo vemos, quizá el error esta ahí.
__________________
http://exegesis-biblica.com/
  #5 (permalink)  
Antiguo 22/03/2010, 18:27
Avatar de juaco14  
Fecha de Ingreso: mayo-2009
Mensajes: 185
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda autentificacion!!

Aca adjunto la parte del PHP


Código:
      <?php
// ACA LA CONECCION

      include("login.php");
      if($loginCorrecto)
      {
echo "Bienvenido";
      }
      else
      {
echo 
'<FORM ACTION="ingresar.php" METHOD="post"> 
Usuario: <input type="Text" name="nick" value="" size="7">
Contrasena: <input type="password" name="password" value="" size="10">
<input name="login" type="submit" value="Ingresar">
</FORM>';
      }
      ?>

La otra duda que tengo es como usar una variable en "echo".
Saludos!

Muchas gracias!!
  #6 (permalink)  
Antiguo 23/03/2010, 08:29
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Ayuda autentificacion!!

la variable echo esta bien utilizada. Puedes usarla de las siguientes maneras:
Código PHP:
//una linea
echo 'Hola';
//una linea con html
echo '<b>Hola</b>';
//multilinea;
echo 'Como 
estas 
navegante'
;
//multilinea con html
echo 'Como 
<b>est&aacute;s</b> 
Navegante'
;
//multilinea desde html
echo 'Como<br />estas<br />Navegante'
Esto tambien se aplica para las variables (Ej., $test, $var, $etc) y para print().

Considerando tu problema de autenticacion, es recomendable usar una segunda pagina para validar datos y luego volver al formulario o entrar a la pagina de sistema.

Por ejemplo:

Pagina inicio (login) --> Pagina que valida los datos --> Si ingresa datos --> Bienvenido
Pagina inicio (login) --> Pagina que valida los datos --> No es del sistema --> Pagina inicio

Saludos
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 23/03/2010, 11:07
Avatar de juaco14  
Fecha de Ingreso: mayo-2009
Mensajes: 185
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda autentificacion!!

Asi en teoria me deberia funcionar bien lo que yo quiero hacer, pero no encuentro donde tengo el error.
  #8 (permalink)  
Antiguo 24/03/2010, 08:24
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Ayuda autentificacion!!

Tal vez imprimiendo tus variables podras ver si cambian o no.

Utiliza tambien error_reporting(E_ALL); en la primera linea para ir revisando que no sea un error fatal por ahi que no esta contemplado.

Saludos,
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 24/03/2010, 09:43
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 11 meses
Puntos: 12
Respuesta: Ayuda autentificacion!!

Tu problema es el IF, no estas comparando con nada la variable $loginCorrecto. Debería ser algo como:

IF ($loginCorrecto == true) {
__________________
http://exegesis-biblica.com/
  #10 (permalink)  
Antiguo 24/03/2010, 10:19
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Ayuda autentificacion!!

Cita:
Iniciado por blogger
Tu problema es el IF, no estas comparando con nada la variable $loginCorrecto. Debería ser algo como:

IF ($loginCorrecto == true) {
No es necesario hacer eso ya que if($var) evalua si es verdadera.
Ejemplo:
Código PHP:
$var true;
if(
$var){
   echo 
'verdadero';
}else{
   echo 
'falso';

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #11 (permalink)  
Antiguo 30/03/2010, 22:47
Avatar de juaco14  
Fecha de Ingreso: mayo-2009
Mensajes: 185
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Ayuda autentificacion!!

Muchas gracias a todos, ya quedo andando!.
Ahora una ultima cosa, como hago para que al logear no cambie de pagina?.
Saludos!
  #12 (permalink)  
Antiguo 30/03/2010, 22:50
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda autentificacion!!

mmm ajax por ahi tenes que hacer, o algo mas siemple un metareflesh
  #13 (permalink)  
Antiguo 01/04/2010, 00:25
 
Fecha de Ingreso: marzo-2010
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Ayuda autentificacion!!

Mira este ejemplo Te Logea en la misma pagina.
Código PHP:
Ver original
  1. <?php
  2.  
  3. // la conexion.
  4. mysql_connect('localhost','root','password')or die ('Ha fallado la conexión: '.mysql_error());
  5. mysql_select_db('DB')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  6. function quitar($mensaje)
  7. {
  8.     $nopermitidos = array("'",'\\','<','>',"\"");
  9.     $mensaje = str_replace($nopermitidos, "", $mensaje);
  10.     return $mensaje;
  11. }
  12. if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
  13. {
  14.    
  15.     $usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
  16.     $password = $HTTP_POST_VARS["password"];
  17.     $result = mysql_query('SELECT password, usuario FROM users WHERE usuario=\''.$usuario.'\'');
  18.     if($row = mysql_fetch_array($result)){
  19.         if($row["password"] == $password){
  20.         $_SESSION["k_username"] = $row['usuario'];
  21.     }else{
  22.             echo 'Password incorrecto';
  23.         }
  24.     }else{
  25.         echo 'Usuario no existente en la base de datos';
  26.     }
  27.     mysql_free_result($result);
  28. }
  29. ?>
  30. <?
  31. if ($_POST['usuario'] == "administrador" && $_POST['password'] == 'bernard04'){
  32. echo ' Bienvenido, <font color=#ffffff><b>'.$_SESSION['k_username'].'</font></b>.<br />';
  33.     echo"<a href='formulario.php'>Agregar una noticia</a><br />";
  34.     echo '<a href="formulario.php">Agregar Una noticia. </a><br/><a href="logout.php" >Logout</a><br/><p   style=" margin-bottom:50px;"' ;
  35. }else{
  36. if (isset($_SESSION['k_username']))  {
  37.         echo ' Bienvenido, <font color=#ffffff><b>'.$_SESSION['k_username'].'</font></b>.<br />';
  38.     echo '<br/><a href="logout.php" >Logout</a><br/><p   style=" margin-bottom:50px;"' ;
  39. }else{
  40. ?>
  41. <div id="session">
  42.        <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
  43.        <div id="user">Usuario:<br>
  44.          <input size="15" maxlength="25" name="usuario" type="text" style=" margin:2 4 4 6px;">
  45.        </div>
  46. <div id="Clave">Clave:<br> <input size="15" maxlength="25" name="password" type="password" style=" margin:2 4 2 6px;"></div>
  47.         <input value="Login" type="submit" style="margin:4 0 2 6px; border:#333333; background-color:#FFFFFF; margin-top:2px;">
  48.        </form>
  49.     </div>
  50. <p>
  51.   <?
  52.  
  53. }
  54. }
  55. ?>

Última edición por IvanFoy; 01/04/2010 a las 00:26 Razón: Para poder ponerlo como PHP

Etiquetas: autenticacion
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 09:02.