Comunidad de diseño web y desarrollo en internet online

Saber de quien se trata al loguear

Citar            
MensajeEscrito el 04 Ago 2015 06:54 pm
Bueno mi pagina arranca con un logueo. el formulario de portada se procesa con log.php:

Código PHP :

<?php
include("../includes/php/conexion.php");
$con=conectar();
$usuario=$_POST['user'];
$contraseña=$_POST['pass'];

$queryuser="select idlogin from login where usuario='$usuario'" or die( "Error en " . mysql_error() );
$querypass="select contraseña from login where usuario='$usuario'";

$buscaruser=mysqli_query($con,$queryuser);
$existe=mysqli_num_rows($buscaruser);
$uservalido=mysqli_query($con,$querypass);
 $row=mysqli_fetch_assoc($uservalido);

if(isset($usuario) && isset($contraseña)){

          if ($existe>0){
            
            if ($row['contraseña']==$contraseña){
               session_start();
               header('location: ../panel.php');
                }
            else{
                echo("contraseña incorrecta");
                }          
            }
          else{
                echo("usuario no encontrado");
            }
     
     } 

?>


Como hago luego de header(osea de redirigir al perfil de la persona) para saber de que persona se trata(en realidad en toda la pagina se deberia poder.)

Gracias..

Por giulichajari

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Ago 2015 01:04 pm
Usa las variables de sesión ($_SESSION).

Por otro lado, viendo el código que has puesto, debo decirte que ese código es absolutamente inseguro!.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Ago 2015 05:48 pm
si de hecho ahi lo mejore:

Código PHP :

<?php
include("../includes/php/conexion.php");
$con=conectar();
$usuario = htmlentities(trim($_POST['user']));

$contraseña=htmlentities(trim($_POST['pass']));
$queryuser="select idlogin from login where usuario='".mysql_escape_string($usuario)."';" or die( "Error en " . mysql_error() );
$querypass="select contraseña from login where usuario='".mysql_escape_string($usuario)."';";
$buscaruser=mysqli_query($con,$queryuser);
$existe=mysqli_num_rows($buscaruser);
$uservalido=mysqli_query($con,$querypass);
$row=mysqli_fetch_assoc($uservalido);
$queryper="select idpersona from persona where idlogin='$row[idlogin]'";
if (isset ($_POST['Ingresar'])){
if(isset($usuario) && isset($contraseña)){

          if ($existe>0){
            
            if ($row['contraseña']==$contraseña){
               session_start();
                $_SESSION['usuarioRegistrado'] = true;
                $_SESSION['username'] = $username;
               header('location: ../panel.php');
                }
            else{
                
                 $error="contraseña incorrecta";  
              
                 
                }          
            }
          else{
               $error="usuario no encontrado";
                header('Location: '.$_SERVER['HTTP_REFERER']);
                 
            }
     
     }
     }

?>

Pero como hago para mostrar un error sin salir del form principal como: usuario incorrecto..

Por giulichajari

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Ago 2015 09:11 pm
Tienes que agregar una funcion que evite que el formulario se envie hasta que este correcto.

<form onSubmit="return funcionJS();">
...
</form>

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 05 Ago 2015 11:46 pm

elporfirio escribió:

Tienes que agregar una funcion que evite que el formulario se envie hasta que este correcto.

<form onSubmit="return funcionJS();">
...
</form>


Claro pero los datos de la tabla de login estan en la bd, y tengo que procesar los datos del form, no solamente ver si estan completos los campos...

Por giulichajari

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ago 2015 12:05 pm
A ver. Un problema a la vez.

Para lo que comentas en el primer mensaje, usa sesiones. Busca en el sitio de php por la función session_start(). Una vez que tengas esto resuelto pasa al siguiente problema.

Para lo de la seguridad, lo que has hecho está bien, pero no es suficiente. No estás controlando el tamaño ni el contenido de las variables que luego pasas a la sentencia SQL.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ago 2015 04:17 pm

DriverOp escribió:

A ver. Un problema a la vez.

Para lo que comentas en el primer mensaje, usa sesiones. Busca en el sitio de php por la función session_start(). Una vez que tengas esto resuelto pasa al siguiente problema.

Para lo de la seguridad, lo que has hecho está bien, pero no es suficiente. No estás controlando el tamaño ni el contenido de las variables que luego pasas a la sentencia SQL.


No viste que coloque

Código PHP :

   session_start();

                $_SESSION['usuarioRegistrado'] = true;

                $_SESSION['username'] = $username;


De hecho el user y el pass pueden ser alfanumericos, o que se podria controlar es la cantidad de caracteres...

Por giulichajari

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Ago 2015 12:10 pm
La cantidad de caracteres la puedes controlar así:

Código PHP :

$usuario = trim($_POST['user']);
$usuario = substr($usuario,0,32);

Eso recorta a 32 caracteres el contenido de la variable (hice dos líneas pero puedes combinarla en una sola).

Además puedes controlar qué caracteres están permitidos para el username y cuáles para la password con expresiones regulares.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.