Comunidad de diseño web y desarrollo en internet online

Ayuda con sistema de inicio de sesion en php

Citar            
MensajeEscrito el 27 Feb 2012 06:14 pm
Hola Amigos!
Estuve haciendo un sistema de registro de usuarios en php y mysql que consegui por internet.
Todo me funciona muy bien en el localhost, pero cuando lo publico directamente en el hosting me comienza a dar errores.
El primero es el error 500. Pero buscando en internet encontré que colocando la carpeta www con permisos 755 se solucionaba, y así fue.
Ya puedo ver correctamente la pagina de inicio, en la cual se le pide al usuario que se registre o que inicie sesion.
El formulario de registro aparentemente funciona perfectamente, pues una vez que se ha registrado indica que fue exitoso. Pero al volver a la pantalla principal he iniciar sesion el "sistema" se queda colgado en el archivo entrar.php el cual una vez autentificado el usuario deberia redireccionarlo a inicio.php pues ya es usuario registrado, o indicarle si hay algun error en su usuario o contraseña. Pero nada de esto ocurre, simplemente se queda alli en una pantalla en blanco y nada de nada.
Agradezco si pueden echarme una mano pues es primera vez que hago este tipo de registros.
Aqui coloco los archivos que comprende el sistema de registro:

Index ( Donde el usuario se registra o inicia sesion )

Código PHP :

<?php
include('config.php');
if($_SESSION["logeado"] == "SI"){ 
header ("Location: inicio.php");
}

?>
<style type="text/css">
<!--
#Layer1 {
   position:absolute;
   width:264px;
   height:65px;
   z-index:1;
   left: 470px;
   top: 47px;
}
#Layer2 {
   position:absolute; top:1%; left:10%; width:80%; height:80%;
}
#Layer3 {
   position:absolute;
   width:165px;
   height:54px;
   z-index:2;
   left: 274px;
   top: -14px;
}
#Layer4 {
   position:absolute;
   width:200px;
   height:115px;
   z-index:2;
}
#Layer5 {
   position:absolute;
   width:200px;
   height:286px;
   z-index:2;
   left: 714px;
   top: 287px;
}
.Estilo1 {
   font-family: Arial, Helvetica, sans-serif;
   color: #FFFFFF;
   font-size: 12px;
}
a:link {
   text-decoration: none;
   color: #FFFFFF;
}
a:visited {
   text-decoration: none;
   color: #FFFFFF;
}
a:hover {
   text-decoration: none;
   color: #FFFFFF;
}
a:active {
   text-decoration: none;
   color: #FFFFFF;
}
-->
</style>
<div id="Layer1">
  <form action="entrar.php" method="post" name="form1" id="form1"><input name="username" type="text" id="username" />
    <br />
    <div id="Layer3">
      <p>
        <input name="password" type="password" id="password" />
      </p>
      <p>
        <input type="submit" name="Submit2" value="Entrar"  style="BORDER: rgb(128,128,128) 1px hidden; FONT-SIZE: 8pt; FONT-FAMILY: Verdana;
BACKGROUND-COLOR: rgb(233,233,233)" />
      </p>
    </div>
    <br />
    <input type="checkbox" name="recordar" id="recordar" />
    <span class="Estilo1">Recordar sesi&oacute;n</span> <span class="Estilo1"><a href="recuperar.php"> |<span style="font-size: 12px; color: #FFFFFF"></span> Recuperar contrase&ntilde;a</a> |</span><span style="font-size: 12px; color: #FFFFFF"></span><span style="font-size: 12px; color: #000"><br />
    </span><br />
    <br />
  </form>
</div>
<?php
include('config.php');
if($_SESSION["logeado"] == "SI"){ 
header ("Location: inicio.php");
}
?>
<div id="Layer5">
  <form name="form1" method="post" action="insertar.php">
    <label>
  <input name="username" type="text" id="username">
  </label>
  <p>
    <label>
      <input name="password" type="password" id="password">
      <br />
    </label>
    <br>
    <label>
      <input name="email" type="text" id="email">
      </label>
    <br />
    <br>
    <label>
      <input name="celular" type="text" id="celular">
    </label>
    <br />
    <br>
    <label>
      <input name="pin" type="text" id="pin">
    </label>
  </p>
  <p>
    <label></label>
    <label>
    <input type="submit" name="Submit" value="Registrarme"style="BORDER: rgb(128,128,128) 1px hidden; FONT-SIZE: 8pt; FONT-FAMILY: Verdana;
BACKGROUND-COLOR: rgb(233,233,233)">
    </label>
  </p>
</form></div>

<div id="Layer2"><img src="index2.jpg" width="800" height="600" /></div>


Entrar.php

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['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=htmlentities($_POST['username']);
$password=md5($_POST['password']);
if ($password==NULL) {
echo "No a introducido una contrasenia";
exit();
}else{
$query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") 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 username,password FROM usuarios WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$username2 = $row['username'];
$_SESSION["s_username"] = $row['username'];
$_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 = $username2."%".$id_extreme."%".$ip;
   setcookie('id_extreme', $id_extreme2, time()+7776000,'/');
   $query = mysql_query("UPDATE usuarios SET id_extreme='".$id_extreme."' WHERE username='".$username2."'") or die(mysql_error());
}

header ("Location: inicio.php");
}
}
}
?> 



Inicio.php ( Aqui deberia redirigir una vez los datos de ingreso son correctos, es una pagina hecha en flash.)

Código PHP :

<?php
include('config.php');
if($_SESSION["logeado"] != "SI"){
header ("Location: index.php");
exit;
}
?>
<style type="text/css">
<!--
#Layer1 {
   position:absolute; top:43px; left:10%; width:80%; height:80%;
}
.Estilo7 {
   font-family: Arial, Helvetica, sans-serif;
   font-size: 14px;
   color: #999999;
}
a:link {
   text-decoration: none;
}
a:visited {
   text-decoration: none;
}
a:hover {
   text-decoration: none;
}
a:active {
   text-decoration: none;
}
#Layer2 {
   position:absolute;
   width:264px;
   height:28px;
   z-index:1;
   left: 665px;
   top: 27px;
}
-->
</style>


<p>&nbsp;</p>
<div id="Layer2"><span class="Estilo7"> Bienvenido a VGT <a href="recuperar.php">|</a> <a href="cerrar.php">Cerrar sesi&oacute;n </a></span></div>
<div id="Layer1">
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="800" height="600">
    <param name="movie" value="index.swf" />
    <param name="quality" value="high" />
    <embed src="index.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="600"></embed>
  </object>
</div>
<p>&nbsp;</p>


Archivo de insertar registro:

insertar.php

Código PHP :

<?
include('config.php');
    // Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
    if(isset($_POST['username']) && !empty($_POST['username']) &&
    isset($_POST['password']) && !empty($_POST['password']) &&
    isset ($_POST['email']) && !empty($_POST['email'])) {
        // Si entramos es que todo se ha realizado correctamente
      $password = md5($_POST['password']);
      $username = htmlentities($_POST['username']);
      $mail = htmlentities($_POST['email']);
      $celular = htmlentities($_POST['celular']);
      $pin = htmlentities($_POST['pin']);
      
        $link = mysql_connect ($dbhost, $dbusername, $dbuserpass);
        mysql_select_db($dbname,$link);
      
      $queEmp = "SELECT username FROM usuarios WHERE username='$username'";
      $resEmp = mysql_query($queEmp, $link) or die(mysql_error());
      $totEmp = mysql_num_rows($resEmp);
      if($totEmp > 0){
echo "<center><br><br><br><br><span style=\"color:#000000; font-family: Arial, Helvetica, sans-serif; weight: bold\">El Usuario ingresado <b>no esta disponible</b><br> Por favor ingrese uno diferente</span>"; 
      echo "<center><img src=\"Logo.png\" align=\"middle\" width=\"459\" height=\"344\" <br> ";
      echo "<center><span style=\"color:#009900; font-family: Arial, Helvetica, sans-serif; weight: bold\"><a href=\"index.php\">Regresar</a></span>"; 
      echo "<center><a href=\"index.php\"><img src=\"boton.png\" width=\"154\" height=\"66\" border=\"0\" /></a>";
      exit();
      }
      
      $queEmp = "SELECT email FROM usuarios WHERE email='$mail'";
      $resEmp = mysql_query($queEmp, $link) or die(mysql_error());
      $totEmp = mysql_num_rows($resEmp);
      if($totEmp > 0){
      echo "<center><br><br><br><br><span style=\"color:#000000; font-family: Arial, Helvetica, sans-serif; weight: bold\">El Correo Electronico <b>no esta disponible</b><br> Por favor ingrese uno diferente</span>"; 
      echo "<center><img src=\"Logo.png\" align=\"middle\" width=\"459\" height=\"344\" <br> ";
      echo "<center><span style=\"color:#009900; font-family: Arial, Helvetica, sans-serif; weight: bold\"><a href=\"index.php\">Regresar</a></span>"; 
      echo "<center><a href=\"index.php\"><img src=\"boton.png\" width=\"154\" height=\"66\" border=\"0\" /></a>";
      exit();
      }
      
        // Con esta sentencia SQL insertaremos los datos en la base de datos
        mysql_query("INSERT INTO usuarios (username,password,email,celular,pin)
        VALUES ('{$username}','{$password}','{$mail}','{$celular}','{$pin}')",$link);

        // Ahora comprobaremos que todo ha ido correctamente
        $my_error = mysql_error($link);

        if(!empty($my_error)) {

            echo '<center><b><br><br><br><br>Ocurrio un error al insertar los datos</b><br>Por favor intente de nuevo<br>Ahora regresa he inicia sesion $my_error</b></center>'; 

        } else {

            echo '<center><b><br><br><br><br>Sus datos han sido introducidos correctamente</b>

        }

    } else {

      echo '<center><b><br><br><br><br>Error, no ha introducido todos los datos<br></b>Por favor complete el registro</b></center>';

    }

?>
<style type="text/css">
<!--
#Layer1 {
   position:absolute;
   width:200px;
   height:115px;
   z-index:1;
   left: 278px;
   top: 65px;
}
body,td,th {
   font-family: Arial, Helvetica, sans-serif;
   font-size: 14px;
}
#Layer2 {
   position:absolute;
   width:200px;
   height:115px;
   z-index:1;
   left: 295px;
   top: 54px;
}
a:link {
   color: #333333;
   text-decoration: none;
}
a:visited {
   text-decoration: none;
   color: #333333;
}
a:hover {
   text-decoration: underline;
}
a:active {
   text-decoration: none;
}
.Estilo3 {color: #CC0000}
-->
</style>

<p align="center"><img src="Logo.png" width="459" height="344" /></p>
<p align="center"><a href="index.php">Regresar</a><br />
    <a href="index.php"><img src="boton.png" width="154" height="66" border="0" /></a></p>
<p align="center"><br />
</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>



El archivo config.php

Código PHP :

<?php
$dbhost='localhost'; // Servidor
$dbusername='root'; // Nombre de usuario
$dbuserpass=''; // Contraseña
$dbname='sistem'; // 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 username='".$user."'") or die(mysql_error());
         $row = mysql_fetch_array($query);
         if(isset($row['username'])) 
      {
      $_SESSION["s_username"] = $row['username'];
      $_SESSION["logeado"] = "SI";
         }
      mysql_close($link);
   }
}
?>


Bien estos son los principales, creo que si es algún problema debería estar aquí. Lo que no entiendo es que en el localhost el sistema me funciona completamente bien.
Agradezco cualquier ayuda o sugerencia que puedan darme. Gracias!

Por anibrimo84

29 de clabLevel



 

Venezuela

chrome
Citar            
MensajeEscrito el 28 Feb 2012 12:31 pm
¿Qué sucede cuando este if "if ($_POST['username']) {" es falso?

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

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