Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Qué está mal en este sistema de usuarios?

Estas en el tema de Qué está mal en este sistema de usuarios? en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/02/2013, 11:03
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 13 años, 2 meses
Puntos: 1
Pregunta Qué está mal en este sistema de usuarios?

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_extreme2time()+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&ntilde;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&ntilde;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.
  #2 (permalink)  
Antiguo 02/02/2013, 11:24
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Qué está mal en este sistema de usuarios?

puedes explicar un poco mas que problema tienes o que es lo que sucede? , te tira algun error?
  #3 (permalink)  
Antiguo 02/02/2013, 11:37
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Qué está mal en este sistema de usuarios?

sí, en index me sale un error (de la imagen), y en "entrar.php" simpleente está en blanco.
Estas son las capturas:

index.php:


entrar.php:


Cuando le doy registrarse entro en "registrarse.php", cuya captura es:


al hacer click en "enviar registro", entro en "insertar.php, donde no hace nada y sale esto:


El código de "registrarse.php" es:
Código HTML:
Ver original
  1. <?php
  2. include('config.php');
  3. if($_SESSION["logeado"] == "SI"){
  4. header ("Location: inicio.php");
  5. }
  6. ?>
  7. <title>Formulario de Registro</title>
  8. </head>
  9.  
  10. <form name="form1" method="post" action="insertar.php">
  11.   Username:<br>
  12.   <label>
  13.   <input name="username" type="text" id="username">
  14.   </label>
  15.   <p>Password:<br>
  16.     <label>
  17.       <input name="password" type="password" id="password">
  18.     </label>
  19.   </p>
  20.   <p>Email:<br>
  21.     <label>
  22.       <input name="email" type="text" id="email">
  23.     </label>
  24.   </p>
  25.   <p>
  26.     <label></label>
  27.     <label>
  28.     <input type="submit" name="Submit" value="Enviar Registro">
  29.     </label>
  30.   </p>
  31. </form>
  32. </body>
  33. </html>

Y el de "insertar.php" es:
Código PHP:
Ver original
  1. <?
  2. include('config.php');
  3.     // Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
  4.     if(isset($_POST['username']) && !empty($_POST['username']) &&
  5.     isset($_POST['password']) && !empty($_POST['password']) &&
  6.     isset ($_POST['email']) && !empty($_POST['email'])) {
  7.         // Si entramos es que todo se ha realizado correctamente
  8.         $password = md5($_POST['password']);
  9.         $username = htmlentities($_POST['username']);
  10.         $mail = htmlentities($_POST['email']);
  11.        
  12.         $link = mysql_connect ($dbhost, $dbusername, $dbuserpass);
  13.         mysql_select_db($dbname,$link);
  14.        
  15.         $queEmp = "SELECT username FROM usuarios WHERE username='$username'";
  16.         $resEmp = mysql_query($queEmp, $link) or die(mysql_error());
  17.         $totEmp = mysql_num_rows($resEmp);
  18.         if($totEmp > 0){
  19.         echo "Nombre de usuario no disponible";
  20.         exit();
  21.         }
  22.        
  23.         $queEmp = "SELECT email FROM usuarios WHERE email='$mail'";
  24.         $resEmp = mysql_query($queEmp, $link) or die(mysql_error());
  25.         $totEmp = mysql_num_rows($resEmp);
  26.         if($totEmp > 0){
  27.         echo "El mail ingresado no esta disponible";
  28.         exit();
  29.         }
  30.        
  31.         // Con esta sentencia SQL insertaremos los datos en la base de datos
  32.         mysql_query("INSERT INTO usuarios (username,password,email)
  33.        VALUES ('{$username}','{$password}','{$mail}')",$link);
  34.  
  35.         // Ahora comprobaremos que todo ha ido correctamente
  36.         $my_error = mysql_error($link);
  37.  
  38.         if(!empty($my_error)) {
  39.  
  40.             echo "Ha habido un error al insertar los valores. $my_error";
  41.  
  42.         } else {
  43.  
  44.             echo "Los datos han sido introducidos satisfactoriamente";
  45.  
  46.         }
  47.  
  48.     } else {
  49.  
  50.         echo "Error, no ha introducido todos los datos";
  51.  
  52.     }
  53.  
  54. ?>

Decirdme si hace falta algún otro dato. Es que yo no veo donde está el problema, pero veo que no funciona :S
Muchas gracias

Última edición por serg_prog; 02/02/2013 a las 11:38 Razón: Imagen mal colocada
  #4 (permalink)  
Antiguo 02/02/2013, 11:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Qué está mal en este sistema de usuarios?

Mensajes de error, código que no se ejecuta, ¿y aún así no sabes donde esa el problema?

Bueno, lo primero es cambiar <? por <?php en todas partes donde lo veas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 02/02/2013, 11:49
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Qué está mal en este sistema de usuarios?

Cita:
Iniciado por pateketrueke Ver Mensaje
Mensajes de error, código que no se ejecuta, ¿y aún así no sabes donde esa el problema?

Bueno, lo primero es cambiar <? por <?php en todas partes donde lo veas.
Hola pateketrueke, se me olvidó aclarar que soy novato en PHP, empecé hace relativamente muy poco.

El caso es que, por ejemplo, el error de index.php se me produce en la linea 3, y no sé que es lo que no ejecuta en esa línea, por eso os pido ayuda.

Este sistema me lo descargué tal cual y me tiraba esa serie de errores que no se como solucionarlos para que funcione.

Alguna idea?

PD: ya he cambiado ese <? y funciona, gracias. pero aún no puede acceder por dicho error

Última edición por serg_prog; 02/02/2013 a las 11:56
  #6 (permalink)  
Antiguo 02/02/2013, 12:01
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Qué está mal en este sistema de usuarios?

Ups, se me olvidó arreglar otro <?

Ya me hace caso. Muchas gracias!!

Etiquetas: errores, sistema, 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 12:53.