Votre question
Résolu

Problème de mise en relation formulaire\BaseDeDonnée + Erreur.

Tags :
  • Input
  • Html
  • téléphone
Dernière réponse : dans Programmation
7 Mars 2017 19:04:36

Bonjour,
Je me permet de vous demandez de l'aide car ça vas faire maintenant 3 mois que je cherche une solution a mon problème de base donnée.
Tout d'abord j'ai créer un site en HTML classique. Il contient 3 pages dont un avec un formulaire et c'est la que intervient mon problème.
J'utilise easyphp.

Présentation des documents :

Mon formulaire de commande :
Spoiler
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
  2. <html>
  3. <head>
  4. <title> formulaire de commande </title>
  5. <link rel="stylesheet" href="monstyle.css">
  6. </head>
  7.  
  8. <body>
  9. <h1> Formulaire **** pour client. </h1>
  10. <form name="Formulaire" action="traitement.php" onsubmit="return validateForm()" method="post">
  11.  
  12. <fieldset>
  13. <legend>Informations de commande :</legend>
  14.  
  15. <label for="societe">Nom de l'entrepise : </label>
  16. <input type="text" name="entreprise" id="entreprise"><br>
  17. <br>
  18.  
  19. <label for="societe">Materiels necessaire : </label>
  20. <input type="text" name="materiels" id="materiels"><br>
  21. <br>
  22.  
  23. <label for="piece">Nom de la piece : </label>
  24. <input name="piece" id="NomPiece"></input> <br>
  25. <br>
  26.  
  27. <label for="date"> Date : </label>
  28. <input type="date" /><br>
  29. <br>
  30.  
  31. <label for="telephone"> Numero de telephone : </label>
  32. <input type="tel" /><br>
  33. <br>
  34. </fieldset>
  35. <br>
  36.  
  37. <fieldset>
  38. <legend>Indentification :</legend>
  39. <label for="pseudo">Votre pseudo :</label>
  40. <input type="text" name="pseudo" id="pseudo" /><br>
  41. <br>
  42.  
  43.  
  44. <label for="pass">Votre mot de passe :</label>
  45. <input type="password" name="pass" id="pass" /> <br>
  46. <br>
  47. </fieldset>
  48. <br>
  49.  
  50. <input type="submit" value="Envoyer">
  51. <INPUT TYPE=RESET VALUE="Effacer">
  52. </form>
  53.  
  54. <ul class="navbar">
  55. <li><a href="mapage.html" rel="nofollow noopener noreferrer" target="_blank">Index</a>
  56. <li><a href="souspartie.html" rel="nofollow noopener noreferrer" target="_blank">Premiere Partie</a>
  57. <li><a href="souspartie2.html" rel="nofollow noopener noreferrer" target="_blank">Deuxieme Partie</a>
  58. </ul>
  59.  
  60. </body>
  61. </html>


Et mon document traitement.php :
Spoiler
  1. <?php
  2. // Parametres mysql à remplacer par les vôtres
  3. define('DB_SERVER', 'localhost'); // serveur mysql
  4. define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
  5. define('DB_SERVER_PASSWORD', ''); // mot de passe
  6. define('DB_DATABASE', 'projet_numeca'); // nom de la base
  7.  
  8. // Connexion au serveur mysql
  9. $base= mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE);
  10.  
  11. /* Vérification de la connexion */
  12. printf("Échec de la connexion : %s\n", mysqli_connect_error());
  13. exit();
  14. }
  15.  
  16.  
  17.  
  18. $msg_erreur = "Erreur. Les champs suivants doivent etre obligatoirement remplis :<br/><br/>";
  19. $msg_ok = "Votre demande a bien été prise en compte.";
  20. $message = $msg_erreur;
  21.  
  22. // vérification des champs
  23. if (isset($_POST['entreprise']))
  24. {
  25. $entreprise = stripslashes($_POST['entreprise']); // On enlève les slashs qui se seraient ajoutés automatiquement
  26. $entreprise = htmlspecialchars($entreprise); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  27. $entreprise = nl2br($entreprise); // On crée des <br /> pour conserver les retours à la ligne
  28.  
  29. // On fait passer notre texte à la moulinette des regex
  30. $entreprise = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $entreprise);
  31. $entreprise = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $entreprise);
  32. $entreprise = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $entreprise);
  33. $entreprise = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0" rel="nofollow noopener noreferrer" target="_blank">$0</a>', $entreprise);
  34.  
  35. // Et on affiche le résultat. Admirez !
  36. echo $entreprise . '<br /><hr />';
  37. }
  38. if (isset($_POST['materiels']))
  39. {
  40. $materiels = stripslashes($_POST['materiels']); // On enlève les slashs qui se seraient ajoutés automatiquement
  41. $materiels = htmlspecialchars($materiels); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  42. $materiels = nl2br($materiels); // On crée des <br /> pour conserver les retours à la ligne
  43.  
  44. // On fait passer notre texte à la moulinette des regex
  45. $materiels = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $materiels);
  46. $materiels = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $materiels);
  47. $materiels = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $materiels);
  48. $materiels = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0" rel="nofollow noopener noreferrer" target="_blank">$0</a>', $materiels);
  49.  
  50. // Et on affiche le résultat. Admirez !
  51. echo $materiels . '<br /><hr />';
  52. }
  53. if (isset($_POST['piece']))
  54. {
  55. $piece = stripslashes($_POST['piece']); // On enlève les slashs qui se seraient ajoutés automatiquement
  56. $piece = htmlspecialchars($piece); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  57. $piece = nl2br($piece); // On crée des <br /> pour conserver les retours à la ligne
  58.  
  59. // On fait passer notre texte à la moulinette des regex
  60. $piece = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $piece);
  61. $piece = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $piece);
  62. $piece = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $piece);
  63. $piece = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0" rel="nofollow noopener noreferrer" target="_blank">$0</a>', $piece);
  64.  
  65. // Et on affiche le résultat. Admirez !
  66. echo $piece . '<br /><hr />';
  67. }
  68. if (isset($_POST['date']))
  69. {
  70. $date = stripslashes($_POST['date']); // On enlève les slashs qui se seraient ajoutés automatiquement
  71. $date = htmlspecialchars($date); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  72. $date = nl2br($date); // On crée des <br /> pour conserver les retours à la ligne
  73.  
  74. // On fait passer notre texte à la moulinette des regex
  75. $date = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $date);
  76. $date = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $date);
  77. $date = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $date);
  78. $date = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0" rel="nofollow noopener noreferrer" target="_blank">$0</a>', $date);
  79.  
  80. // Et on affiche le résultat. Admirez !
  81. echo $date . '<br /><hr />';
  82. }
  83. if (isset($_POST['pseudo']))
  84. {
  85. $pseudo = stripslashes($_POST['pseudo']); // On enlève les slashs qui se seraient ajoutés automatiquement
  86. $pseudo = htmlspecialchars($pseudo); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  87. $pseudo = nl2br($pseudo); // On crée des <br /> pour conserver les retours à la ligne
  88.  
  89. // On fait passer notre texte à la moulinette des regex
  90. $pseudo = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $pseudo);
  91. $pseudo = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $pseudo);
  92. $pseudo = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $pseudo);
  93. $pseudo = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0" rel="nofollow noopener noreferrer" target="_blank">$0</a>', $pseudo);
  94.  
  95. // Et on affiche le résultat. Admirez !
  96. echo $pseudo . '<br /><hr />';
  97. }
  98. if (isset($_POST['pass']))
  99. {
  100. $pass = stripslashes($_POST['pass']); // On enlève les slashs qui se seraient ajoutés automatiquement
  101. $pass = htmlspecialchars($pass); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  102. $pass = nl2br($pseudo); // On crée des <br /> pour conserver les retours à la ligne
  103.  
  104. // On fait passer notre texte à la moulinette des regex
  105. $pass = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $pass);
  106. $pass = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $pass);
  107. $pass = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $pass);
  108. $pass = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0" rel="nofollow noopener noreferrer" target="_blank">$0</a>', $pass);
  109.  
  110. // Et on affiche le résultat. Admirez !
  111. echo $pass . '<br /><hr />';
  112. }
  113.  
  114. if (isset($_POST['telephone']))
  115. {
  116. $telephone = stripslashes($_POST['telephone']); // On enlève les slashs qui se seraient ajoutés automatiquement
  117. $telephone = htmlspecialchars($telephone); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  118. $telephone = nl2br($telephone); // On crée des <br /> pour conserver les retours à la ligne
  119.  
  120. // On fait passer notre texte à la moulinette des regex
  121. $telephone = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $telephone);
  122. $telephone = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $telephone);
  123. $telephone = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $telephone);
  124. $telephone = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0" rel="nofollow noopener noreferrer" target="_blank">$0</a>', $telephone);
  125.  
  126. // Et on affiche le résultat. Admirez !
  127. echo $telephone . '<br /><hr />';
  128. }
  129.  
  130. $sql = "INSERT INTO projet_numeca VALUES ('', '".$entreprise."', '".$materiels."', '".$piece."', '".$pseudo."','".$pass."', now())";
  131. $res = mysql_query($sql);
  132.  
  133. if ($res) {
  134. echo $msg_ok;
  135. } else {
  136. echo mysql_error();
  137. }
  138. ?>


Énonciation des problèmes rencontrer :

Et donc quand je remplis mon formulaire et que je fais "envoyer" :

1 - Ca m'envois directement sur
Spoiler
  1. http://127.0.0.1/edsa-Projet/traitement.php


2 - J'ai tous ca qui s'affiche :
Spoiler
  1. auchan
  2. bois, fer
  3. turbine
  4. pseudo
  5. mdp
  6.  
  7. Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\traitement.php on line 132
  8.  
  9. Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\traitement.php on line 132
  10.  
  11. Warning: mysql_query(): A link to the server could not be established in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\traitement.php on line 132
  12. Access denied for user ''@'localhost' (using password: NO)


J'arrive donc a avoir le résultat de "entreprise", "materiels", "Piece", "pseudo", "mdp".
Sauf que je les reçois pas sur ma base de donnée mais juste après avoir remplis mon formulaire. (a la vue de tous ?)

3 - Mon formulaire n'envoit aucun résultat a ma base de données qui est pourtant bien définit.

Merci de votre aide et si il vous faut des indications pour résoudre ce problème dites le moi.
Au revoir.

Autres pages sur : probleme mise relation formulaire basededonnee erreur

7 Mars 2017 21:44:42

Bonsoir,

1) utilises une connexion mysqli avec enregistrement du lien vers la base dans une variable, car oui, il faudra mettre le lien vers la base dans chaque requête.
  1. $GLOBALS["dblink"]=mysqli_connect('hote','user','motpasse','base');


2) puis utilises des mysqli_query et mysqli_fetch_array
  1. $res=mysqli_query($GLOBALS["dblink"],$rek);
  2. $row=mysqli_fetch_array($res,MYSQLI_ASSOC);


d'autre part, vu que tu fait des echo, normal que tout s'affiche.
enfin, pour stocker les identifiant user/mot de passe, il pourrait être utile de hasher et saler le mot de passe. (avec éventuellement un sel aléatoire pour chaque user, stocké dans la base ou ailleurs)
m
0
l

Meilleure solution

19 Mars 2017 22:41:30

Bonjour,

Effectivement comme le dit VaderFR, le problème viens du fais que tu n'utilise pas ton "instance" de bdd pour envoyer t'es donner a ta base ...

Tu devrais arrêter d'utiliser les fonction mysql de php et plutôt passer sur la PDO ...
http://php.net/manual/fr/book.pdo.php ( et bien d'autre tuto disponible avec les term "php pdo" sur google ;)  )
Beaucoup plus sécurisé et optimiser ... ( et pas déprécier ^^ )
partage
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS