PHP Formulario de Registro

  • bgraybr
  • Novice
  • Novice
  • No Avatar
  • Registrado: Ene 11, 2009
  • Mensajes: 26
  • Status: Offline

Nota Julio 9th, 2009, 7:06 pm

Im tratando de usar PHP para crear un formulario de inscripción.

Tengo esto:

Código: [ Select ]
 
<?php
 
//connect to database
require_once "connect.php";
 
$error = "Unknown error.";
 
//check the email, password, etc.
 
$email = $_POST["email"];
$name = $_POST["name"];
$pass = $_POST["password"];
$passval = $_POST["passwordval"];
 
 
  1.  
  2. <?php
  3.  
  4. //connect to database
  5. require_once "connect.php";
  6.  
  7. $error = "Unknown error.";
  8.  
  9. //check the email, password, etc.
  10.  
  11. $email = $_POST["email"];
  12. $name = $_POST["name"];
  13. $pass = $_POST["password"];
  14. $passval = $_POST["passwordval"];
  15.  
  16.  


Im tratando de hacer esta parte del código de asegurarse de que el correo electrónico es válida, que el nombre de usuario es la longitud correcta, etc tengo una variable llamada $ de comprobación, si su valor es 1, la información se enviará a la base de datos y si el 0 se echo un error ($ error). El problema que soy es que no importa lo que marca el código siempre me dice que mi contraseña no es suficientemente largo. Whatd he hecho mal?
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Julio 9th, 2009, 7:06 pm

  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Julio 9th, 2009, 10:02 pm

Eso no es un buen guión...lo que si el nombre no es lo suficientemente largo, pero su contraseña es lo suficientemente largo...que haría que el checkid $ "0" y dejar que el script de crear la cuenta.

He intentado que, antes de...realmente :lol:

Una mejor manera de hacer esto es para comprobar la falsos valores (que producen un error...al igual que está haciendo), pero en lugar de ello, creará una serie de errores...iniciar la matriz antes de empezar a comprobar con una matriz vacía y, a continuación, si hay un error, puesto que en la matriz.

Entonces, cuando se están comprobando si va a crear la cuenta o no, usted cuenta el tamaño de la matriz y si es mayor que 0 (obviamente) de crear la cuenta...de lo contrario, los errores de impresión para que el usuario pueda leer.

No sé por qué usted está recibiendo este error...asegúrese de que la contraseña que está en la puesta es mayor de 6 caracteres...ni siquiera 6.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • bgraybr
  • Novice
  • Novice
  • No Avatar
  • Registrado: Ene 11, 2009
  • Mensajes: 26
  • Status: Offline

Nota Julio 10th, 2009, 10:31 pm

Tomé su consejo sobre el uso de una matriz en lugar, pero el problema ahora es que dice el correo electrónico es incorrecto, no importa qué. Ive estado trabajando en él durante una hora e Im atrapado. Probablemente algunos negligente error estúpido que me pasa por alto, cualquiera de ustedes puede encontrar el error?
http://testing.randomns0123.com/creator.txt
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Julio 10th, 2009, 11:13 pm

Yo no sé por qué vas a encontrar problemas...He probado el script y todo funcionaba bien...

Pruebe el siguiente código:
Código: [ Select ]
<?php

require_once "connect.php";

$checkerr = array("");

//check the email, password, etc.

$email = $_POST["email"];
$name = $_POST["name"];
$pass = $_POST["password"];
$passval = $_POST["passwordval"];

if (filter_var($email, FILTER_VALIDATE_EMAIL) == false) {
    $checkerr[] = "The email you entered is not valid.";
} elseif (strlen($name) < 4) {
    $checkerr[] = "Your username must be more than 4 characters in length.";
} elseif (strlen($pass) < 6) {
    $checkerr[] = "Your password must be more than 6 characters in length.";
} elseif ($pass != $passval) {
    $checkerr[] = "The two passwords you entered do not match.";
}

//code that generates an id

$filename = 'genid.txt';
$handle = fopen($filename, 'r');

if (flock($handle, LOCK_SH)) {
    $genid = trim(fgets($handle)) + 1;
    flock($handle, LOCK_UN);
} else {
    $checkerr[] = "flock() failed. Contact me.";
}

fclose($handle);

$handle = fopen($filename, 'w');

if (flock($handle, LOCK_EX)) {
    fwrite($handle, $genid);
    flock($handle, LOCK_UN);
} else {
    $checkerr[] = "flock() failed twice. Contact me.";
}

fclose($handle);

//and finally send the data to the data base

if (count($checkerr) == 0) {

    mysql_query("INSERT INTO users (userid, email, name, pass)
    VALUES ('".$genid."', '".$email."', '".$name."', '".$pass."')");

    //<!--begin html--> <- omg html comment

    echo "You have successfully created an account.";

    echo "<br />";
    echo $email;
    echo "<br />";
    echo $name;
    echo "<br />";
    echo $pass;
    
} elseif (count($checkerr) != 0) {
    echo "<ol>";
    foreach($checkerr as $err)
    {
        echo "<li>{$err}</li>";
    }
    echo "</ol>";
    echo "<br />Click <a href=\"http://www.randomns0123.com/contact/\">here</a> if you have an error to report.";
}

mysql_close($con);

?>
  1. <?php
  2. require_once "connect.php";
  3. $checkerr = array("");
  4. //check the email, password, etc.
  5. $email = $_POST["email"];
  6. $name = $_POST["name"];
  7. $pass = $_POST["password"];
  8. $passval = $_POST["passwordval"];
  9. if (filter_var($email, FILTER_VALIDATE_EMAIL) == false) {
  10.     $checkerr[] = "The email you entered is not valid.";
  11. } elseif (strlen($name) < 4) {
  12.     $checkerr[] = "Your username must be more than 4 characters in length.";
  13. } elseif (strlen($pass) < 6) {
  14.     $checkerr[] = "Your password must be more than 6 characters in length.";
  15. } elseif ($pass != $passval) {
  16.     $checkerr[] = "The two passwords you entered do not match.";
  17. }
  18. //code that generates an id
  19. $filename = 'genid.txt';
  20. $handle = fopen($filename, 'r');
  21. if (flock($handle, LOCK_SH)) {
  22.     $genid = trim(fgets($handle)) + 1;
  23.     flock($handle, LOCK_UN);
  24. } else {
  25.     $checkerr[] = "flock() failed. Contact me.";
  26. }
  27. fclose($handle);
  28. $handle = fopen($filename, 'w');
  29. if (flock($handle, LOCK_EX)) {
  30.     fwrite($handle, $genid);
  31.     flock($handle, LOCK_UN);
  32. } else {
  33.     $checkerr[] = "flock() failed twice. Contact me.";
  34. }
  35. fclose($handle);
  36. //and finally send the data to the data base
  37. if (count($checkerr) == 0) {
  38.     mysql_query("INSERT INTO users (userid, email, name, pass)
  39.     VALUES ('".$genid."', '".$email."', '".$name."', '".$pass."')");
  40.     //<!--begin html--> <- omg html comment
  41.     echo "You have successfully created an account.";
  42.     echo "<br />";
  43.     echo $email;
  44.     echo "<br />";
  45.     echo $name;
  46.     echo "<br />";
  47.     echo $pass;
  48.     
  49. } elseif (count($checkerr) != 0) {
  50.     echo "<ol>";
  51.     foreach($checkerr as $err)
  52.     {
  53.         echo "<li>{$err}</li>";
  54.     }
  55.     echo "</ol>";
  56.     echo "<br />Click <a href=\"http://www.randomns0123.com/contact/\">here</a> if you have an error to report.";
  57. }
  58. mysql_close($con);
  59. ?>
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • bgraybr
  • Novice
  • Novice
  • No Avatar
  • Registrado: Ene 11, 2009
  • Mensajes: 26
  • Status: Offline

Nota Julio 11th, 2009, 2:14 pm

Bogey escribió:
Yo no sé por qué vas a encontrar problemas...He probado el script y todo funcionaba bien...

¿Estás absolutamente seguro de que funcionó?
Usted puede comprobar en mi sitio aquí . El guión es aún me da el mismo error: "Su correo electrónico no es válida.".

He cambiado esto:
Código: [ Select ]
 
$checkerr = array("");
 
  1.  
  2. $checkerr = array("");
  3.  


Para ello:
Código: [ Select ]
 
$checkerr = array();
 
  1.  
  2. $checkerr = array();
  3.  


...porque me daba un error en blanco como esta:

1.
2. Su correo electrónico no es válida.

...pero ahora su aún haciendo lo de correo electrónico:

1. Su correo electrónico no es válida.
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Julio 12th, 2009, 11:24 am

No me sale el error con el mensaje de correo electrónico...Me sale el error con el nombre de usuario, aunque...Yo siempre el siguiente error:
Quote:
Su nombre de usuario debe ser más de 4 caracteres de longitud.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8

Publicar Información

  • Total de mensajes en este tema: 6 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 127 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC