Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1382 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] bug dans un script d'inscription

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] bug dans un script d'inscription

n°1435560
hugoOo
laisse pas dépasser ton pixel
Posté le 02-09-2006 à 12:19:14  profilanswer
 

EDIT: 1er problème résolu!
 2eme problème:
j'ai fait des tests j'arrive à accéder aux valeures en fesant :

Code :
  1. echo $_POST["pseudo"];

mais lorsque je met

Code :
  1. array_map('mysql_real_escape_string', $_POST);
  2. extract($_POST);
  3. echo $pseudo;


cela ne marce plus quelqu'un pourrait t'il me dire pourquoi?


Message édité par hugoOo le 02-09-2006 à 22:06:31

---------------
http://over-templates.c.la
mood
Publicité
Posté le 02-09-2006 à 12:19:14  profilanswer
 

n°1435568
Nekrosaro
Posté le 02-09-2006 à 12:23:09  profilanswer
 

Je n'ai lu que le code ton formulaire pour le moment.
 
Qu'entends-tu par "le formulaire se recharge vide" ?

n°1435637
Nekrosaro
Posté le 02-09-2006 à 14:56:47  profilanswer
 

C'est tout simplement dû à une mauvaise écriture des attributs de ta balise form.
 
Toi, tu as écrit :

Code :
  1. <form method="post" value="inscription_valid.php">


 
Or, il n'existe pas d'attribut "value" pour la balise form.
L'adresse du script à appeler après validation du formulaire est à renseigner via l'attribut "action". Ce qui donne :

Code :
  1. <form method="post" action="inscription_valid.php">


 
Edit : Correction des fautes d'orthographe.


Message édité par Nekrosaro le 02-09-2006 à 14:57:50
n°1435711
hugoOo
laisse pas dépasser ton pixel
Posté le 02-09-2006 à 20:24:23  profilanswer
 

ah la, une grosse faute d'inatention! merci nekrosaro de m'avoir aider! @ +


---------------
http://over-templates.c.la
n°1435758
hugoOo
laisse pas dépasser ton pixel
Posté le 02-09-2006 à 22:13:09  profilanswer
 

up!


---------------
http://over-templates.c.la
n°1435766
Dj YeLL
$question = $to_be || !$to_be;
Posté le 02-09-2006 à 22:21:32  profilanswer
 

il me semble que mysql_real_escape_string demande 2 arguments
 
edit: As tu ouvert une connexion à la BDD avant ?


Message édité par Dj YeLL le 02-09-2006 à 22:22:00

---------------
Gamertag: CoteBlack YeLL
n°1435768
hugoOo
laisse pas dépasser ton pixel
Posté le 02-09-2006 à 22:28:52  profilanswer
 

oui j'ai ouvert une connexion, je vais regarder le manuel php pour mysql_real_escape_string


---------------
http://over-templates.c.la
n°1435769
Dj YeLL
$question = $to_be || !$to_be;
Posté le 02-09-2006 à 22:30:33  profilanswer
 

fais voir un $cnx = mysql_connect etc...
 
puis ton array_map en rajoutant $cnx en 2ème param


---------------
Gamertag: CoteBlack YeLL
n°1435770
hugoOo
laisse pas dépasser ton pixel
Posté le 02-09-2006 à 22:31:18  profilanswer
 

jai regardé sur le manuel: il y a un seul argument obligatoire pour cette fonction


---------------
http://over-templates.c.la
n°1435772
Dj YeLL
$question = $to_be || !$to_be;
Posté le 02-09-2006 à 22:31:56  profilanswer
 

hugoOo a écrit :

jai regardé sur le manuel: il y a un seul argument obligatoire pour cette fonction


 
Je sais


---------------
Gamertag: CoteBlack YeLL
mood
Publicité
Posté le 02-09-2006 à 22:31:56  profilanswer
 

n°1435775
hugoOo
laisse pas dépasser ton pixel
Posté le 02-09-2006 à 22:40:39  profilanswer
 

vous faites comment vous quand vous avez bocoup de variables en post et que vous voulez passez une fonction a toutes?


---------------
http://over-templates.c.la
n°1435776
Dj YeLL
$question = $to_be || !$to_be;
Posté le 02-09-2006 à 22:46:29  profilanswer
 

En fait il y a une erreur, array_map retourne un tableau :
 
$new_array = array_map('ma_fonction', $old_array);


Message édité par Dj YeLL le 02-09-2006 à 22:46:46

---------------
Gamertag: CoteBlack YeLL
n°1435779
hugoOo
laisse pas dépasser ton pixel
Posté le 02-09-2006 à 22:51:17  profilanswer
 

j'ai testé ça :

Code :
  1. $_POST = array_map('mysql_real_escape_string', $_POST);
  2. extract($_POST);
  3. $pseudo


mais ça marche toujours pas


---------------
http://over-templates.c.la
n°1435791
Nekrosaro
Posté le 02-09-2006 à 23:58:10  profilanswer
 

Quand tu dis que ça ne marche pas, y a-t-il un message d'erreur ?
Ou est-ce simplement dû au fait que la variable pseudo n'est pas créée ?
Attention : dans le code donné là, tu ne fais pas de echo.
 
Pour info, j'ai écrit un petit test que j'ai rapidement testé sur ma machine et apparemment, ça a l'air de marcher.

Code :
  1. <?php
  2. error_reporting(E_ALL);
  3. $dbh = mysql_connect("host", "user", "password" ) or die (mysql_error());
  4. mysql_select_db("dbname", $dbh) or die (mysql_error());
  5. $_POST["pseudo"] = "hello''hello";
  6. echo $_POST["pseudo"]."\n";
  7. $_POST = array_map('mysql_real_escape_string', $_POST);
  8. extract($_POST);
  9. echo $pseudo."\n";
  10. mysql_close($dbh);
  11. ?>


Essaie de ton côté ce code donc.
L'appel de error_reporting avec E_ALL peut être pratique pour voir tous les messages d'erreur, d'avertissement and co de PHP.
 
Aussi, après l'appel de array_map, tu peux utiliser ce bout de code :

Code :
  1. print("<pre>" );
  2. print_r($_POST);
  3. print("</pre>" );


Même si là, ça peut ne pas te servir et que des gens sont capables d'écrire des pavés sur le fait qu'il faut pas utiliser <pre>, ça te fait gagner un temps fou quand tu fais du débogguage pour afficher un simple tableau et pouvoir le lire facilement.
 
Edit : Tout à l'heure, tu avais mis le contenu de ton script php, pourquoi l'avoir enlevé ?


Message édité par Nekrosaro le 02-09-2006 à 23:59:44
n°1435852
hugoOo
laisse pas dépasser ton pixel
Posté le 03-09-2006 à 12:12:40  profilanswer
 

salut,
je n'obtient pas de messages d'erreur car j'utilise une redirection juste aprés, donc j'ai enlever la redirection mais j'ai pas eu de message d'erreur non plus, je remet ma page php que j'ai modifier provisoirement pour la faire marcher :

Code :
  1. <?php
  2. $points = 0; // nombre de points donnés à l'inscription
  3. $cash = 0; // argent donné à l'inscription
  4. include('bd.inc.php');
  5. include('fonctions.inc.php');
  6. if(!empty($_SESSION["partenaire"])){ // script de partenariat
  7. $sql = "SELECT id, inscriptions, partenaires WHERE id='".$_SESSION["partenaire"]."'";
  8. $resultat = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  9. $data = mysql_fetch_array($resultat);
  10. $part_partenaires = $data["partenaires"];
  11. $part_partenaires .= ';'.$_POST["pseudo"];
  12. $part_inscriptions = $data["inscriptions"];
  13. $part_inscriptions++;
  14. $sql = "UPDATE partenariat SET inscriptions='".$part_inscriptions."', partenaires='".$part_partenaires."' WHERE id='".$_SESSION["partenaire"]."'";
  15. } // fin du script de partenariat
  16. $pseudo = mysql_real_escape_string($_POST["pseudo"]);
  17. $mail = mysql_real_escape_string($_POST["mail"]);
  18. $adresse = mysql_real_escape_string($_POST["adresse"]);
  19. $postal = mysql_real_escape_string($_POST["postal"]);
  20. $ville = mysql_real_escape_string($_POST["ville"]);
  21. $nom = mysql_real_escape_string($_POST["nom"]);
  22. $prénom = $_POST["prénom"];
  23. $sql = "SELECT pseudo FROM membres WHERE pseudo='".$pseudo."'";
  24. $resultat = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  25. if(empty($pseudo) OR empty($mail) OR empty($adresse) OR empty($postal) OR empty($ville) OR empty($nom) OR empty($prénom)){
  26. header('Location: redirect.php?message=Vous devez remplir tout les champs&url=inscription.php');
  27. }
  28. if(mysql_num_rows($resultat) != 0){
  29. header('Location: redirect.php?message=Ce pseudo existe déjà&url=inscription.php');
  30. }
  31. if(strlen($pseudo) < 5 OR strlen($pseudo) > 20){
  32. header('Location: redirect.php?message=Votre pseudo doit être compris entre 5 et 20 charactères&url=inscription.php');
  33. }
  34. if(!test_email($mail)){
  35. header('Location: redirect.php?message=L\'e-mail n\'est pas valide&url=inscription.php');
  36. }
  37. if(!is_numeric($postal) OR strlen($postal) != 5){
  38. header('Location: redirect.php?message=Le code postal doit être une suite numérique de 5 chiffres&url=inscription.php');
  39. }
  40. $mdp = random_string();
  41. $md5 = md5($mdp);
  42. $sql = "INSERT INTO membres(`id`, `pseudo`, `nom`, `prénom`, `mdp`, `mail`, `date`, `ventes`, `achats`, `adresse`, `postal`, `ville`, `points`, `cash`, `validé`) VALUES('', '".$pseudo."', '".$nom."', '".$prénom."', '".$md5."', '".$mail."', '".time()."', '0', '0', '".$adresse."', '".$postal."', '".$ville."', '".$points."', '".$cash."', '')";
  43. $resultat = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  44. // A MODIFIER : le message d'un mail comporte maxi 70 charactères par ligne!
  45. $message = 'Ce message vous est envoyé suite à la demande d\'inscription à nom du site'."\n" // a mettre : nom du site
  46. .'Tout d\'abord nous vous remercions d\'avoir choisi notre service et ésperons que vous en serez satisfaits.'."\n"
  47. .'Vous devez confirmez votre inscription en vous rendant à l\'adresse suivante : inscription_valid_mail.php?pass='.$md5."\n" // a mettre : url complète de la page de validation
  48. .'Voici vos identifiants de connexion : '."\n"
  49. .'pseudo : '.$pseudo."\n"
  50. .'mot de passe : '.$mdp."\n"
  51. .'Vous pourrez changer votre mot de passe sur le site'."\n\n"
  52. .'A bientôt sur nom du site'; // a mettre : nom du site
  53. if(mail($mail, 'Inscription à nom du site', $message)){ // a mettre : nom du site
  54. echo 'L\'inscription s\'est bien déroulée. Un mail contenant vos paramètres de connexion vous à été envoyé à l\'adresse '.$mail;
  55. }else{
  56. echo 'Un problème est survenue pendant l\'envoi d\'un email, réessayez plus tard ou contactez un administrateur';
  57. }
  58. ?>


---------------
http://over-templates.c.la

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] bug dans un script d'inscription

 

Sujets relatifs
pb script kshDBD::Mysql DBI CGI vs Script
[HTML/PHP]Forcer le chargement d'une image non utiliserInsérer une classe CSS dans un tableau PHP
Problèmes avec PHPScript
Temps d'execution d'un scriptProblème de compatibilité script AJAX/IE
PHP et les variables de session ProblemeScript PageWeb Smilley
Plus de sujets relatifs à : [PHP] bug dans un script d'inscription


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR