Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas con un codigo login-registro php

Estas en el tema de problemas con un codigo login-registro php en el foro de PHP en Foros del Web. hola soy principiante en la programacion con php y nueva en este foro. he probado de todo para ver que es lo que tengo mal ...
  #1 (permalink)  
Antiguo 17/10/2015, 12:34
 
Fecha de Ingreso: octubre-2015
Mensajes: 6
Antigüedad: 8 años, 6 meses
Puntos: 0
Pregunta problemas con un codigo login-registro php

hola soy principiante en la programacion con php y nueva en este foro.
he probado de todo para ver que es lo que tengo mal en este codigo pero no tengo ni idea de como hacer que funcione alguien me podria ayudar porfavor mandandome un link o aconsejandome sobre lo que tengo mal porfavor me urge acabar este codigo
pongo el codigo a continuacion el codigo consta de dos paginas html y dos php mas la pagina de conexion que conecta con el servidor

Entrar.html:
<html>
<head>
<title>Entrar</title>
</head>
<body>
<form action="entar.php" method="post">
Usuario:<input type="text" name="username" id="username" />
<br />
Password:<input type="password" name="password" id="password" />
<br />
<input type="submit" value="Entrar" id="submit"/>
</form>
<a href="registro.html" target="_blank">registrarse</a>
</body>
</html>

entrar.php
<?php
include('conexion.php');

if ($_POST['username'] ) {
$username=$_POST['username'];
$password=$_POST['password'];
$password_encriptada1 = md5 ($password);
$password_encriptada2 = crc32($password_encriptada1);
$password_encriptada3 = crypt($password_encriptada2, "xtemp");
$password_encriptada4 = sha1("xtemp".$password_encriptada3);
if ($password==NULL) {
echo "Debes Escribir el Password";
}else{
$query = mysql_query("SELECT username,password FROM usuario WHERE username = '$username' and password='$password_encriptada4'" ) or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Usuario o Contrase&ntilde;a Incorrecto, sino eres Usuario Puedes Registrarte <a href='registro.html'>Aqu&iacute;</a>";
}else{
$query = mysql_query("SELECT username,password FROM usuario WHERE username = '$username'" ) or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo "<html><head></head><meta HTTP-EQUIV='Refresh' CONTENT='3; URL=session.html'><body>Hola ".$_SESSION['s_username']." Te Vamos a Redireccionar a Tu Cuenta</body></html>";
}
}
}
?>

registro.html
<html>
<head>
<title>registro</title>
</head>
<body>


<form method="POST" action="registro.php">
Nombre de Usuario:<input maxlength="25" size="25" name="username" />
<br />
Password:<input type="password" maxlength="25" size="25" name="password" id="pasword" />
<br />
Repite Password:<input type="password" maxlength="25" size="25" name="cpassword" id="cpassword"/>
<br />
Email:<input maxlength="35" size="25" name="email" />
<br />
<input type="submit" value="Registrar" id="submit" />
</form>
</body>
</html>

registro.php
<?php

include('conexion.php');

if (isset($_POST["username"] ) ) {
$username = $_POST["username"];
$password = $_POST["password"];
$cpassword = $_POST["cpassword"];
$password_encriptada1 = md5 ($password);
$password_encriptada2 = crc32($password_encriptada1);
$password_encriptada3 = crypt($password_encriptada2, "xtemp");
$password_encriptada4 = sha1("xtemp".$password_encriptada3);
$email = $_POST["email"];

if($username==NULL|$password==NULL|$cpassword==NUL L|$email==NULL) {
echo "Hay Campos Vacios";
}else{
if($password!=$cpassword) {
echo "Las Contrase&ntilde;as No Coinciden";
}else{
$checkuser = mysql_query("SELECT username FROM usuario WHERE username='$username' and password='$password_encriptada4'" ) ;
$username_exist = mysql_num_rows ($checkuser);
$checkemail = mysql_query("SELECT email FROM usuario WHERE email='$email'" ) ;
$email_exist = mysql_num_rows($checkemail);

if ($email_exist>0|$username_exist>0) {
echo "EL Nombre de Usuario o la Cuenta de Correo Estan ya en Uso";
}else{
$query = "INSERT INTO usuario (username, password, email) VALUES('$username','$password','$email')";
mysql_query($query) or die(mysql_error());
echo "El Usuario ''.$username.' ha Sido Registrado de Manera Satisfactoria. Ahora Puedes Iniciar Session";

header("Content-type: image/png");
$string = "abcdefghijklmnopqrstuvwxyz0123456789";
for($i=0;$i<5;$i++){
$pos = rand(0,36);
$str .= $string{$pos};
}
$img_handle = ImageCreate (60, 22) or die ("Es imposible crear la imagen");
$back_color = ImageColorAllocate($img_handle,102,102,153);
$txt_color = ImageColorAllocate($img_handle,255,255,255);
ImageString($img_handle, 31, 5, 0, $str, $txt_color);
Imagepng($img_handle);
session_start();
$_SESSION['img_number'] = $str;

}
}
}
}
?>

UNA VEZ MAS AGRADEZCO LA AYUDA UN SALUDO
  #2 (permalink)  
Antiguo 19/10/2015, 23:20
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: problemas con un codigo login-registro php

Y cuál es el error que te arroja? O qué es lo que no funciona?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 20/10/2015, 01:31
 
Fecha de Ingreso: octubre-2015
Mensajes: 6
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: problemas con un codigo login-registro php

Hola gracias por contestarme mira este es el problema que tiene mi codigo cuando le doy en registro.html completo los datos para el registroo le doy a registrarme y me sale una pagina de abrir o guardar el archivo registro.php y pasa lo mismo con el de entrar y lo he visto por todas parte y llaman al archivo asi asi que no se que pasa, ademas tambien cuando lo presente me dijo que le faltaba que encriptara asi que encripte las contraseñas pero no se si esta bien y que le faltaba algo lamado proteccion de inyeccion SQL pero realmente no se que es y un par de cosas pero lo demas lo intentare buscar en alggun sitio.
Gracias por responder a mi pregunta realmente no se como arreglarlo agradeceria mucho la ayuda.
  #4 (permalink)  
Antiguo 20/10/2015, 08:54
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: problemas con un codigo login-registro php

En dónde estás ejecutando los archivos? Recuerda que php es un lenguaje que debe ser preinterpretado en un servidor php, si tu intentas abrir un archivo php con tu explorador de internet directamente este no va a saber qué hacer con el. Debes subir tus 3 archivos a algún servidor web o descargar el software wamp para simular un servidor web local y poner los archivos en la carpeta www que crea el wamp para poder ejecutar el código php.

Por otro lado en el action del form tienes mal el nombre del archivo:

<form action="entar.php" method="post">

Dice entar.php cámbialo por entrar.php.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #5 (permalink)  
Antiguo 20/10/2015, 11:16
 
Fecha de Ingreso: octubre-2015
Mensajes: 6
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: problemas con un codigo login-registro php

si estoy usando el xammp como local host pero igual no me ejecuta el codigo de registro.php tras rellenar los campos de registro me sale lo de guardar o abrir el archivo ...php
  #6 (permalink)  
Antiguo 20/10/2015, 11:26
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años
Puntos: 2
Respuesta: problemas con un codigo login-registro php

Pero para ejecutarlo... ¿en tu navegador entras en "localhost"? o sólo ejecutas el archivo html haciendo doble click?

No es lo mismo :)
  #7 (permalink)  
Antiguo 20/10/2015, 11:34
 
Fecha de Ingreso: octubre-2015
Mensajes: 6
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: problemas con un codigo login-registro php

de las dos formas y me sigue saliendo lo mismo
  #8 (permalink)  
Antiguo 20/10/2015, 11:40
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: problemas con un codigo login-registro php

Primero que todo debes corregir varios errores que tienes en el código. Lo más probable es que no estés accediendo desde localhost a tus archivos como dice el compañero SirZoX. Yo lo probé en mi computador y funciona bien desde que se hagan varias modificaciones, solo traté de arreglar el archivo entrar.php y quedó más o menos así:

Código PHP:
Ver original
  1. <?php
  2. include('conexion.php');
  3.  
  4. if ($_POST['username'] ) {
  5. $username=$_POST['username'];
  6. $password=$_POST['password'];
  7. if ($password==NULL) {
  8. echo "Debes Escribir el Password";
  9. }else{
  10. $password_encriptada = md5 ($password);
  11. $password_encriptada = crc32($password_encriptada);
  12. $password_encriptada = crypt($password_encriptada, "xtemp");
  13. $password_encriptada = sha1("xtemp".$password_encriptada);
  14. $query = mysql_query("SELECT username,password FROM usuario WHERE username = '$username' and password='$password_encriptada'" ) or die(mysql_error());
  15. $data = mysql_fetch_array($query);
  16. if($data['password'] != $password_encriptada) {
  17. echo "Usuario o Contrase&ntilde;a Incorrecto, sino eres Usuario Puedes Registrarte <a href='registro.html'>Aqu&iacute;</a>";
  18. }else{
  19. $_SESSION["s_username"] = $data['username'];
  20. echo "<html><head></head><meta HTTP-EQUIV='Refresh' CONTENT='3; URL=session.html'><body>Hola ".$_SESSION['s_username']." Te Vamos a Redireccionar a Tu Cuenta</body></html>";
  21. }
  22. }
  23. }
  24. ?>

El de registro no lo revisé pero debe estar igual. Busca algún tutorial sobre cómo usar php y mysql, en la misma página de php hay uno. Y acostúmbrate a usar la extensión mysqli de ahora en adelante, ya que mysql es obsoleta y pronto desaparecerá.

PD: Yo cambiaría esta parte:
Código PHP:
Ver original
  1. if($data['password'] != $password_encriptada) {
  2. echo "Usuario o Contrase&ntilde;a Incorrecto, sino eres Usuario Puedes Registrarte <a href='registro.html'>Aqu&iacute;</a>";
  3. }else{
  4. $_SESSION["s_username"] = $data['username'];
  5. echo "<html><head></head><meta HTTP-EQUIV='Refresh' CONTENT='3; URL=session.html'><body>Hola ".$_SESSION['s_username']." Te Vamos a Redireccionar a Tu Cuenta</body></html>";
  6. }

Se supone que si la consulta arrojó resultados es porque tanto el usuario como la contraseña coinciden, mejor usaría num_rows para saber si devolvió registros, si num_rows devuelve 0 mostraría el mensaje de usuario y contraseña incorrectos y si devuelve 1 daría acceso.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #9 (permalink)  
Antiguo 20/10/2015, 13:47
 
Fecha de Ingreso: octubre-2015
Mensajes: 6
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: problemas con un codigo login-registro php

oki pero una pregunta a mi en el libro de php me dice que descargue el xampp como servidor y que despues de configurarlo y hacer la tabla donde se van guardando los usuarios y contraseñas pero no me pone que tenga que subir los archivos al servidor eso se haria como escribiste antes en la carpeta www ?y si es asi los archivos se los pone todos los html y los php o solo los php y eso en la carpeta www o en la carpeta rootrules?
perdon por preguntar tantas cosas que quizas resulten obvias pero con esta charla me estoy dando cuenta de que en mi libro no explican nada ni como usar el servidor y antes yo solo programaba en http eso subes la pagina a un servidor con un un dominio y listo
  #10 (permalink)  
Antiguo 20/10/2015, 13:52
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: problemas con un codigo login-registro php

Así es tanto los html como los php deben ir en la carpeta www o hay otros servidores cuya carpeta es public_html busca cualquiera de las dos y colocas ahí todos los archivos, luego entras a cualquier explorador de internet y escribes:
localhost/entrar.html

PD: estuve revisando y xampp usa esta carpeta para alojar la web:

\xampp\htdocs

Busca esa carpeta en el sitio donde instalaste xampp por lo general en C:\ y guardas ahí todas tus páginas html y php.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #11 (permalink)  
Antiguo 23/10/2015, 01:00
 
Fecha de Ingreso: octubre-2015
Mensajes: 6
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: problemas con un codigo login-registro php

Gracias me has ayudado un montón perdona por no haber respondido antes. Un saludo

Etiquetas: html, registro
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 22:09.