Este es un sistema de usuarios con protección de pagina.
El problema es que el sistema de registro me funciona bien inserta los datos en la tabla de usuarios perfectamente pero cuando intento entrar con el formulario users_Login.php no me deja acceder siempre me manda para la pagina de error......
Pego el codigo tal cual esta para que me ayuden
::::::::Insertamos nuestra tabla de datos en PHPMyAdmin::::::::::::::::
CREATE TABLE `usuarios` (
`id` int(10) NOT NULL auto_increment,
`usuario` varchar(99) NOT NULL default '',
`password` varchar(99) NOT NULL default '',
`fname` varchar(99) NOT NULL default '',
`lname` varchar(99) NOT NULL default '',
`email` varchar(99) NOT NULL default '',
`imagen_perfil` varchar(99) NOT NULL default '',
PRIMARY KEY (`id`))
::::::::::::::::Creamos el archivo de conexión a la Base de Datos.:::::::::
db.php
Código PHP:
<?php
$dbHost = "localhost"; //Ubicación de la DB, usualmente es localhost
$dbUser = "xxxx"; //Usuario de la DB
$dbPass = "xxxxxx"; //Password de la DB
$dbDatabase = "db_name"; //Nombre de la DB
$db = mysql_connect($dbHost,$dbUser,$dbPass)or die("Un error ha ocurrido mientras se intento conectar a la Base de Datos.");
//Conexión hacia la Base de Datos
mysql_select_db($dbDatabase, $db)or die("No se pudo seleccionar la Base de Datos.");
//Selecciona la DB
?>
users_Login.php
Código PHP:
<link rel="stylesheet" href="css/d13.css">
<div class="fnews">
<form action="users_Verify.php" method="post">
Por favor, escriba los datos necesarios para iniciar sesión:
<br>
<br>
Nombre de Usuario:
<input name="usuario" type="text" id="usuario" size=25>
Contraseña:
<input type="password" name="password" size=25>
<input name="submit" type="submit" class="m" id="submit" value="Iniciar Sesión">
</form><br><br>
<strong>¿No tienes una cuenta? Registrate gratis</strong> <a class="sm" href="users_Register.php"><strong>aquí</strong></a></div>
users_Register.php
Código PHP:
<?php
session_start();
include("db.php");
?>
<link rel="stylesheet" href="css/d13.css">
<H1>Crear una nueva cuenta</H1><br>
<?php
if(isset($_POST['submit'])){
$query = sprintf("SELECT * FROM usuarios WHERE usuario='%s' LIMIT 1",mysql_real_escape_string($_POST['usuario']));
$sql = mysql_query($query);
$row = mysql_fetch_array($sql);
if($row||empty($_POST['usuario'])|| empty($_POST['fname'])||empty($_POST['lname'])|| empty($_POST['email'])||empty($_POST['password'])|| empty($_POST['re_password'])||$_POST['password']!=$_POST['re_password']){
# si se deja un campo vacío va a tirar un error.
$error = '<p>';
if(empty($_POST['usuario'])){
$error .= 'El campo "Nombre de Usuario" se ha dejado vacío.<br>';
}
if(empty($_POST['fname'])){
$error .= 'El campo "Nombre" se ha dejado vacío.<br>';
}
if(empty($_POST['lname'])){
$error .= 'El campo "Apellido" se ha dejado vacío.<br>';
}
if(empty($_POST['email'])){
$error .= 'El campo "Email" se ha dejado vacío.<br>';
}
if(empty($_POST['password'])){
$error .= 'El campo "Contraseña" se ha dejado vacío.<br>';
}
if(empty($_POST['re_password'])){
$error .= 'Debes repetir la contraseña<br>';
}
if($_POST['password']!=$_POST['re_password']){
$error .= 'Las contraseñas no concuerdan.<br>';
}
if($row){
$error .= 'El nombre de usuario que has escojido ya existe en la Base de Datos.<br>';
}
$error .= '</p>';
}else{
$query = sprintf("INSERT INTO usuarios(`usuario`,`fname`,`lname`,`email`,`password`)
VALUES('%s','%s','%s','%s',PASSWORD('%s'))",
mysql_real_escape_string($_POST['usuario']),
mysql_real_escape_string($_POST['fname']),
mysql_real_escape_string($_POST['lname']),
mysql_real_escape_string($_POST['email']),
mysql_real_escape_string($_POST['password']))or die(mysql_error());
$sql = mysql_query($query);
# Redireccion a la página de logueo despues del registro.
header("Location: users_Login.php");
exit;
}
}
if(isset($error)){
echo $error;
unset($error);
}
?>
<!-- Start your HTML/CSS/JavaScript here -->
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<div align=center>
<h3>Datos principales: </h3>
<TABLE class="gp">
<TR>
<TD CLASS="slim">Usuario:</TD>
<TD colspan=2><input name="usuario" type="text" id="usuario" size="20" <? if(!$row){echo 'value="'.$_POST['usuario'].'"';} ?>/></TD></TR>
<TR>
<TD CLASS="slim">Correo electrónico:</TD>
<TD><input name="email" type="text" size="20" <? echo 'value="'.$_POST['email'].'"'; ?>/></td><td>
</TD></TR>
<TR>
<TD CLASS="slim">Contraseña:</TD>
<TD><input name="password" type="password" size="20" /></TD></TR>
<TR>
<TD CLASS="slim">Repite Contraseña:</TD>
<TD><input name="re_password" type="password" size="20" /></TD></TR>
</TABLE><br>
<h3>Datos personales: </h3>
<TABLE class="gp">
<TR>
<TD CLASS="slim">Nombre:</TD>
<TD colspan=2><input name="fname" type="text" size="20" <? echo 'value="'.$_POST['fname'].'"'; ?>/></TD></TR>
<TR>
<TD CLASS="slim">Apellido:</TD>
<TD><input name="lname" type="text" size="20" <? echo 'value="'.$_POST['lname'].'"'; ?>/></td><td>
</TD></TR>
</TABLE><br>
PHP Snippets - Sistema de Usuarios BETA<br>
<br>
</p>
<INPUT name="submit" TYPE=submit CLASS="sum" id="submit" VALUE="¡Registrar cuenta!">
</div>
</form>
users_Verify.php
Código PHP:
<?php
include("db.php");
if(isset($_POST['submit'])){
$usr = mysql_real_escape_string($_POST['usuario']);
$pas = hash('sha256', mysql_real_escape_string($_POST['password']));
$sql = mysql_query("SELECT * FROM usuarios
WHERE usuario='$usr' AND
password='$pas'
LIMIT 1");
if(mysql_num_rows($sql) == 1){
$row = mysql_fetch_array($sql);
session_start();
$_SESSION['usuario'] = $row['usuario'];
$_SESSION['fname'] = $row['fname'];
$_SESSION['lname'] = $row['lname'];
$_SESSION['logged'] = TRUE;
header("Location: users_PageVip.php"); // Puedes modificar la pagina a la cual te guste que valla despues del inicio de sesión
exit;
}else{
header("Location: users_Login.php");
exit;
}
}else{
header("Location: index.php");
exit;
}
?>
users_PageVip.php
Código PHP:
<link rel="stylesheet" href="css/d13.css">
<?php
session_start();
include("db.php");
?>
<?
if($_SESSION['logged']==TRUE){ ?>
<H1>Página privada de usuarios</H1><br>
<div class="fnews">
¡Hola, <? echo("$_SESSION[usuario]");?>! Eres un usuario registrado, por lo tanto, puedes ver esta página.
</div>
<? }
else echo("Lo sentimos, pero solo usuarios registrados pueden ver esto.");
?>
::::::Proteger las paginas para que no accedan por links:::::::
Código PHP:
<?php
session_start();
include("db.php");
?>
<?
if($_SESSION['logged']==TRUE){ ?>
EL CONTENIDO AQUI!!!!!!! :D
<? }
else echo("Lo sentimos, pero solo usuarios registrados pueden ver esto.");
?>
OJO ESTO NO ES UN ROBO DE DATOS SOLO QUE NO ME DAN RESPUESTA EN EL OTRO FORO Y ESTOY SEGURO QUE EN ESTE ME AYUDARAN... Y TAMBIEN LE SERVIRA A ALGUIEN QUE LO NECESITE..
FUENTE: http://www.phperos.net/foro/index.php?topic=8421.0