Foros del Web » Programando para Internet » PHP »

Login php

Estas en el tema de Login php en el foro de PHP en Foros del Web. Hola, hice esta index.php, estoy haciendo unas pruebas con php, quiero hacer un login básico. Tiene un formulario en html (que no lo muestro), que ...
  #1 (permalink)  
Antiguo 07/04/2013, 11:01
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Login php

Hola, hice esta index.php, estoy haciendo unas pruebas con php, quiero hacer un login básico. Tiene un formulario en html (que no lo muestro), que obtiene el usuario y la contraseña y lo redirecciona a index.php. Hice una tabla en sql. Y cada vez que oprimo "ingresar", me redirecciona y me tira error, alguna idea?

Código PHP:
<?php
        $usuario 
= (@$_POST['usuario']);
        
$contraseña = (@$_POST['contraseña']);
        
$vacio "";
        if (
$usuario == $vacio && $contraseña == $vacio) {
            echo 
"";
        } else {
            if (
$usuario == $vacio) {
                echo 
"<center><h3>Falta el nombre de usuario</h3></center>";
            } else {
                if (
$contraseña == $vacio) {
                    echo 
"<center><h3>Falta la contraseña</h3></center>";
                } else {
                    
mysql_connect("MI_HOST","MI_USER","MICONTRA"); 
                    
mysql_select_db("MI_BASE"); 
                    
$consulta mysql_query("SELECT * FROM usuarios WHERE contraseña = '$contraseña' and usuario = '$usuario'");
                    if (
mysql_num_rows($consulta) == 0) {
                        echo 
"<center><h3>Usuario no registrado</h3></center>";
                    } else {
                        
session_start();
                        
$_SESSION['usuario'] = $usuario;
                        
header('Location: main.php');
                    }
                }
            }
        }
        
?>
  #2 (permalink)  
Antiguo 07/04/2013, 11:49
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Login php

Cita:
Iniciado por juanfranciscoX Ver Mensaje
Hola, hice esta index.php, estoy haciendo unas pruebas con php, quiero hacer un login básico. Tiene un formulario en html (que no lo muestro), que obtiene el usuario y la contraseña y lo redirecciona a index.php. Hice una tabla en sql. Y cada vez que oprimo "ingresar", me redirecciona y me tira error, alguna idea?

Código PHP:
<?php
        $usuario 
= (@$_POST['usuario']);
        
$contraseña = (@$_POST['contraseña']);
        
$vacio "";
        if (
$usuario == $vacio && $contraseña == $vacio) {
            echo 
"";
        } else {
            if (
$usuario == $vacio) {
                echo 
"<center><h3>Falta el nombre de usuario</h3></center>";
            } else {
                if (
$contraseña == $vacio) {
                    echo 
"<center><h3>Falta la contraseña</h3></center>";
                } else {
                    
mysql_connect("MI_HOST","MI_USER","MICONTRA"); 
                    
mysql_select_db("MI_BASE"); 
                    
$consulta mysql_query("SELECT * FROM usuarios WHERE contraseña = '$contraseña' and usuario = '$usuario'");
                    if (
mysql_num_rows($consulta) == 0) {
                        echo 
"<center><h3>Usuario no registrado</h3></center>";
                    } else {
                        
session_start();
                        
$_SESSION['usuario'] = $usuario;
                        
header('Location: main.php');
                    }
                }
            }
        }
        
?>
cual es el error que te dice? el session_start(); tiene que estar en la primera linea de codigo osea despues de <?php
  #3 (permalink)  
Antiguo 07/04/2013, 12:10
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Login php

Cita:
Iniciado por oscard41 Ver Mensaje
cual es el error que te dice? el session_start(); tiene que estar en la primera linea de codigo osea despues de <?php
Pero yo quiero que se inicie la sesión solo si se cumplen esos requisitos... igual va en la primera linea?
  #4 (permalink)  
Antiguo 07/04/2013, 12:55
 
Fecha de Ingreso: marzo-2013
Ubicación: Barcelona
Mensajes: 9
Antigüedad: 11 años
Puntos: 0
Respuesta: Login php

Prueba a ver esto:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. if(empty($_POST["username"]) || empty($_POST["password"])){
  5.     echo "Campos requeridos"
  6. } else {
  7. $username = $_POST["username"];
  8. $password = $_POST["password"];
  9.  
  10.  
  11.  
  12. mysql_connect('localhost', 'user_de_la_BD', 'PASS_de_la_BD');
  13. mysql_select_db('pruebas') or die ('No se ha podido estabecer la conexion.');
  14.  
  15. $sql="SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = mysql_query($sql);
  16.  
  17. $count=mysql_num_rows($result);
  18.  
  19.  
  20. if ($count == 1) {
  21.     $_SESSION["username"] = $username;
  22.     $_SESSION["loggedIn"] = true;
  23.     header("Location:pagina.php");
  24. } else {
  25.     echo "un mojón";
  26. }
  27. }
  28. ?>

Ya me dirás a ver que tal.
  #5 (permalink)  
Antiguo 07/04/2013, 12:57
Avatar de oscard41  
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 11 años, 10 meses
Puntos: 8
Respuesta: Login php

Cita:
Iniciado por juanfranciscoX Ver Mensaje
Pero yo quiero que se inicie la sesión solo si se cumplen esos requisitos... igual va en la primera linea?
es que la sesion se va a crear solo si complen los requisitos con $_SESSION[]=$usuario...

pero para poder usar las variables de sesion debes poner en la primera linea de codigo session_start(); esa es su sintaxis...
  #6 (permalink)  
Antiguo 07/04/2013, 13:21
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Login php

session_start() no tiene por que estar en la primera linea si no antes de imprimir cualquier cosa en el navegador.

lo que debes hacer es lo siguiente para ver que sucede añadir la funcion mysql_error para ver si te devuelve algun error la consulta o la conexion
Código PHP:
Ver original
  1. mysql_connect("MI_HOST","MI_USER","MICONTRA") or die (mysql_error());
  2. mysql_select_db("MI_BASE") or die (mysql_error());
  3. $consulta = mysql_query("SELECT * FROM usuarios WHERE contraseña = '$contraseña' and usuario = '$usuario'") or die (mysql_error());

ahora dinos que se muestra en tu pantalla en el momento del login que error te da o que mensaje te muestra

estas verificaciones perecen de la epoca de piedra jajajaj

$vacio= '';
if($usuario == $vacio)

puedes usar NULL o empty
Código PHP:
Ver original
  1. if($usuario == NULL)
  2.  
  3. if(empty($usuario))
  #7 (permalink)  
Antiguo 07/04/2013, 13:44
 
Fecha de Ingreso: enero-2013
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Login php

holas gente, me di cuenta de lo que hacía mal, en la parte html en vez de poner Index.php puse index.php. Saludos!
  #8 (permalink)  
Antiguo 07/04/2013, 14:06
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Login php

esos errores son los primeros que has de mirar , me alegro saludos :;
  #9 (permalink)  
Antiguo 08/04/2013, 12:26
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 12 años, 9 meses
Puntos: 17
Respuesta: Login php

Aparte te recomiendo que la conexion a la db, la hagas en otro archivo por que sino en los demas que hagas - que me imagino que es un panel de usuario o algo parecido - vas a tener que copiar y pegar todo el rato la conexion.

Luego si te quieres evitar el $vacio, utiliza 'required' de HTML5 te ahorrara esa variable y un codigo mas limpio. Aparte tiene un efecto bastante agradable si no esta vacio.

Un saludo.
__________________
Twitter: @ed33x

Etiquetas: formulario, html, login, mysql, select, sql, tabla, usuarios
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 11:17.