Foros del Web » Programando para Internet » PHP »

problema con login y session usuario

Estas en el tema de problema con login y session usuario en el foro de PHP en Foros del Web. Buenas tardes a todos actualmente poseeo un problema con la insercion de datos del login para no estenderme tanto aqui esta el codigo function login ...
  #1 (permalink)  
Antiguo 20/08/2012, 14:42
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
problema con login y session usuario

Buenas tardes a todos actualmente poseeo un problema con la insercion de datos del login para no estenderme tanto aqui esta el codigo

function login () {
if(!isset($_SESSION))
{
session_start();
}
if(isset($_POST['login'])){
$alias = strip_tags($_POST['alias']);
$password = strip_tags(md5($_POST['password']));
if($alias != "" and $password != ""){
$mysqli = new mysqli('localhost', 'user', 'pass', 'based');
if (!$mysqli->set_charset("utf8")) {
printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
}
$result = $mysqli->query("SELECT alias,password FROM users WHERE alias = '".$mysqli->real_escape_string($alias)."' AND password ='".$mysqli->real_escape_string($password)."' ");
$row = $result->fetch_assoc();
if($row['alias'] == $alias and $row ['password'] == $password){
$_SESSION['alias'] = $alias;
echo "Hola ".$_POST['alias']." tu pagina peronal a sido activada satisfactoriamente aprovecha los beneficios que te brinda HELM";
header("Refresh: 10; URL=../bloghelm/index.php");
}else{
echo "Hola ".$_POST['alias']." lo sentimos pero usted no es un usuario de esta web por favor registrate primero para acceder a los beneficios que te brinda HELM sera redirigido a la zona de registro";
header("Refresh: 10; URL=registro.php");
}
}else{
echo "El nick o la contraseña estan vacias. diligencie correctamente el formulario espere un instante para ser redireccionado nuevamente";
header("Refresh: 10; URL=../index/index.php");
}
}
}

como veran trabajo con mysqli me funciona la cuestion de mostrar el mensaje cuando no digitan ningun dato en el login lo mismo ocurre cuando colocan los datos pero este no esta registrado mi problema comienza en que primero no me esta encriptando la contraseña, lo segundo apesar de que coloco los datos del usuario que esta registrado este me lo envia como si no existiera y me envia nuevamente a registrar ya e intentado de todo y me quedo grande agradezco cualquier ayuda con respecto al tema por cierto este es el scrip que resibe el login


<?php
if(!isset($_SESSION))
{
session_start();
}
$login = login(); print_r ($_POST);
if(isset($_SESSION['alias']))
?>
todo lo trabajo con funciones independientes
  #2 (permalink)  
Antiguo 20/08/2012, 16:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problema con login y session usuario

Hola,

El problema esta en que "alias" es una palabra reservada en MySQL. Por lo tanto, la consulta da un error. Te recomiendo cambiar el nombre del campo o sino usar `` para decirle a MySQL que se trata de una columna.

Código MYSQL:
Ver original
  1. SELECT `alias`, `password` FROM users WHERE `alias` = ...
  #3 (permalink)  
Antiguo 21/08/2012, 07:02
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: problema con login y session usuario

buenos dias tendre en cuenta tu observacion realizare los cambios y comentare el resultado
  #4 (permalink)  
Antiguo 21/08/2012, 07:28
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: problema con login y session usuario

Buenos dias Ronruby e realizado los cambios mensionados anteriormente por vos pero mi problema aun continua me redirige a registro por no estar supuestamente registrado valga la redundancia no se si me hace falta algo adicionar ya que hasta lo e intentado con while para los num_row. cualquier ayuda te lo agradeceria.
  #5 (permalink)  
Antiguo 21/08/2012, 10:05
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con login y session usuario

prueba con este operador && en vez de and

if($row['alias'] == $alias && $row ['password'] == $password){

if($alias != "" && $password != ""){

puede ser tu solucion , alguna vez me ha pasado ami
  #6 (permalink)  
Antiguo 22/08/2012, 09:25
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: problema con login y session usuario

Buenos dias webankenovi te agradezco tu aporte la realize el cambio y nada medoy por vencido me tocara segir con el desarrollo y dejar de ultimo esta cuestion trabajar con sessiones en mysqli me resulto complicado y no se pórque si con mysql funciona normal hasta con poo pero seguire con este e visto sus ventaja respecto a los otros dos gracias de todos modos.
  #7 (permalink)  
Antiguo 29/08/2012, 09:54
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: problema con login y session usuario

hola siguiendo con este tema e logrado arreglar la session del usuario y funciona perfectamente aqui esta mi codigo y ahora lo que busco es poder validar el formulario aparti de expresiones regulares tengo el conocimiento basico pero no e logrado la validacion alguna inspiracion que me guie en este tema se lo agradezco

function login (){
if(!isset($_SESSION))
{
session_start();
}

if(isset($_POST['login'])){
$pseudonym = strip_tags($_POST['pseudonym']);
$password = strip_tags(md5($_POST['password']));
if($_POST['pseudonym'] != "" and $_POST['password'] != ""){// aqui envia a una pagina cuando ningun dato a sido insertado y lo retorna nuevamente pero como seria cuando solo digita cualquera de los dos
$mysqli = new mysqli('localhost', 'root, 'root', 'tim');
if (!$mysqli->set_charset("utf8")) {
printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
}
$query="SELECT * FROM users WHERE pseudonym = '".$mysqli->real_escape_string($pseudonym)."' AND password ='".$mysqli->real_escape_string ($password)."' ";
$result=$mysqli->query($query)or die ($mysqli->error());
$row = $result->fetch_assoc();

if(!$row['pseudonym'] == $pseudonym and !$row['password'] == $password){
echo " Esta pagina ".$_POST['pseudonym']." es restringida! para acceder a ella debe registrate primero y así gozar de todos los beneficios que te brinda HELM en un instante sera redirigido a la zona de registro";
header("Refresh: 10; URL=registro.php");
}else{
$_SESSION['pseudonym']=$row['pseudonym'];
$_SESSION['password']= md5($row['password']);
echo "Hola ".$_POST['pseudonym']." acabas de iniciar una session segura seras redirigido a tu pagina personal ";
header("Refresh: 7; URL=../bloghelm/index.php");
}

}else{
echo "El nick o la contraseña no fueron digitados. diligencie correctamente el formulario, sera nuevamente redireccionado";
header("Refresh: 7; URL=../index/index.php");
}
}

}
  #8 (permalink)  
Antiguo 29/08/2012, 13:12
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con login y session usuario

1 en primer lugar no has metido dentro de la funcion los valores post por eso nunca te logueaba
2 comprueba que al registrar a un ususario el numero de caracteres en la bd no valla a ser que pusiste menos de los que te da la contraseña encriptada

3 encripta la contraseña del login igual que la de el registro

Código PHP:
Ver original
  1. function login ($_SESSION,$user,$pass,$login)
  2. {
  3.     if(!isset($_SESSION))
  4.     {
  5.     session_start();
  6.     }
  7.  
  8.      if(isset($login))
  9.     {
  10.         $alias = strip_tags($user);
  11.         $password = md5(strip_tags($pass));
  12.  
  13.         if($alias != "" || $password != "")
  14.         {
  15.             if(!$mysqli = new mysqli('localhost', 'user', 'pass', 'based'))
  16.             {
  17.                 $message = "Error no se pudo establecer la conexion: %s\n", $mysqli->error)
  18.                 exit($message);
  19.             }
  20.  
  21.             if (!$mysqli->set_charset("utf8"))
  22.             {
  23.                 $message = "Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error)
  24.                 exit($message);
  25.             }
  26.  
  27.             $result = $mysqli->query('SELECT alias,password FROM users WHERE alias = '.$mysqli->real_escape_string($alias).' AND password ='.$mysqli->real_escape_string($password).' ');
  28.             $row = $result->fetch_array();
  29.  
  30.             if($row['alias'] == $alias && $row ['password'] == $password)
  31.             {
  32.                 $_SESSION['alias'] = $alias;
  33.                 echo 'Hola '.$alias.' tu pagina peronal a sido activada satisfactoriamente aprovecha los beneficios que te brinda HELM';
  34.                 header('Refresh: 10; URL=../bloghelm/index.php');
  35.             }
  36.             else
  37.             {
  38.                 echo 'Hola '.$alias.' lo sentimos pero usted no es un usuario de esta web por favor registrate primero para acceder a los beneficios que te brinda HELM sera redirigido a la zona de registro';
  39.                 header('Refresh: 10; URL=registro.php');
  40.             }
  41.         }
  42.         else
  43.         {
  44.             echo 'El nick o la contraseña estan vacias. diligencie correctamente el formulario espere un instante para ser redireccionado nuevamente';
  45.             header('Refresh: 10; URL=../index/index.php');
  46.         }
  47.     }
  48. }
  49.  
  50.  
  51. login($_SESSION,$_POST['alias'],$_POST['password'],$_POST['login']);
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 03:52.