Hola a todos. He conseguido un sistema de usuarios gracias a marcofbb (un usuario de forosdelweb). He creado una base de datos, y he cambiado una serie de cosas para que se acceda mediante el email, pero no funciona, ni cambiando eso ni sin cambiarlo.
Parece que todo está bien, pero al darle clic en entrar, que se comprueba mediante un archivo llamado "entrar.php", se queda por ahí (por ese archivo) y no me muestra ningún contenido. Podríais ayudarme por si veis algo mal? no le encuentro solución :S
El código de "entrar.php" es:
Código PHP:
<?
// Configura los datos de tu cuenta
include('config.php');
// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('No se puede seleccionar la base de datos');
if ($_POST['email']) {
//Comprobacion del envio del email y password
$email=htmlentities($_POST['email']);
$password=md5($_POST['password']);
if ($password==NULL) {
echo "No a introducido una contrasenia";
exit();
}else{
$query = mysql_query("SELECT email,password FROM usuarios WHERE email = '$email'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "No a introducido una contrasenia correcta";
exit();
}else{
$query = mysql_query("SELECT email,password FROM usuarios WHERE email = '$email'") or die(mysql_error());
$row = mysql_fetch_array($query);
$email2 = $row['email'];
$_SESSION["s_email"] = $row['email'];
$_SESSION["logeado"] = "SI";
/* Si aceptamos recordar los datos */
if($_POST['recordar']){
if ($HTTP_X_FORWARDED_FOR == "")
{
$ip = getenv(REMOTE_ADDR);
}
else
{
$ip = getenv(HTTP_X_FORWARDED_FOR);
}
$id_extreme = md5(uniqid(rand(), true));
$id_extreme2 = $email2."%".$id_extreme."%".$ip;
setcookie('id_extreme', $id_extreme2, time()+7776000,'/');
$query = mysql_query("UPDATE usuarios SET id_extreme='".$id_extreme."' WHERE email='".$email2."'") or die(mysql_error());
}
header ("Location: inicio.php");
}
}
}
?>
Este "Config.php":
Código PHP:
<?php
$dbhost='localhost'; // Servidor
$dbusername='usuario'; // Nombre de usuario
$dbuserpass='usuario'; // Contraseña
$dbname='users'; // Nombre de la base de datos
session_start();
// Comprobamos si hay cookie, si está bien y le asignamos una sesión
// Esto quiere decir que si recordamos la contraseña nos auto loguee.
if(isset($_COOKIE['id_extreme']))
{
$cookie = htmlentities($_COOKIE['id_extreme']);
$cookie = explode("%",$cookie);
$user = $cookie[0];
$id = $cookie[1];
$ip = $cookie[2];
if ($HTTP_X_FORWARDED_FOR == "")
{
$ip2 = getenv(REMOTE_ADDR);
}
else
{
$ip2 = getenv(HTTP_X_FORWARDED_FOR);
}
if($ip == $ip2)
{
$link = mysql_connect($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname,$link) or die('No se puede seleccionar la base de datos');
$query = mysql_query("SELECT * FROM usuarios WHERE id_extreme='".$id."' and email='".$email."'") or die(mysql_error());
$row = mysql_fetch_array($query);
if(isset($row['username']))
{
$_SESSION["s_email"] = $row['email'];
$_SESSION["logeado"] = "SI";
}
mysql_close($link);
}
}
?>
Por último, "index.php", donde está el formulario:
Código HTML:
<?php
include('config.php');
if($_SESSION["logeado"] == "SI"){
header ("Location: inicio.php");
}
?> <form name="form1" method="post" action="entrar.php"><br>
<span style="color:#000; font-size:12px;">Email</span><br>
<input name="email" type="email" id="email"><br><br>
<span style="color:#000; font-size:12px;">Contraseña</span><br>
<input name="password" type="password" id="password"><br><br>
<input type="checkbox" name="recordar" id="recordar">
<span style="color:#000; font-size:12px;">Recordar</span><br />
<br>
<span style="font-size: 12px; color: #000"><a href="recuperar.php">Recuperar contraseña</a> | <a href="registrarse.php">Registrarse</a><br />
</span><br />
<input type="submit" name="Submit" value="Entrar">
<br />
</form>
Ojalá puedan ayudarme.
Muchas gracias por adelantado a todos vosotros y a "marcofbb" por proporcionarme este sistema.