PHP Formulaire d'inscription

  • bgraybr
  • Novice
  • Novice
  • No Avatar
  • Inscription: Jan 11, 2009
  • Messages: 26
  • Status: Offline

Message Juillet 9th, 2009, 7:06 pm

Im essayant d'utiliser PHP pour créer un formulaire d'inscription.

J'ai ceci:

Code: [ 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 essayant de rendre cette partie du code de s'assurer que l'email est valide, que le nom d'utilisateur est la bonne longueur, etc j'ai une variable appelée $ CheckId, si sa valeur est 1, l'info va être envoyé à la base de données et si sa 0, il fera écho à une erreur ($ erreur). Le problème étant Im est que peu importe ce que je entrer le code de toujours me dit que mon mot de passe n'est pas assez long. Whatd-je mal?
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juillet 9th, 2009, 7:06 pm

  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Juillet 9th, 2009, 10:02 pm

Ce n'est pas un bon scénario...si le nom n'est pas assez long, mais votre mot de passe est assez long...qui ferait de l'$ checkid "0" et de laisser le script de création du compte.

Ive essayé avant...vraiment :lol:

Une meilleure façon de faire est de vérifier les fausses valeurs (qui produirait un message d'erreur...comme vous le font), mais plutôt créer un tableau d'erreurs...ouvrir le tableau avant de commencer le contrôle avec un tableau vide, et ensuite si il ya une erreur, mettez-le dans le tableau.

Ensuite, lorsque vous vérifiez si vous devez créer le compte ou pas, on compte la taille du tableau et si elle est supérieure à 0 (évidemment), vous créez le compte...autrement, vous imprimez les erreurs à l'utilisateur de lire.

Je ne sais pas pourquoi vous obtenez cette erreur...assurez-vous que le mot de passe que vous mettez en est effectivement supérieur à 6 caractères...même pas 6.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • bgraybr
  • Novice
  • Novice
  • No Avatar
  • Inscription: Jan 11, 2009
  • Messages: 26
  • Status: Offline

Message Juillet 10th, 2009, 10:31 pm

J'ai pris vos conseils sur l'aide d'un tableau, mais plutôt le problème qui se pose maintenant est-il dit que le mail est incorrect, peu importe quoi. Ive a travaillé pendant une heure et Im coincé. Probablement certains négligent erreur stupide que j'ai oubliés, vous pouvez tout de trouver l'erreur?
http://testing.randomns0123.com/creator.txt
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Juillet 10th, 2009, 11:13 pm

Je ne sais pas pourquoi vous avez trouvé les problèmes...J'ai testé votre script, et tout fonctionnait bien...

Essayez le code suivant:
Code: [ 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
  • Inscription: Jan 11, 2009
  • Messages: 26
  • Status: Offline

Message Juillet 11th, 2009, 2:14 pm

Bogey a écrit:
Je ne sais pas pourquoi vous avez trouvé les problèmes...J'ai testé votre script, et tout fonctionnait bien...

Si vous êtes absolument sûr que cela a fonctionné?
Vous pouvez le vérifier sur mon site ici . Le script me donne encore la même erreur: «Votre adresse email n'est pas valide.".

J'ai changé ceci:
Code: [ Select ]
 
$checkerr = array("");
 
  1.  
  2. $checkerr = array("");
  3.  


Pour cela:
Code: [ Select ]
 
$checkerr = array();
 
  1.  
  2. $checkerr = array();
  3.  


...parce qu'il me donnait une erreur vierge comme ceci:

1.
2. Votre adresse email n'est pas valide.

...mais maintenant qu'il le fasse encore la chose email:

1. Votre adresse email n'est pas valide.
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Juillet 12th, 2009, 11:24 am

Je n'ai pas l'erreur avec l'adresse e-mail...J'obtiens l'erreur avec le nom d'utilisateur si...J'ai toujours l'erreur suivante:
Quote:
Votre nom d'utilisateur doit être plus de 4 caractères.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8

Afficher de l'information

  • Total des messages de ce sujet: 6 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 246 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC