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ón</span> <span class="Estilo1"><a href="recuperar.php"> |<span style="font-size: 12px; color: #FFFFFF"></span> Recuperar contraseñ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> </p> <div id="Layer2"><span class="Estilo7"> Bienvenido a VGT <a href="recuperar.php">|</a> <a href="cerrar.php">Cerrar sesió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> </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"> </p> <p align="center"> </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!