IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

impossible d'envoyer une requete sql via un formulaire


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut impossible d'envoyer une requete sql via un formulaire
    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 html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <form action="Inscription.php" method="post">
             <fieldset><legend>Inscription</legend>
    		 <table>
                <tr>
                   <td><label for="Nom_USER"><strong>Nom*</strong></label></td>
                   <td><input type="text" name="Nom_USER" id="Nom_USER" required autofocus/></td>
                </tr>
    			<tr>
                   <td><label for="Email_USER"><strong>Email*</strong></label></td>
                   <td><input type="email" name="Email_USER" id="Email_USER" required placeholder=" exemple@rpb43.com"/></td>
                </tr>
    			<tr>
                   <td><label for="Password_USER"><strong>Mot de Passe*</strong></label></td>
                   <td><input type="Password" name="Password_USER" id="Password_USER" required/></td> 
                </tr>
    			<p>Le mot de passe doit contenir des chiffres et des lettres et faire minimun 6 caractères.</p>
                <tr>
                   <td><label for="Adresse_USER"><strong>Adresse*</strong></label></td>
                   <td><input type="text" name="Adresse_USER" id="Adresse_USER"required/></td>
                </tr>
    			<tr>
                   <td><label for="CodePostal_USER"><strong>Code Postal*</strong></label></td>
                   <td><input type="text" name="CodePostal_USER" id="CodePostal_USER"required/></td>
                </tr>
    			<tr>
                   <td><label for="Ville_USER"><strong>Ville*</strong></label></td>
                   <td><input type="text" name="Ville_USER" id="Ville_USER"required/></td> 
                </tr>
                <tr>
                   <td><label for="Telephone_USER"><strong>Telephone*</strong></label></td>
                   <td><input type="tel" pattern="^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\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>
                </tr>
    			<tr>      
                   <td><label for="Fax_USER"><strong>Fax</strong></label></td>
                   <td><input type="text" name="Fax_USER" id="Fax_USER"/></td>              
                </tr>  
    		</table>
    				</fieldset>		 
             <input type="image" name="inscription" src="Image/enregistrer.png" alt="Go"/>		
     
     
    		</form>

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

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    if(isset($_POST["inscription"])){
     
       // On regarde si tout les champs sont remplis. Sinon on lui affiche un message d'erreur.   
       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){
     
          echo "Vous devez remplir tout les champs suivi * !";
       } 
    	elseif (strlen($_POST['Password_USER']) < 6) { echo'le mot de passe doit contenir minimun 6 caractères'; }
       // 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.
       else{
          $sql = "INSERT INTO USER (Id_USER ,Nom_USER ,Password_USER ,Email_USER ,Adresse_USER ,CodePostal_USER ,Ville_USER ,Telephone_USER ,Fax_USER)
    				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']."'); ";
     
          mysql_query($sql) or die ('Erreur SQL !'.$sql.'</br>'.mysql_error());
    	}
    }

    Voila en espérant trouver une âme charitable qui pourra m'aider, je vous souhaite une excellente mâtiné !

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Points : 100
    Points
    100
    Par défaut
    Peux tu nous dire où est ce que tu bloques précisément?

    ( Je ne vois pas de bouton submit à la fin de ton formulaire )

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    @10903513 : si, l'input de type image.

    Citation Envoyé par Alkenia
    je vous souhaite une excellente mâtiné !
    Citation Envoyé par dictionnaire
    Mâtiné : Se dit d'un chien qui n'est pas de race pure [Zoologie]. Synonyme bâtard
    Merci, c'est sympa...

    A part ça, tes conditions de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($_POST["Email_USER"] == NULL ...)
    seraient avantageusement remplacées par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty($_POST["Email_USER"]) ...)
    Mais effectivement, tu ferais mieux d'expliquer ton problème au lieu d'essayer de nous le faire deviner...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par 10903513 Voir le message
    ( Je ne vois pas de bouton submit à la fin de ton formulaire )
    Tu peux soumettre un formulaire via un bouton image aussi ce qui est son cas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          $sql = "INSERT INTO USER (Id_USER ,Nom_USER ,Password_USER ,Email_USER ,Adresse_USER ,CodePostal_USER ,Ville_USER ,Telephone_USER ,Fax_USER)
                    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']."'); ";
    Y'a pas mieux pour se faire hacker, je te conseille d'user (et d'abuser) de mysql_real_escape_string pour protéger tes données (voir passer sous mysqli ou PDO Mysql vu que l'extension mysql_ est dépréciée).
    De même, vérifier bien la consistance de tes données en PHP avant insertion (mon numéro de téléphone est bien construit sur le bon format ? Ma ville est bien une chaîne de caractère ? Mon code postal est bien un nombre ? etc) pour éviter de compromettre l'intégrité de ta base.
    Ne jamais faire confiance aux sécurités mises côté client !

    Concernant ton soucis, comme le dit 10903513, indiques nous plus précisément où tu bloques ? Tu as une erreur php ? Une erreur SQL ? Pas d'erreur mais l'insertion ne se fait pas ? ... ?
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Désolé pour la mâtiné le correcteur me la corrigé comme ça j'ai pas fais plus attention

    Pour le souci de test pour savoir ou non si c'est bien un numero de tel ext ... il y a des balises html5 qui gére ça exemple :

    <input type="email"> la saisie doit comprendre une chaine un @ et une chaine.
    Pour le numéro de tel j'ai mis un pattern pour vérifier que se sont bien des numéro de rentré.
    Mais de toutes façon les inscriptions se font via un compte administrateur.

    Pour la sécurité avec un mysql_real_escape_string je ne connaissais pas cette fonction je chercherai comment la mettre en place.

    Ensuite mon probleme c'est que lorsque je clique sur le bouton "image" qui marche pareil qu'un submit, il n'y a pas d'erreur sql tous se passe comme il faut mais rien ne change dans ma bdd. Ma connection a ma bdd est bonne puisque je peux me connecter sans problème a mon site en tant qu'admin

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 65
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par Alkenia Voir le message

    Pour le souci de test pour savoir ou non si c'est bien un numero de tel ext ... il y a des balises html5 qui gére ça exemple :

    <input type="email"> la saisie doit comprendre une chaine un @ et une chaine.
    Pour le numéro de tel j'ai mis un pattern pour vérifier que se sont bien des numéro de rentré.
    Ceci ne garanti en rien que ce qui arrive a ton php est bon
    (toujours vérifier les valeur cote php pour la sécurité)
    cote HTML cela sert juste a de l'indication pour le client, bien aussi mais pas pour les mêmes raisons


    Sinon :
    1: es-tu sur que le formulaire s'envoi bien?
    2: que tu arrive jusqu’à ta requête SQL?
    3: que tu as bien fait un mysql_connect plus haut?
    4: que ta requête SQL est bonne?

    Sinon
    Citation Envoyé par Alkenia Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          $sql = "INSERT INTO USER (Id_USER ,Nom_USER ,Password_USER ,Email_USER ,Adresse_USER ,CodePostal_USER ,Ville_USER ,Telephone_USER ,Fax_USER)
                    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']."'); ";
    vu que t'envoi NULL pour la colonne Id_USER qui a mon avis doit etre en auto Incrémente enlève ta colonne et le NULL dans ta requete

Discussions similaires

  1. [Débutant] [VB.NET] envoi de la date dans une requete SQL via ADO.NET
    Par yassine-art dans le forum ADO.NET
    Réponses: 2
    Dernier message: 28/04/2012, 13h08
  2. Réponses: 5
    Dernier message: 28/01/2010, 19h40
  3. Impossible d'exécuter une requete sql
    Par rimbaut dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/08/2007, 18h56
  4. [AJAX] Recharger une requete SQL via lien<a href>
    Par pinkdev dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/06/2007, 13h30
  5. XMLHttpRequest : impossible d'envoyer une requete si header spécifiée
    Par Bibouchat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/12/2006, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo