Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Al dejar los campos vacios no aparece nada

Estas en el tema de Al dejar los campos vacios no aparece nada en el foro de PHP en Foros del Web. Como dice el titulo , cuando dejo el campo vacio no me aparece nada, cuando en el usuario pongo algo si me aparece pero si ...
  #1 (permalink)  
Antiguo 04/12/2015, 16:04
 
Fecha de Ingreso: noviembre-2015
Ubicación: NULL
Mensajes: 23
Antigüedad: 8 años, 4 meses
Puntos: 1
Al dejar los campos vacios no aparece nada

Como dice el titulo , cuando dejo el campo vacio no me aparece nada, cuando en el usuario pongo algo si me aparece pero si no pongo el usuario no me aparece nada, osea la pagina en blanco, vacia , aca dejo el codigo

Código PHP:
Ver original
  1. if ($_POST['username']) {
  2. //Comprobacion del envio del nombre de usuario y password
  3. $username=$_POST['username'];
  4. $password=$_POST['password'];
  5. if ( $username==NULL || $password == NULL ) {
  6. echo "La password o el usuario  no fueron enviados";
  7. }else{
  8. $query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
  9. $row = mysql_fetch_array($query);
  10. $logeado = 0;
  11. $pass = crypt($password,"$2y$");
  12. if ($row['password']==$pass){
  13. echo "Te has logeado exitosamente";
  14. $logeado++;
  15. echo "<br>Contrasenia encriptada[".$pass."]";
  16. if($logeado == 1){
  17. echo "<br>ESTADO: En linea";
  18.  
  19.  
  20. ?>
  21. <html>
  22. <head>
  23. <title>Redireccion</title>
  24. <meta http-equiv="Refresh" content="5;URL=http://localhost/TEST/LoginSystem/Hola.php
  25. ">
  26. </head>
  27. <body>
  28. Sera redirigido en unos segundos...
  29. </body>
  30. </html>
  31. <?php
  32. }
  33. }
  34. else
  35. {
  36.  
  37.  
  38. echo "La clave que has ingresado no es la correcta.";
  39. echo "<br>En crypt devolvio [".$pass."]";
  40. }
  41. }
  #2 (permalink)  
Antiguo 04/12/2015, 16:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Al dejar los campos vacios no aparece nada

Cita:
Como dice el titulo , cuando dejo el campo vacio no me aparece nada, cuando en el usuario pongo algo si me aparece pero si no pongo el usuario no me aparece nada, osea la pagina en blanco, vacia , aca dejo el codigo
Claro, y seguramente piensas que somos adivinos o brujos como para ejecutar el código mentalmente y decirte exactamente qué ha fallado ¿no?

¿Y si mejor revisas el log de errores en busca de algo más útil?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/12/2015, 16:46
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años
Puntos: 36
Respuesta: Al dejar los campos vacios no aparece nada

no entiendo exactamente que quieres lograr con todo el codigo que tienes , si quieres hacer un login algo como este te funciona de maravilla, aclarandote que falta seguridad en tu consulta

Código PHP:
Ver original
  1. <?php
  2.     if (isset($_POST['username']) && !empty($_POST['username']) &&
  3.         isset($_POST['password']) && !empty($_POST['password'])){
  4.             $username=$_POST['username'];
  5.             $password=$_POST['password'];
  6.  
  7.             $query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
  8.             $row = mysql_fetch_array($query);
  9.             $NumReg= mysql_num_rows($row);
  10.             if($NumReg == 1){
  11.                 $_SESSION['usuario'] = $row['tipo_usario'];
  12.                 header("Location: pagina.php");
  13.             }elseif ($NumReg == 0) {
  14.                 header("Location: index.php?m=1");
  15.             }
  16.  
  17.         }else{
  18.             echo "La password o el usuario  no fueron enviados";
  19.         }
  20.     }
  21. ?>

busca sprintf y mysqli_real_escape_string para darle seguridad pues asi como la tienes facil de entrar a tu sistema sin contar un user y pass
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #4 (permalink)  
Antiguo 04/12/2015, 19:53
 
Fecha de Ingreso: noviembre-2015
Ubicación: NULL
Mensajes: 23
Antigüedad: 8 años, 4 meses
Puntos: 1
Respuesta: Al dejar los campos vacios no aparece nada

Cita:
Iniciado por herzbazi Ver Mensaje
no entiendo exactamente que quieres lograr con todo el codigo que tienes , si quieres hacer un login algo como este te funciona de maravilla, aclarandote que falta seguridad en tu consulta

Código PHP:
Ver original
  1. <?php
  2.     if (isset($_POST['username']) && !empty($_POST['username']) &&
  3.         isset($_POST['password']) && !empty($_POST['password'])){
  4.             $username=$_POST['username'];
  5.             $password=$_POST['password'];
  6.  
  7.             $query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
  8.             $row = mysql_fetch_array($query);
  9.             $NumReg= mysql_num_rows($row);
  10.             if($NumReg == 1){
  11.                 $_SESSION['usuario'] = $row['tipo_usario'];
  12.                 header("Location: pagina.php");
  13.             }elseif ($NumReg == 0) {
  14.                 header("Location: index.php?m=1");
  15.             }
  16.  
  17.         }else{
  18.             echo "La password o el usuario  no fueron enviados";
  19.         }
  20.     }
  21. ?>

busca sprintf y mysqli_real_escape_string para darle seguridad pues asi como la tienes facil de entrar a tu sistema sin contar un user y pass
Hola, no entendí mucho del real escape string, no me quedo claro que es y para que se usa, en el manual entendi como se usa pero no entendi para que se usa, casi yendome del tema este codigo lo pase bien a mysqli? , estaba en mysql

Código PHP:

<?php

// Configura los datos de tu cuenta 
$dbhost='localhost'
$dbusername='root'
$dbuserpass=''
$dbname='database'
// Conexión a la base de datos 
$conexion mysqli_connect($dbhost$dbusername$dbuserpass$dbname); 

if (
mysqli_connect_errno())
  {
  echo 
"Failed to connect to MySQL: " mysqli_connect_error();
  exit();
  }

// Preguntaremos si se han enviado ya las variables necesarias 
if (isset($_POST["username"])) { 
$username $_POST["username"]; 
$password $_POST["password"]; 
$cpassword $_POST["cpassword"]; 
$email $_POST["email"]; 



// Hay campos en blanco 
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) { 
echo 
"un campo está vacio."
}else{ 
// ¿Coinciden las contraseñas? 
if($password!=$cpassword) { 
echo 
"Las contraseñas no coinciden"
}else{
$pass crypt($password,"$2y$");

// Comprobamos si el nombre de usuario o la cuenta de correo ya existían 
$checkuser mysqli_query($conexion,"SELECT username FROM users WHERE username='$username'"); 
$username_exist mysqli_num_rows($checkuser); 
$checkemail mysqli_query($conexion,"SELECT email FROM users WHERE email='$email'"); 
$email_exist mysqli_num_rows($checkemail); 

if (
$email_exist>0|$username_exist>0) { 
echo 
"EL nombre de usuario o la cuenta de correo estan ya en uso"
}else{ 

$user mysqli_real_escape_string($conexion,$username);
$pass1 mysqli_real_escape_string($conexion,$pass);


//Todo parece correcto procedemos con la inserccion 
$query mysqli_query($conexion,"INSERT INTO users (username, password, email) VALUES('$user','$pass1','$email')"); 
echo 
"El usuario $username ha sido registrado de manera satisfactoria."



}

mysqli_close($conexion);
  

?>
Y lo de sprintf: Daría mas seguridad usarlo?

Última edición por diegoj9999; 04/12/2015 a las 19:59
  #5 (permalink)  
Antiguo 04/12/2015, 20:13
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años
Puntos: 36
Respuesta: Al dejar los campos vacios no aparece nada

si colocas esto en tu login

en usuario Pegaso y en contraseña ' OR ''='

veras de lo que hablo te pongo (IGUAL TE LOGUEA)

ejemplo de la seguridad de tu select

Código PHP:
Ver original
  1. $checkusere = sprintf("SELECT  username   FROM users WHERE username= '%s'
  2.            mysql_real_escape_string($conexion,$_POST['user']),
  3.            mysql_real_escape_string($conexion,$_POST['pass']));
  4. $result = mysql_query($checkusere);
  5. $username_exist = mysqli_num_rows($result);

y continuas con el resto de tu codigo.

me cuentas
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #6 (permalink)  
Antiguo 04/12/2015, 21:22
 
Fecha de Ingreso: noviembre-2015
Ubicación: NULL
Mensajes: 23
Antigüedad: 8 años, 4 meses
Puntos: 1
Respuesta: Al dejar los campos vacios no aparece nada

Cita:
Iniciado por herzbazi Ver Mensaje
si colocas esto en tu login

en usuario Pegaso y en contraseña ' OR ''='

veras de lo que hablo te pongo (IGUAL TE LOGUEA)

ejemplo de la seguridad de tu select

Código PHP:
Ver original
  1. $checkusere = sprintf("SELECT  username   FROM users WHERE username= '%s'
  2.            mysql_real_escape_string($conexion,$_POST['user']),
  3.            mysql_real_escape_string($conexion,$_POST['pass']));
  4. $result = mysql_query($checkusere);
  5. $username_exist = mysqli_num_rows($result);

y continuas con el resto de tu codigo.

me cuentas
Hola, Gracias , ya me funcionó, dejo el codigo para los que los necesitan y si por si lo quieres ver tambien

Código PHP:
  if (isset($_POST['username']) && !empty($_POST['username']) && isset($_POST['password']) && !empty($_POST['password'])){
            
$username=$_POST['username'];
            
$password=$_POST['password'];
            
$user mysqli_real_escape_string($conexion,$username);
            
$query sprintf("SELECT username,password FROM users WHERE username = '%s'",$user);
            
$result mysqli_query($conexion,$query);
            
$username_exist mysqli_num_rows($result);
            
$row mysqli_fetch_array($resultMYSQLI_ASSOC);
            
$pass mysqli_real_escape_string($conexion,$_POST['password']);
            
$pass1 crypt($pass,"$2y$");
            if(
$username_exist == && $row['password']==$pass1){
               echo 
"Bienvenido";
            }elseif (
$username_exist == 0) {
                echo 
"El usuario no existe";
            }
            elseif(
$row['password']!=$pass)
            {
            echo 
"La contraseña es erronea";
            }
 
        }else{
            echo 
"La password o el usuario  no fueron enviados"
        } 

Etiquetas: campos, dejar, html, mysql, nada, select, sql, vacios
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 02:29.