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

  FORUM HardWare.fr
  Programmation
  PHP

  requete sql non envoyé au serveur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requete sql non envoyé au serveur

n°2174524
Alkenia
Posté le 07-02-2013 à 14:48:42  profilanswer
 

Salut tous le monde,
 
je me permet de vous deranger pour une aide sur l'envoie a ma base de donnée de requete pour créer supprimer et modifier une table.
 
Alors voila je cherche a créer un utilisateur via se formulaire :
 

Code :
  1. <form action="Inscription.php" method="post">
  2.         <fieldset><legend>Inscription</legend>
  3.          <table>
  4.            <tr>
  5.               <td><label for="Nom_USER"><strong>Nom*</strong></label></td>
  6.               <td><input type="text" name="Nom_USER" id="Nom_USER" required autofocus/></td>
  7.            </tr>
  8.             <tr>
  9.               <td><label for="Email_USER"><strong>Email*</strong></label></td>
  10.               <td><input type="email" name="Email_USER" id="Email_USER" required placeholder=" exemple@rpb43.com"/></td>
  11.            </tr>
  12.             <tr>
  13.               <td><label for="Password_USER"><strong>Mot de Passe*</strong></label></td>
  14.               <td><input type="Password" name="Password_USER" id="Password_USER" required/></td>  
  15.            </tr>
  16.             <p>Le mot de passe doit contenir des chiffres et des lettres et faire minimun 6 caractères.</p>
  17.            <tr>
  18.               <td><label for="Adresse_USER"><strong>Adresse*</strong></label></td>
  19.               <td><input type="text" name="Adresse_USER" id="Adresse_USER"required/></td>
  20.            </tr>
  21.             <tr>
  22.               <td><label for="CodePostal_USER"><strong>Code Postal*</strong></label></td>
  23.               <td><input type="text" name="CodePostal_USER" id="CodePostal_USER"required/></td>
  24.            </tr>
  25.             <tr>
  26.               <td><label for="Ville_USER"><strong>Ville*</strong></label></td>
  27.               <td><input type="text" name="Ville_USER" id="Ville_USER"required/></td>  
  28.            </tr>
  29.            <tr>
  30.               <td><label for="Telephone_USER"><strong>Telephone*</strong></label></td>
  31.               <td><input type="tel" pattern="^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\
  32. d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$" name="Telephone_USER" id="Telephone_USER"required placeholder="0471000000"/></td>
  33.            </tr>
  34.             <tr>      
  35.               <td><label for="Fax_USER"><strong>Fax</strong></label></td>
  36.               <td><input type="text" name="Fax_USER" id="Fax_USER"/></td>              
  37.            </tr>  
  38.         </table>
  39.                 </fieldset>          
  40.         <input type="image" name="inscription" src="Image/enregistrer.png" alt="Go"/>        
  41.         </form>


 
Je recupere ensuite les données avec un $_POST pour envoyer les bonnes valeur a ma BDD avec ce code php :
 

Code :
  1. if(isset($_POST["inscription"])){
  2.  
  3.   // On regarde si tout les champs sont remplis. Sinon on lui affiche un message d'erreur.  
  4.   if($_POST["Email_USER"] == NULL OR $_POST["Password_USER"] == NULL OR $_POST["Nom_USER"] == NULL OR $_POST["Adresse_USER"] == NULL OR $_POST["Ville_USER"] == NULL OR $_POST["CodePostal_USER"] == NULL OR $_POST["Telephone_USER"] == NULL){
  5.          
  6.      echo "Vous devez remplir tout les champs suivi * !";
  7.   }
  8.     elseif (strlen($_POST['Password_USER']) < 6) { echo'le mot de passe doit contenir minimun 6 caractères'; }
  9.   // Sinon si tout les champs sont remplis alors on recupère les données des champs du formulaire et on l'insere dans la table user pour créer un nouvel utilisateur.
  10.   else{
  11.      $sql = "INSERT INTO USER (Id_USER ,Nom_USER ,Password_USER ,Email_USER ,Adresse_USER ,CodePostal_USER ,Ville_USER ,Telephone_USER ,Fax_USER)
  12.                 VALUES (NULL, '".$_POST['Nom_USER']."', '".$_POST['Password_USER']."', '".$_POST['Email_USER']."', '".$_POST['Adresse_USER']."', '".$_POST['CodePostal_USER']."', '".$_POST['Ville_USER']."', '".$_POST['Telephone_USER']."', '".$_POST['Fax_USER']."'); ";
  13.      
  14.      mysql_query($sql) or die ('Erreur SQL !'.$sql.'</br>'.mysql_error());
  15.     }
  16. }


 
Ce code ne m'affiche aucune erreur mais rien ne se passe au niveau de ma base de données. La connexion est bonne puisque je peux me connecter sur mon site en admin ou non.

Message cité 1 fois
Message édité par Alkenia le 07-02-2013 à 14:50:01
mood
Publicité
Posté le 07-02-2013 à 14:48:42  profilanswer
 

n°2174556
dwogsi
Défaillance cérébrale...
Posté le 07-02-2013 à 15:55:52  profilanswer
 

Qu'as tu testé déjà ?

 

D'abord, vérifier si tu rentre dans les if ou non.

 

Si oui, echo $sql pour récupérer la requête et regarde si elle est correcte. Essaie de la passer dans ton "admin".

 

Fait quand même un echo mysql_error() même si mysql_query() ne renvoie pas false.


Message édité par dwogsi le 07-02-2013 à 15:56:20

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°2174563
Alkenia
Posté le 07-02-2013 à 16:14:48  profilanswer
 

Je n'ai rien tester par ce que je vois pas pourquoi ce ne marche pas. Il y a pas si longtemps tous marcher correctement mais maintenant ca ne marche plus. Et j'ai tous verifier connexion BDD, syntax ...
 
Je vais regarder si je rentre dans mes if je vous tiens au courant. Et je mettrai mysql_error()

n°2174567
Alkenia
Posté le 07-02-2013 à 16:21:24  profilanswer
 

Alors je ne peux pas regarder si je rentre das un if car au moment du clique tous se passe en 1sec et reviens comme au debut. Pour le mysql_error il y est en fin mais pareil aucune erreur sql ou autre je ne comprend pas

n°2174596
dwogsi
Défaillance cérébrale...
Posté le 07-02-2013 à 17:33:08  profilanswer
 

Pour savoir si tu passes aux bons endroits de ton code, tu n'as qu'a mettre des die('ok'); par exemple.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°2174601
Alkenia
Posté le 07-02-2013 à 17:49:17  profilanswer
 

Comment dire, quand je clique sur mon bouton pour envoyer les valeur a ma BDD l'action se passe en une fraction de seconde et recharge la page dans son état initial si tous c'est bien passer donc je ne voie jamais mon ok avec le die('ok')

n°2174602
Volkhen
Posté le 07-02-2013 à 17:55:22  profilanswer
 

Alkenia a écrit :

Salut tous le monde [...]

Code :
  1. if(isset($_POST["inscription"])){
  2.      $sql = "INSERT INTO USER (Id_USER ,Nom_USER ,Password_USER ,Email_USER ,Adresse_USER ,CodePostal_USER ,Ville_USER ,Telephone_USER ,Fax_USER)
  3.                 VALUES (NULL, '".$_POST['Nom_USER']."', '".$_POST['Password_USER']."', '".$_POST['Email_USER']."', '".$_POST['Adresse_USER']."',
  4. '".$_POST['CodePostal_USER']."', '".$_POST['Ville_USER']."', '".$_POST['Telephone_USER']."', '".$_POST['Fax_USER']."'); ";




 :fou:  [:neernitt]


Message édité par Volkhen le 07-02-2013 à 17:55:54

---------------
Main/Alt1/Alt2/Alt3
n°2174604
Alkenia
Posté le 07-02-2013 à 17:58:58  profilanswer
 

Oui quel est le probleme ?

n°2174611
Volkhen
Posté le 07-02-2013 à 18:13:29  profilanswer
 

Pour le problème d'origine, je pencherais pour le <input type="image" qui préfèrerait un type="submit" dans un premier temps.
 
Une fois que ça passe dans la partie qui enregistre, je te conseilles de tester avec un utilisateur qui habiterait pas exemple au "38 rue de l'Armée". Puis tu pourras faire une recherche google sur "requête préparées" / "parameterized statements" et PDO pour une application en php.
Et surtout, on n'enregistre pas un mot de passe en clair dans une base de données ! On le hashe avec bcrypt (pas md5, pas sha1, bcrypt).


---------------
Main/Alt1/Alt2/Alt3
n°2174613
Alkenia
Posté le 07-02-2013 à 18:31:11  profilanswer
 

Alors pour le type image il fonctionne comme le type submit.  
Pour le cryptage de mot de passe je verrai mais rien n'est très important donc même si ils sont perdu c'est pas très grave. De toute manière c'est avec un compte administrateur qu'on enregistre les nouveaux membres.
 
Qu'est ce que le PDO j'ai vue sa sur plusieurs site mais je ne comprend pas trop la différence avec une utilisation des mysql_
Pour l'exemple je verrai plus tard ce qui m'importe pour le moment c'est de pouvoir créer simple utilisateur sans rien de compliqué =) (sachant que les adresse sont des entreprise donc rarement des 38 rue ... et au pire la saisie se fera sans apostrophe.

mood
Publicité
Posté le 07-02-2013 à 18:31:11  profilanswer
 

n°2174619
xaeon
Profil: TT
Posté le 07-02-2013 à 19:17:12  profilanswer
 

Hello  :hello:  pour savoir si tu rentres dans tes tests c'est simple :  

Code :
  1. if(test){
  2. echo ...
  3. exit(0);
  4. }
  5. elseif(test){
  6. }
  7. else{
  8. $sql = ...
  9. echo $sql;
  10. exit(0);
  11. }


 
Ensuite quelques remarques :  
1. tu récupères les données sans les filtrer directement depuis $_POST/$_GET c'est t'exposer à entrer des données non conformes à ce que tu attends.
2. les passwords en clair c'est dangereux et je ne vois pas en quoi le fait que ce soit une compte admin qui fasses les INSERT soit une "protection".
3. les méthodes mysql sont désormais dépréciées http://www.php.net/manual/fr/mysql [...] oosing.php
4. pourquoi ne pas regarder les logs de PHP qui seront sans doute plus explicites qu'une recherche pas tâtonnements

n°2174651
Alkenia
Posté le 08-02-2013 à 08:40:59  profilanswer
 

Je vais essayer ce que tu me dis.
 
Pour les test je me répète pas besoin puisque c'est moi qui rentrer les données donc toujours dans le bon format.
Ensuite pour les pass je les crypterai si besoin mais les informations qui sont stocker pour chaque compte ne sont pas très dangereuse si elle se font hacker. Je vais mettre en place le PDO pour que je sois a jour mais pensez-vous que le faite que mes requete marche pas viennes du faite que j'utilise mysql_ ?

n°2174652
Alkenia
Posté le 08-02-2013 à 08:57:00  profilanswer
 

Je regarde un peu partout sur le net mais je ne comprend rien a comment mettre en place un PDO. Qu'est ce que ce fichier php.ini ? je ne le vois pas chez moi. Ou aussi phpinfo() ?

n°2174658
rufo
Pas me confondre avec Lycos!
Posté le 08-02-2013 à 09:22:50  profilanswer
 

if ($_POST['...'] == null)  ne va pas marcher. Si le champ est vide, $_POST['...'] va valoir chaîne vide et non null. Il vaut mieux utiliser empty() (par contre à éviter si ton champ peut valoir 0) ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2174668
Alkenia
Posté le 08-02-2013 à 10:29:17  profilanswer
 

Oui j'ai fais quelque modif dont celle ci ^^
 
Et j'ai mis en place mysqli_ car PDO était trop compliqué


Message édité par Alkenia le 08-02-2013 à 10:29:48
n°2174702
Alkenia
Posté le 08-02-2013 à 11:36:17  profilanswer
 

Problème résolut tout venez du faite que si je ne rentrer pas de donnée dans Fax il m'enregistrer pas. Merci pour votre aide ça ma beaucoup aider surtout les exit(0) ^^. Sur ce bonne continuation et a bientot peut être

n°2176636
deejay59
Posté le 20-02-2013 à 16:46:08  profilanswer
 

Un conseil revoit ta requete car on peut faire de l'injection.


Message édité par deejay59 le 20-02-2013 à 16:47:17

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

  requete sql non envoyé au serveur

 

Sujets relatifs
[SQL] Requete gestion stock ???Une requête SQL qui finit en OR DIE sans que je comprenne pourquoi...
lien vers un fichier d'une partition sur un serveurFaire défiler le résultat d'une requête
problème client-serveur (socket)Requete ACCESS avec Jointure entre 2 Tables
Requette Mysql sur serveur mutualisé ovhsite en HTML pour serveur web embarqué
programmation d'un serveur par socket en C++Architecture Client - Serveur : Tableau Collaboratif
Plus de sujets relatifs à : requete sql non envoyé au serveur


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