Probleme ecriture dans mysql depuis formulaire

[Résolu]
Signaler
Messages postés
46
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 février 2009
-
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
-
Bonjour,
J'ai un formulaire qui envoie des données par post à une page php afin que celles-ci soient écrites dans une bdd mysql. Je ne l'ai testé que sur easyphp(en local) peut-être que ceci peut expliquer le probleme mais voici ce que j'obtiens une fois le formyulaire envoyé :
Notice: Undefined variable: company in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: company in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: lastname in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: address in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: zipcode in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: city in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: country in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: tel in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: fax in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: email in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: activity in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: size in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: destination in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: comments in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 32

Notice: Undefined variable: company in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: lastname in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: address in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: zipcode in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: city in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: country in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: tel in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: fax in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: email in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: activity in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: size in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: destination in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

Notice: Undefined variable: comments in C:\Program Files\EasyPHP 2.0b1\www\modif\posttarif.php on line 39

voici le code du formpulaire :
 <form action= "posttarif.php" method="post" enctype="text/plain">
                    Société:&nbsp;&nbsp;&nbsp;
                   
                   

                    Contact
                   

                    Prénom:&nbsp;&nbsp;
                   
                   

                    Nom:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                   
                   

                    Adresse:&nbsp;
                   
                   

                    CP:
                   
                    &nbsp;
                    Ville:
                   
                   

                    Pays:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    <select name ="country">
                    <option value= "vide"></option>
                    <option value="france">France</option>
                    <option value="madagascar">Madagascar</option>
                    <option value="mauritius">Maurice</option>
                    <option value="morocco">Maroc</option>
                    <option value="others">Autres</option>
                    <option value="multiple">Plusieurs</option>
                    </select>
                   

                    Tel:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                   
                   

                    Fax:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                   
                   

                    e-mail:&nbsp;&nbsp;&nbsp;&nbsp;
                   
                   

                    </fieldset>
                   

                   
                   

                   

                    <fieldset>
                       <legend>
                        Activité:
                       </legend>

                   

                    Centre d'Appels
                   

                    Hotels
                   

                    Call shop
                   

                    Autres activités

                   

                    Nombre de postes:
                    <select name ="size">
                    <option value= "vide"></option>
                    <option value="0-5">moins de 5</option>
                    <option value="5-10">5 à 10</option>
                    <option value="10-30">10 à 30</option>
                    <option value="30">Plus de 30</option>
                    </select>

                   

                    DESTINATION: &nbsp;&nbsp;APPELS VERS:
                   

                    France (principalement)
                   

                    Europe Occidentale (principalement)
                   

                    USA/Canada (principalement)
                   

                    Autres
                   

                    Toutes destinations
                   

                    COMMENTAIRE:
                   

                    <textarea rows ="5" cols="40" name="comments" value="comment">
                    </textarea>

                    </fieldset>

                     </form>

et voici le code de la page d'ecriture dans la base mysql :
<?php
include ("config.php");

if(isset($_POST['company']))      $company=$_POST['company'];

if(isset($_POST['firstname']))      $company=$_POST['firstname'];

if(isset($_POST['lastname']))      $lastname=$_POST['lastname'];

if(isset($_POST['address']))      $address=$_POST['address'];

if(isset($_POST['zipcode']))      $zipcode=$_POST['zipcode'];

if(isset($_POST['city']))      $city=$_POST['city'];

if(isset($_POST['country']))      $country=$_POST['country'];

if(isset($_POST['tel']))      $tel=$_POST['tel'];

if(isset($_POST['fax']))      $fax=$_POST['fax'];

if(isset($_POST['email']))      $email=$_POST['email'];

if(isset($_POST['activity']))      $activity=$_POST['activity'];

if(isset($_POST['size']))      $size=$_POST['size'];

if(isset($_POST['destination']))      $destination=$_POST['destination'];

if(isset($_POST['comments']))      $comments=$_POST['comments'];

mysql_query("INSERT INTO tarifs VALUES('', $company, $company, $lastname, $address, $zipcode, $city, $country, $tel, $fax, $email, $activity, $size, $destination, $comments)");

mysql_close();
?>

Pourriez-vous m'aider à résoudre ce problème ?
Merci d'avance pour votre aide.

15 réponses

Messages postés
46
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 février 2009

J'ai trouvé !!!
j'ai supprimé la balise enctype dans le form et ca a marché.
Merci beaucoup pour l'aide que tu m'as donné !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Mince, mon clavier marche de plus en plus mal...

L'attribut enctype sert a définir le type des données envoyés...

Pourquoi elle bloquait les données, ça je ne le sais pas...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Salut,

Ba je veus bien t'aider mais ça serai bien qu'on sache quelle est la ligne 32 et quelle est la ligne 39...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
46
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 février 2009

ok dsl,
L 32 : mysql_query("INSERT INTO tarifs VALUES('',
$company, $company, $lastname, $address, $zipcode, $city, $country,
$tel, $fax, $email, $activity, $size, $destination, $comments)");

Je n'ai pas mis cette partie de la page qui contient la l39 pensant qu'elle était etrangere au probleme :
$email_dest="mail@mail.com";
$sujet="Demande de tarif ";
$headers="From: ' demande de tarif'";
L 39: $message="Company : $company\n Firstname : firstname\n Lastname : $lastname\n Address : $address\n Zipcode : $zipcode\n City : $city\n Country : $country\n Tel : $tel\n Fax : $fax\n Email : $email\n Activity : $activity\n Size : $size\n Destination : $destination\n Comments : $comments\n  \n.";
mail($email_dest,$sujet,$message,$headers);
echo'Votre demande a bien été envoyé';

Merci
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Remplace :

mysql_query("INSERT INTO tarifs VALUES('', $company,ETC...

Par :

mysql_query("INSERT INTO tarifs VALUES('', '".$company."', ETC...

Par contre les pb ne viennent pas de la...

Tes variables ne sont pas déclarés ce qui veut dire que la page php que tu m'as donné n'est pas posttarif.php...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
46
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 février 2009

posttarif.php est maintenant comme ceci :
mysql_query("INSERT INTO tarifs VALUES('','".$company."','".$lastname."', '".$address."', '".$zipcode."', '".$city."', '".$country."', '".$tel."', '".$fax."', '".$email."', '".$activity."', '".$size."', '".$destination."', '".$comments."')");

J'ai reverifié la page que j'ai donné est bien posttarif.php. Serait-ce possible que je declare mes variables trop tot ou que cela vienne tout simplement de easyphp ?
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
es ce que tes fichiers sont dans le même dossier ?

Peut être que ça vient d'easyphp... a tester...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
46
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 février 2009

J'ai essayé sur mon site perso en ligne je n'ai pas eu de message d'erreur mais je n'ai trouvé aucune données dans ma table.
Messages postés
46
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 février 2009

Enfaites, il ne m'affiche plus le probleme de variable je n'ai plus le message d'erreurs, le code mysql_query fonctionne mais les champs ajoutés dans la bdd sont vides !
En fouillant un peu sur le web j'ai vu quelqu'un qui utilisait cette methode pour recuperer les variables, voici ce que ca donnerait sur mon code :
mysql_query("INSERT INTO tarifs VALUES('', '$_POST[company], etc)");
Ca pourrait être une solution ?
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
c'est exactement la même chose que ce que tu fais...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
46
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 février 2009

Ok,
Cest vraiment bizarre c'est comme ci les données du formulaire n'arrive pas au php. Je ne voix pas mais peut-être que j'ai mal fait le formulaire.
Merci encore pour le temps que tu m'accordes !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
Franchement je ne vois pas...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
36
De rien, justement le dernier message je voulas te mettre ça et puis je me suis sentie con, je me suis dit, que j'allai avor l'air con de dire que ça ne marchait pas a cause d'un attribut...

a++

PS : met ta réponse en réponse acceptée...

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
46
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 février 2009

A quoi sert la balise enctype et pourquoi elle bloquait les données ?
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
27
Une explication ici :
http://www.mediasfrance.org/Activite/Formation/Informatique/sgbd/cours009.html
(voir le paragraphe "ENCTYPE")

(Résumé ici)
ENCTYPE spécifie l'encodage utilisé pour la forme que prendra le contenu du formulaire. Ce paramètre ne peut être utilisé qu'accompagné par la méthode POST. ENCTYPE peut prendre plusieurs valeurs:
<li>ENCTYPE= " application/x-www-form-urlencoded " valeur par défaut; encode le contenu du formulaire selon une forme URL qui est difficilement lisible par le destinataire;
</li><li>ENCTYPE ="text/plain" le contenu du formulaire sera retourné en format texte lisible par le destinataire; option accompagnée le plus souvent de ACTION=mailto:
</li><li>ENCTYPE="multipart/form-data" permet d'expédier un fichier attaché au message.</li>