Comunidad de diseño web y desarrollo en internet online

Login php + mysql

Citar            
MensajeEscrito el 18 Mar 2011 02:51 am
Hola, tengo el siguiente código, quiero hacer un login en php y usando el sistema gestor de base de datos mysql, tengo el código, pero no funciona como deveria, en la página principal se muestra el formulario de login, en el cual si el usuario esta registrado introduce su nombre de usuario y contraseña, y si ambos son verdaderos, tienen acceso al demas contenido de la página, si no es un usuario registrado, hay otro formulario que le permitira ingresar sus datos para que pueda ser un usuario registrado y entrar con su sesion a la página.

//--------------------------------------------------------------Este es el código del index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulario</title>
</head>

<body>
<form action="login.php" method="post">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" value="Log in" />
</form>
</body>
</html>

/*Este es el códgio del primer formulario del que comentaba, cuando el usuario esta registrado, solamente tiene que ingresar su nombre y contraseña, en dado caso que no sea usuario registrado, hay un formulario especial en el cual el puede registrarse y crear su username y password para ingresar a la pagina*/

//--------------------------------------------------------------register.php

<?php

echo "<h1>Registro</h1>";

$submit = $_POST['submit'];

$fullname = strip_tags($_POST['fullname']);
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
$repeatpassword = strip_tags($_POST['repeatpassword']);
$date = date("Y-m-d");

if($submit){
if($fullname && $username && $password && $repeatpassword){

if($password == $repeatpassword){
if(strlen($username) > 25 || strlen($fullname) > 25){
echo "¡La longitud de nombre de usuario o nombre completo es demasiado largo!";
}else{
if(strlen($password) > 25 || strlen($password) < 6){
echo "La contraseña debe tener entre 6 y 25 caracteres";
}else{
$password = md5($password);
$repeatpassword = md5($repeatpassword);
$connect = mysql_connect("localhost", "root", "admin");
mysql_select_db("phplogin");

$queryreg = mysql_query("INSERT INTO users VALUES('', '$fullname', '$username', '$password', '$date')");
die("¡Se han registrado!. <a href='index.php'>Volver a la pagina de acceso</a>");
}
}
}
else
echo "¡Las contraseñas no coinciden!";
}
else
echo "¡Por favor, rellene <b>todos</b> los campos!";
}

?>

<html>
<body>
<p>
<form action='register.php' method='post'>
<table>
<tr>
<td>
Su nombre completo
</td>
<td>
<input type="text" name="fullname" value='<?php echo $fullname; ?>'>
</td>
</tr>
<tr>
<td>
Elegir un nombre de usuario
</td>
<td>
<input type="text" name="username" value='<?php echo $username; ?>'>
</td>
</tr>
<tr>
<td>
Elegir una contraseña
</td>
<td>
<input type="password" name="password" value='<?php echo $password; ?>'>
</td>
</tr>
<tr>
<td>
Repite tu contraseña
</td>
<td>
<input type="password" name="repeatpassword" value='<?php echo $repeatpassword; ?>'>
</td>
</tr>
<tr>
<td>
<input type="submit" name="enviar" value="Enviar">
</td>
</tr>
</table>
</form>
</body>
</html>

/*Este es el código del formulario de registro donde el usuario puede ingresar sus datos y crear una cuenta propia para que pueda acceder al resto del contenido de la página, acontinuación muestro los demas archivos que se utilizaron.*/

//--------------------------------------------------------------login.php

<?php

session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if($username && $password){
$connect = mysql_connect("localhost", "root", "admin") or die("¡No se pudo conectar!");
mysql_select_db("phplogin") or die("No se encontro la base de datos");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
if($numrows != 0){
while($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if($username == $dbusername && $password == $dbpassword){
echo "¡Usted esta en! <a href='member.php'>clic</a> aqui para entrar a la pagina miembro.";
$_SESSION['username'] = $username;
}
else
echo "¡Password incorrecto!";
}
else
die("¡El usuario no existe!");

}
else
die("¡Por favor, introduce nombre de usuario y contraseña!");

?>

//--------------------------------------------------------------member.php

<?php

session_start();

if($_SESSION['username'])
echo "Bienvenido ".$_SESSION['username']."!<br><a href='logout.php'>Logout</a>";
else
die("Tienes que estar registrado");

?>

//--------------------------------------------------------------logout.php

<?php

session_start();
session_destroy();

echo "Usted ha sido desconectado. <a href='index.php'>Clic aqui</a> para volver.";

?>

//--------------------------------------------------------------Tabla users de la base de datos phplogin

CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 25 ) NOT NULL ,
`username` VARCHAR( 25 ) NOT NULL ,
`password` VARCHAR( 25 ) NOT NULL ,
`date` DATE NOT NULL
) ENGINE = MYISAM ;

/*He estado buscando documentación de como hacerle para mostrar un menu diferente de la página dependiendo del nombre de usuario y contraseña que se ingresen en el 1er formulario.

Es decir, si el nombre de usuario es alexis y su contraseña 123admin123, que le muestre un menu con siertos links, si su nombre de usuario es jennifer y la contraseña abc, que le muestre otro menu diferente, he leido que lo hacen con un if.

ejemplo.
/ / Si el nombre de usuario o la contraseña no está definida, mostrar la ventana de autenticación

if (! isset($_SERVER['PHP_AUTH_USER']) || ! isset($_SERVER['PHP_AUTH_PW'])) {
header('WWW-Authenticate: Basic Realm="Authentication"');
header("HTTP/1.1 401 Unauthorized");

/ / salida Si el nombre de usuario y la contraseña se establecen

} else {
echo "Your supplied username: ".$_SERVER['PHP_AUTH_USER']."<br />";
echo "Your password: ".$_SERVER['PHP_AUTH_PW']."<br />";
}

Eso es lo que encontre, un ejemplo de como seria, pero no tengo idea en que parte del código que tengo implementarlo, para que al momento que se ingresen los usernames y passwrods muestren menus diferentes.
*/

Espero que me puedan explicar mejor como puedo hacer que este código funcione, de antemano saludos.

:wink:

Por EdgarFCR

2 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Mar 2011 07:14 am
Esta es la fuente de donde saque el código, es un videotutorial en 6 partes:

http://www.youtube.com/watch?v=4oSCuEtxRK8
http://www.youtube.com/watch?v=y7ae_cZahPs&feature=relmfu
http://www.youtube.com/watch?v=0dq5Sj9jyKU&feature=relmfu
http://www.youtube.com/watch?v=W1zaEiZawsI&feature=relmfu
http://www.youtube.com/watch?v=ZNqAOzgS370&feature=relmfu
http://www.youtube.com/watch?v=_pYNmIPkuvY&feature=relmfu

Por EdgarFCR

2 de clabLevel



Genero:Masculino  

firefox

 

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