Foros del Web » Programando para Internet » PHP »

Acceso de usuarios

Estas en el tema de Acceso de usuarios en el foro de PHP en Foros del Web. Hola a todos. Estoy haciendo una pagina web donde los usuarios puedan introducir su nombre y password y sean validados por una base de datos. ...
  #1 (permalink)  
Antiguo 12/04/2006, 16:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
Acceso de usuarios

Hola a todos. Estoy haciendo una pagina web donde los usuarios puedan introducir su nombre y password y sean validados por una base de datos. Los ejemplos que tengo son:

Pagina default.php
Código:
<html>
<head>
<title>Pactica PHP</title>
</head>

<body>

<?php
session_start();
if (empty($_SESSION['user'])) {
	
	echo "Hola <b>Invitado</b><br>";
    echo "&iquest;Quisiera iniciar su sesi&oacute;n?";
?> 
<form name="form1" method="post" action="_validar.php">
	Usuario:
	<input type="text" name="user">
	<br>
	Password: 
	<input type="password" name="pass">
	<br>
	<input type="submit" name="Submit" value="Enviar">
</form>
<?php
} else {

        echo "Hola <b>{$_SESSION['user']}</b>";
		?>
		<br><br>
		<a href="_desconectar.php">Desconectar</a>
		<?php
}
?> 

</body>
</html>
Pagina _validar.php
Código:
<?php
	$user=$_REQUEST['user'];
	$pass=$_REQUEST['pass'];
	session_start();
	$_SESSION['user'] = $user;
	$_SESSION['pass'] = $pass;
	
	header('location: default.php');	
?>
Pagina _desconectar.php
Código:
<?php
	session_start();
	unset($_SESSION['user']);
	//Redirigir a una pagina
	header('location: default.php');
?>
Me gustaria poder validar los usuarios en una base de datos llamada siw donde los campos sean id, user y pass de la tabla usuarios.

No se hacer la conexion a ver si alguien me echa una mano. Talue y gracias de antemano.
  #2 (permalink)  
Antiguo 12/04/2006, 17:51
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
por casualidad...sabes algo de php? por que creo que no, pero, solo tienes que comparar :
Código PHP:
$Query ="select * from tabla Where usuario=$user AND password=$pass,$conexion"
Bueno eso te va a comparar el usuario introducido con el de la base de datos.
__________________
www.dataautos.com
  #3 (permalink)  
Antiguo 12/04/2006, 18:25
Avatar de sam
sam
 
Fecha de Ingreso: agosto-2001
Ubicación: Aguascalientes, México.
Mensajes: 572
Antigüedad: 22 años, 8 meses
Puntos: 2
Cita:
Iniciado por asinox
por casualidad...sabes algo de php? por que creo que no, pero, solo tienes que comparar :
Código PHP:
$Query ="select * from tabla Where usuario=$user AND password=$pass,$conexion"
Bueno eso te va a comparar el usuario introducido con el de la base de datos.
Bueno, pues al parecer tu si sabes mucho de php, yo no se mucho, pero pues creo que esa consulta no funciona. por que??, porque las variables $user, $pass y $conexion debern ir entre comillas simples.

No se, probe una consulta similar que tengo yo, sin comillas y no funciona.

Saludos xD
__________________
El que tiene voluntad de aprender, encontrará siempre un maestro...
Proverbio Aleman
  #4 (permalink)  
Antiguo 12/04/2006, 19:32
 
Fecha de Ingreso: mayo-2005
Mensajes: 148
Antigüedad: 18 años, 11 meses
Puntos: 0
El caso es que debes saber basico PHP para hacer eso..
El ejemplo que te dio asinox, es como un RESUMEN de la consulta en si.

Si ya cuentas con base de datos y tenes definidos las tablas etc..

Pos debes empezar asi:

Código PHP:
<?php
//Conexion a la base de datos
$db mysql_connect("localhost","user","pass");
//Por si hay error en la conexion
if(!$db)
die(
"Error en la conexion");
//Seleccionas la base de datos
mysql_select_db("base_de_datos",$db);

//Creamos la consulta
$query "SELECT * FROM tabla WHERE usuario = '$user' AND password = '$pass'";
//Enviamos la consulta
$envio mysql_query($query);
//Esto es extra, por si hay error..
if(!$envio)
die(
"Error en la consulta");
?>
Eso seria lo basico.

Como ves, si te fijas bien en la consulta ($query) se comprueba que los datos enviados por el form (variables) sean los correctos en cada campo (usuario y password)

Ahora.. ya, deberias modificar de acuerdo a los nombres reales que usas en la conexion, consulta, etc..

Saludos!
__________________
(8)Esta es la numero uno, que te sigue a todas partes,
siempre con sus estandartes,
y un grito de corazon, RACING CAMPEON
RACING CAMPEON, en el este y el oeste,
en el norte y en el sur, brillara blanca y celeste la academia RACING CLUB y la acade, y la acade... (8)
  #5 (permalink)  
Antiguo 13/04/2006, 03:06
 
Fecha de Ingreso: febrero-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
Muxas gracias por contestar.

El codigo es lo q necesitaba.
Pero lo q me refiero es q no me va. me explico:

me sale el error siguiente:

Warning: mysql_connect(): Access denied for user 'user'@'localhost' (using password: YES) in c:\appserv\www\php\_con.php on line 3
Error en la conexion

tengo el appserv como servidor de php y la base de datos esta en la carpeta
C:\AppServ\www\phpMyAdmin y el archivo de php esta en c:\appserv\www\php\
  #6 (permalink)  
Antiguo 13/04/2006, 03:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
Cita:
Iniciado por asinox
por casualidad...sabes algo de php? por que creo que no, pero, solo tienes que comparar :
Código PHP:
$Query ="select * from tabla Where usuario=$user AND password=$pass,$conexion"
Bueno eso te va a comparar el usuario introducido con el de la base de datos.
No se mucho de PHP pero si q se un poquito de ASP y con el SQL me defiendo bastante bien.
  #7 (permalink)  
Antiguo 13/04/2006, 09:01
Avatar de sam
sam
 
Fecha de Ingreso: agosto-2001
Ubicación: Aguascalientes, México.
Mensajes: 572
Antigüedad: 22 años, 8 meses
Puntos: 2
Cita:
Iniciado por pinedo24

me sale el error siguiente:

Warning: mysql_connect(): Access denied for user 'user'@'localhost' (using password: YES) in c:\appserv\www\php\_con.php on line 3
Error en la conexion
Tienes definido al usuario en la base de datos?, y tiene los privilegios necesarios para conectarse a la tabla que intentas conectarte?
__________________
El que tiene voluntad de aprender, encontrará siempre un maestro...
Proverbio Aleman
  #8 (permalink)  
Antiguo 13/04/2006, 14:19
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Bueno esa es la consulta que va ayudar a comparar el usuario entrado con el que existe en la ddbb (olvida la comillas, como dijeron arriba 'resumen'), en cuestion, verifica que el usuario que tiene acceso a tu base de datos sea el mismo de la conexion (y claro el pass que corresponda)

Saludos
__________________
www.dataautos.com
  #9 (permalink)  
Antiguo 14/04/2006, 15:46
 
Fecha de Ingreso: febrero-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
No tengo ningun usuario, como se crean los usuarios para que tengan acceso a la bd y como se les dan los permisos??? Gracias por contestar. Talue.
  #10 (permalink)  
Antiguo 18/04/2006, 02:05
 
Fecha de Ingreso: febrero-2006
Mensajes: 34
Antigüedad: 18 años, 2 meses
Puntos: 0
Hola a todos!!!
Alguien me podria ayudar???
esq no me deja conectarme a la bd, creo q es porque no tengo usuario y pass para conectar a la bd.
  #11 (permalink)  
Antiguo 18/04/2006, 07:32
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 18 años, 9 meses
Puntos: 5
De acuerdo Usuarios

Hola pinedo24

A continuacion te mostrare unos archivos que los acabo de hacer y no los probé pero a prueba de mente si corre XDDD.

1.- Tenemos el Archivo inicial pginicio.php
Código PHP:

<html>
<head>
<title>Pactica PHP</title>
</head>

<body>

<?php
session_start
();
// Si no existe la variable $_SESSION['user']
if (!isset($_SESSION['user']))
{    
    echo 
"Hola <b>Invitado</b><br>";
    echo 
"&iquest;Quisiera iniciar su sesi&oacute;n?";
?> 
    <form name="form1" method="post" action="pgvalida.php">
    Usuario:
    <input type="text" name="user">
    <br>
    Password: 
    <input type="password" name="pass">
    <br>
    <input type="submit" name="Submit" value="Enviar">
    </form>
<?php
    
}
else
    {
        echo 
"Hola <b>{$_SESSION['user']}</b>";
        
?>
        <br><br>
        <a href="_desconectar.php">Desconectar</a>
        <?php
    
}
?> 
</body>
</html>


2.- Archivo que valida los datos pgvalida.php
Código PHP:

<?php
/// Verificando la  Base de  Datos  y conexion
$con=mysql_connect("localhost","USER","")or die("No existe conexion");
$bd=mysql_select_db("BASE DE DATOS",$con)or die("No se encontro la Base de Datos");
//**  Suponiendo que tu  tabla es 
//   USUARIO  
/// con los  siguientes campos 
//  item (auto incremento), nombre  char(20), password char(32) >> con MD5  encriptado,  ....
///  entonces  tendrias 
////  USUARIO
///   =======
////  item  Numeric (5)
///   nombre Caracter(20)
///   password Caracter (32)
///  Usa el  phpmyadmin para  Insertar algunos Datos en tu tabla  

/////  Verificando si los datos que ingrese se encuentran en mi  Base de datos
/// Recibo dos  datos de mi archivo anterior
$nombre=$_POST['user'];
$clave=$_POST['pass'];
$sql="SELECT * FROM usuario WHERE nombre='$nombre'";
$query=mysql_query($sql,$con)or die("Error 01");
////  $n indica  si hay algun registro de resultado  ===>>  si encuentra algo sera  > 0
$n=mysql_num_rows($query)or die("Error 02");
if(
$n>0
{
    
/// quiere decir que existe un valor que coincide con nuestros datos
    //leendo el registro y comparando el PASS
    
while($campo=mysql_fetch_array($query))
    {
        if 
$campo['password']==$clave 
        
{
            
// Usuario  si se encontro :  INICIA   SU SESSION
            
session_start();
            
// La variable  $_SESSION['user']  ya tiene un valor
            
$_SESSION['user']=$campo['nombre'];
            
/// nos vamos a la siguiente PAGINA 
            
header("Location: pgsiguiente.php");
        }
        else
        {
            
// Password no  correcto
            
header("Location: pginicio.php")
        }
    }
}
else
{
// Si no encuentra al USER  te devuelve la pagina anterior
header("Location: pginicio.php")
}
?>
3.- Archivo que Muestra los datos pgsiguiente.php

Código PHP:

<?php
session_start
();
/// Si la Variable SESSION no existe 
// nos envia a la  pagina principal
//  esto por ejemplo  hara que cuando el usuario  pone en la  URL
///   http://localhost/pgsiguiente.php  y quiere  accesar sin iniciar session
if !isset($_SESSION['user'])
{
    
///  Si no existe  enviamos al inicio
    
header("Location: pginicio.php")
}
else
{
    
// si  existe  lo mostramos como bienvenida
    
echo "Bienvenido  USER : ".$_SESSION['user'];
}
?>

Traté de hacerlo lo mas sencillo posible

espero que te ayude


Salu2
Atak
__________________
. .: El mejor Inicio :. .
  #12 (permalink)  
Antiguo 18/04/2006, 07:53
Avatar de rafak20  
Fecha de Ingreso: febrero-2006
Ubicación: Colombia
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 3
bueno y si quiero inscribir un usuario. y enviarle un mail de activacion de la inscripcion como hago..
__________________
Estampados Villavicencio
  #13 (permalink)  
Antiguo 18/04/2006, 07:54
Avatar de rafak20  
Fecha de Ingreso: febrero-2006
Ubicación: Colombia
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 3
o enviar los datos de un formulario a dos bases de datos en distintos servidores
__________________
Estampados Villavicencio
  #14 (permalink)  
Antiguo 20/04/2006, 06:35
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
rafak20, www.desarrolloweb.com busca el tutorial sobre php, creo que debes pasar por ahi antes.

Saludos
__________________
www.dataautos.com
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:10.