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

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2297368
luginoxi
Posté le 07-03-2017 à 19:09:50  profilanswer
 

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 :

Code :
  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. <body>  
  8.  <h1> Formulaire **** pour client. </h1>
  9. <form name="Formulaire" action="traitement.php" onsubmit="return validateForm()" method="post">
  10. <fieldset>
  11.  <legend>Informations de commande :</legend>
  12. <label for="societe">Nom de l'entrepise : </label>
  13. <input type="text" name="entreprise" id="entreprise"><br>
  14. <br>
  15. <label for="societe">Materiels necessaire : </label>
  16. <input type="text" name="materiels" id="materiels"><br>
  17. <br>
  18. <label for="piece">Nom de la piece : </label>  
  19. <input name="piece" id="NomPiece"></input> <br>
  20. <br>
  21. <label for="date"> Date : </label>
  22. <input type="date" /><br>
  23. <br>
  24. <label for="telephone"> Numero de telephone : </label>
  25. <input type="tel" /><br>
  26. <br>
  27.    </fieldset>
  28.    <br>
  29.    <fieldset>
  30.    <legend>Indentification :</legend>
  31. <label for="pseudo">Votre pseudo :</label>
  32.    <input type="text" name="pseudo" id="pseudo" /><br>
  33. <br>
  34. <label for="pass">Votre mot de passe :</label>
  35.    <input type="password" name="pass" id="pass" /> <br>
  36. <br>
  37.    </fieldset>
  38.    <br>
  39. <input type="submit" value="Envoyer">
  40. <INPUT TYPE=RESET VALUE="Effacer">
  41.   </form>
  42.  <ul class="navbar">
  43. <li><a href="mapage.html" rel="nofollow noopener noreferrer" target="_blank">Index</a>  
  44. <li><a href="souspartie.html" rel="nofollow noopener noreferrer" target="_blank">Premiere Partie</a>  
  45. <li><a href="souspartie2.html" rel="nofollow noopener noreferrer" target="_blank">Deuxieme Partie</a>  
  46. </ul>
  47. </body>
  48. </html>


 
Et mon document traitement.php :

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

 
 
Énonciation des problèmes rencontrer :
 
Et donc quand je remplis mon formulaire et que je fais "envoyer" :  
 
1 - Ca m'envois directement sur

Code :
  1. http://127.0.0.1/edsa-Projet/traitement.php

 
 
2 - J'ai tous ca qui s'affiche :

Code :
  1. auchan
  2. bois, fer
  3. turbine
  4. pseudo
  5. mdp
  6. 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
  7. 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
  8. 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
  9. 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.

mood
Publicité
Posté le 07-03-2017 à 19:09:50  profilanswer
 

n°2297372
the_bigboo
Posté le 07-03-2017 à 20:34:17  profilanswer
 

Alors... il y a pas mal de choses à dire...
 
Tout d'abord en ce qui concerne le problème avec la base de donnée.
Quand on configure une base de données, on y créé des utilisateurs pour se connecter de certains endroits uniquement.
Il existe par défaut un compte administrateur ayant tous les privilèges et pouvant faire tout ce qu'il veut.
 
Ton erreur indique que la connexion en tant que "root" sans mot de passe a été rejetée.
Il s'agit très probablement d'une règle de sécurité visant à obliger la saisie d'un mot de passe sur le compte administrateur de la base de données. On ne laisse JAMAIS un compte administrateur sans mot de passe.
Ensuite, il convient généralement de créer un utilisateur dédié pour les application qui vont se connecter à la base de données.
Mettre un mot de passe sur le compte "root" du serveur mysql devrait régler ton problème. Mais je te suggère vivement de créer un compte applicatif dédié avec une base de données également dédiée à ton application.
 
Et il y a d'autres problèmes dans ce que tu as posté ici :
 
- L'injection SQL...  
 
Il existe plein de documentation, mais pour te faire comprendre par l'exemple, regarde ce qui se passera lors de ton traitement (lorsque tu auras résolu ton problème de connexion) si tu saisis une apostrophe dans le nom de l'entreprise dans ton formulaire.. Si tu utilises une version récente de PHP (Sans l'option "magic quotes" par défaut), ta requête devrait échouer.
La documentation de mysqli_real_escape_string devrait t'aider à comprendre...
 
- fonctions mysql et mysqli
 
Tu fais des mixs : tu utilises une fonction "mysqli" pour la connexion, et une fonction de type "mysql" pour exécuter ta requête d'insert.
Comme le suggère PHP, tu devrais utiliser PDO, qui donne des méthodes natives de protection contre l'injection SQL et une implémentation objet de la connexion de base de données.
 
En espérant t'avoir aidé :jap:


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

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

 

Sujets relatifs
je trouve pas le probleme dans le codeProblème script javascript
Erreur d'exécution 9, l'indice n'appartient pas à la selectionxpadder probleme
probléme avec plugin que je voudrai absolument utiliséProbleme AJAX et JEE/servlet
Processing : Problème NullPointerExceptionProbleme d'afficheage de mon horloge
problème sur fichier launch.bat 
Plus de sujets relatifs à : Problème de mise en relation formulaire\BaseDeDonnée + Erreur.


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