Aide pour formulaire d'envoie php vers base de données

Eléphanteau du PHP | 19 Messages

01 avr. 2008, 19:01

1   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
3   <html>
4   <body>
5
6   <?php
7   $nomcli=$_POST['nomcli'];
8   $prenomcli=$_POST['prenomcli'];
9   $adressecli=$_POST['adressecli'];
10 $telcli=$_POST['telcli'];
11 $melcli=$_POST['melcli'];
12 $nores=$_POST['nores'];
13 $dateresdeb=$_POST['dateresdeb'];
14 $datefinres=$_POST['datefinres'];
15 $nogite=$_POST['nogite'];
16
17 echo "Cher(e) $nomcli $prenomcli,<br/>";
18 echo "Vous désirez réserver le gîte numéro $nogite.";
19
20 $db=mysql_connect("localhost", "root", "GSI")
21 or die("erreur de connection".mysql_error());
22
23 mysql_select_db("Gite du vertige",$db) or die("erreur de connection à la base Gite du vertige");
24
25 $sql="INSERT INTO client (nomcli, prenomcli, adressecli, telcli, melcli, nores)
26 VALUES ('$nomcli','$prenomcli','$adressecli','$telcli,'$melcli','$nores')";
27
28 mysql_query($sql);
29
30 $sql="INSERT INTO reservation (nores, dateresdeb , dateresfin, nogite)
31 VALUES ('$nores','$dateresdeb','$dateresfin','$nogite)";
32
33 mysql_query($sql);
34
35 echo "<br/><br/> Vos données ont bien été envoyées dans notre base de données.
36
37 mysql_close();
38 ?>
39 </body>
40 </html>

Les chiffres repésentent les lignes.

--------------------------------------------------------------------------------------------------------------

Voilà mes erreurs :

Voilà ensuite les erreurs que j'ai :

Notice: Undefined index: nomcli in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 7

Notice: Undefined index: prenomcli in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 8

Notice: Undefined index: adressecli in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 9

Notice: Undefined index: telcli in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 10

Notice: Undefined index: melcli in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 11

Notice: Undefined index: nores in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 12

Notice: Undefined index: dateresdeb in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 13

Notice: Undefined index: datefinres in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 14

Notice: Undefined index: nogite in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 15
Cher(e) ,
Vous désirez réserver le gîte numéro .
Notice: Undefined variable: dateresfin in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient.php on line 31


Vos données ont bien été envoyées dans notre base de données.
-----------------------------------------------------------------------------------

Et voilà mon formulaire html :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <form> <title>FORMULAIRE CLIENT</title> <p><center><h2><u>Formulaire d'inscription</u></h2></center></p> </br></br> </head> <body background="C:\Documents and Settings\All Users\Documents\Mes images\Échantillons d'images\collines.jpg"> </br> <form method="POST" action="C:\PROGRA~1\EASYPH~1\www\Les gites du vertige\transfertclient.php"> </br> <pre> Nom : <input type="text" name="nomcli" value=""/> </br></br> Prénom : <input type="text" name="prenomcli" value=""/> </br></br> Adresse : <input type="text" name="adressecli" value=""/> </br></br> Numéro de téléphone fixe: <input type="text" name="telcli" value=""/> </br></br> Adresse électronique: <input type="text" name="melcli" value=""/> </br></br> Date de reservation: </br> du:<select name="datedebres" style="border: 1px solid #989898"> <option value="0" ></option> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> <option value="4" >4</option> <option value="5" >5</option> <option value="6" >6</option> <option value="7" >7</option> <option value="8" >8</option> <option value="9" >9</option> <option value="10" >10</option> <option value="11" >11</option> <option value="12" >12</option> <option value="13" >13</option> <option value="14" >14</option> <option value="15" >15</option> <option value="16" >16</option> <option value="17" >17</option> <option value="18" >18</option> <option value="19" >19</option> <option value="20" >20</option> <option value="21" >21</option> <option value="22" >22</option> <option value="23" >23</option> <option value="24" >24</option> <option value="25" >25</option> <option value="26" >26</option> <option value="27" >27</option> <option value="28" >28</option> <option value="29" >29</option> <option value="30" >30</option> <option value="31" >31</option> </font></b></td> <font><b><td> <select name="type" style="border: 1px solid #989898"> <option value="0" ></option> <option value="1" >Janvier</option> <option value="2" >Février</option> <option value="3" >Mars</option> <option value="4" >Avril</option> <option value="5" >Mai</option> <option value="6" >Juin</option> <option value="7" >Juillet</option> <option value="8" >Août</option> <option value="9" >Septembre</option> <option value="10" >Octobre</option> <option value="11" >Novembre</option> <option value="12" >Décembre</option> </font></b></td> <font><b><td> <select name="type" style="border: 1px solid #989898"> <option value="0" ></option> <option value="1" >2008</option> <option value="2" >2009</option> <option value="3" >2010</option> <option value="4" >2011</option> <option value="5" >2012</option> <option value="6" >2013</option> </font></b></td></select></td> </br>au:<select name="datedebres" style="border: 1px solid #989898"> <option value="0" ></option> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> <option value="4" >4</option> <option value="5" >5</option> <option value="6" >6</option> <option value="7" >7</option> <option value="8" >8</option> <option value="9" >9</option> <option value="10" >10</option> <option value="11" >11</option> <option value="12" >12</option> <option value="13" >13</option> <option value="14" >14</option> <option value="15" >15</option> <option value="16" >16</option> <option value="17" >17</option> <option value="18" >18</option> <option value="19" >19</option> <option value="20" >20</option> <option value="21" >21</option> <option value="22" >22</option> <option value="23" >23</option> <option value="24" >24</option> <option value="25" >25</option> <option value="26" >26</option> <option value="27" >27</option> <option value="28" >28</option> <option value="29" >29</option> <option value="30" >30</option> <option value="31" >31</option> </font></b></td> <font><b><td> <select name="type" style="border: 1px solid #989898"> <option value="0" ></option> <option value="1" >Janvier</option> <option value="2" >Février</option> <option value="3" >Mars</option> <option value="4" >Avril</option> <option value="5" >Mai</option> <option value="6" >Juin</option> <option value="7" >Juillet</option> <option value="8" >Août</option> <option value="9" >Septembre</option> <option value="10" >Octobre</option> <option value="11" >Novembre</option> <option value="12" >Décembre</option> </font></b></td> <font><b><td> <select name="type" style="border: 1px solid #989898"> <option value="0" ></option> <option value="1" >2008</option> <option value="2" >2009</option> <option value="3" >2010</option> <option value="4" >2011</option> <option value="5" >2012</option> <option value="6" >2013</option> </font></b></td></select></td> </br></br> Numéro du gîte demandé: <select name="nogite"> <option value="0"></option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> </select> </br></br> <input type="submit" value="Envoyer" <input type="reset" value="Annuler"/> </form> </pre> </html></title> </head> </body> </html>
--------------------------------------------------------------------------------------------------------
J'ai vraiment besoin d'aide, j'attends vos réponses.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 avr. 2008, 19:13

Modération :
Brendon92, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ



Quant à ton problème, c'est simplement que tu fais appel a des valeurs dans le tableau $_POST alors que celle-ci n'existent pas. Je suppose que ton code php se trouve avant le code de ton formulaire et donc lorsque tu ouvres la page la première fois, aucune donnée n'a été envoyée...

Tu peux ajouter un test pour vérifier que des données ont été transmises avec isSet() et un if() par exemple pour ne faire appel à ces variables que si tu sais qu'elles ont été définies...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

01 avr. 2008, 22:02

Tu pourrais mieux préciser s'il te plaît car je ne suis pas au top dans ce domaine. C'est la première année que j'apprends ça et j'ai le bac oral de 45 min dans ce domaine là.

ViPHP
ViPHP | 4039 Messages

01 avr. 2008, 22:22

entre-nous, tu as dis "bonjour" ? "merci" ?

Non parce que bon..
Tu pourrais mieux préciser s'il te plaît car je ne suis pas au top dans ce domaine. C'est la première année que j'apprends ça et j'ai le bac oral de 45 min dans ce domaine là.
Résoudre simplement ton truc, c'est pas ça qui va t'aider. Il va falloir t'accrocher et suivre nos pistes pour résoudre ton problème toi-même.

Ryle à été très clair.. et si c'est un domaine dans lequel tu as des cours, va falloir réviser :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 422 Messages

01 avr. 2008, 22:27

<form method="POST" action="C:\PROGRA~1\EASYPH~1\www\Les gites du vertige\transfertclient.php"> 
et si tu essayais avec
<form method="POST" action="http://localhost/Les gites du vertige/transfertclient.php">
?

et tant que tu y es, copie collines.jpg dans un répertoire www/Les gites du vertige/img et mets :

Code : Tout sélectionner

<body background="http://localhost/Les gites du vertige/img/collines.jpg">
Ensuite, évite les noms de répertoires avec des espaces avec les sites web. OK, ça marche, mais tu vas te retrouver avec des %20 partout.

Enfin, regarde bien entre dateresfin et datefinres ...

ViPHP
ViPHP | 4039 Messages

01 avr. 2008, 22:44

Il est sympa caroube, mais je me demande si tu as bien pris note au cours :roll:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 19 Messages

02 avr. 2008, 15:46

Désolé de ne pas avoir dit Bonjour. Merci. Nous n'avons pas appris tout ça en cours, nous avons juste appris quelques bases et le professeur nous a laissé faire par nous même la suite.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 avr. 2008, 16:03

Vous avez quand même du voir les structures conditionnelles nan ? :)

L'idée est simple :

Code : Tout sélectionner

SI le formulaire a été envoyé ALORS je récupère les données et les insère en base SINON ben je le fais pas ! ;)
Je te recommande également de suivre les remarques de caroube :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 19 Messages

02 avr. 2008, 16:04

Merci de m'avoir répondu Ryle mais pourrais tu mieux m'expliquer s'il te plaît. Je n'y comprends pas grand chose. Merci. Et non, je n'ai pas vu les structures conditionnelles, désolé.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 avr. 2008, 16:10

Rooh bah faut commencer par ça alors ! :)

http://de.php.net/manual/fr/language.co ... ctures.php
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 19 Messages

05 avr. 2008, 15:44

Bonjour,

J'ai une erreur à cette ligne :

Code : Tout sélectionner

<? echo $_POST["nomcli"]; ?>
Il y a écrit ceci :

Parse error: parse error in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient2.php on line 10

Pouvez-vous m'aider s'il vous plaît ?
C'est lors de la déclaration des variables en fait :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <?php // Affectation des valeurs saisies dans des variables <? echo $_POST["nomcli"]; ?> <? echo $_POST["prenomcli"]; ?> <? echo $_POST["adressecli"]; ?> <? echo $_POST["telcli"]; ?> <? echo $_POST["melcli"]; ?> <? echo $_POST["nores"]; ?> <? echo $_POST["dateresdeb"]; ?> <? echo $_POST["daterefin"]; ?> <? echo $_POST["nogite"]; ?> // Affichage d'un message de contrôle echo "Cher(e) $nomcli $prenomcli,<br/>"; echo "Vous désirez réserver le gîte numéro $nogite."; // Connexion au serveur MySQL $db=mysql_connect("localhost","root","GSI") or die("erreur de connexion".mysql_error()); // Ouverture de la base Gîte du vertige mysql_select_db("Gite du vertige",$db) or die("erreur de connexion à la base Gite du vertige"); // Requête d'insertion des valeurs dans la table client $sql="INSERT INTO client (nomcli, prenomcli, adressecli, telcli, melcli, nores) VALUES('$nomcli','$prenomcli','$adressecli','$telcli','$melcli','$nores')"; // Exécution de la requête mysql_query($sql); // Requête d'insertion des valeurs dans la table reservation $sql="INSERT INTO reservation (nores, dateresdeb , dateresfin, nogite) VALUES('$nores','$dateresdeb','$dateresfin','$nogite')"; // Exécution de la requête mysql_query($sql); echo "<br/><br/> Vos données ont bien été envoyées dans notre base de données. Nous vous enverrons un mail dès que possible pour vous informer de la disponibilité du gîte"; // Fermeture de la connexion à MySql mysql_close(); ?> </body> </html>

Mammouth du PHP | 1668 Messages

05 avr. 2008, 16:18

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 
<body> 

<?php 

// Récupération et protection après la vérification de leur saisit dans le formulaire

if(/* là j'ai la flemme mais tu doit faire : $_POST["nomcli"] && $_POST["prenomcli"]... pour toute afin d'évité les formulaire mal remplis */)
{
$nomcli=mysql_real_escape_string(htmlspecialchars($_POST["nomcli"]));
$prenomcli=mysql_real_escape_string(htmlspecialchars($_POST["prenomcli"]));
$adresscli=mysql_real_escape_string(htmlspecialchars($_POST["adressecli"]));
$telcli=mysql_real_escape_string(htmlspecialchars($_POST["telcli"]));
$melcli=mysql_real_escape_string(htmlspecialchars($_POST["melcli"]));
$nores=mysql_real_escape_string(htmlspecialchars($_POST["nores"]));
$dateresdeb=mysql_real_escape_string(htmlspecialchars($_POST["dateresdeb"]));
$daterfin=mysql_real_escape_string(htmlspecialchars($_POST["daterefin"]));
$nogite=mysql_real_escape_string(htmlspecialchars($_POST["nogite"]));
}
else
{
die("vous n'avez pas remplis enièrement votre formulaire");
}

// Affichage d'un message de contrôle 

echo "Cher(e) ".$nomcli." ".$prenomcli.",<br/>"; 
echo "Vous désirez réserver le gîte numéro ".$nogite."."; 

// Connexion au serveur MySQL 

$db=mysql_connect("localhost","root","GSI") or die("erreur de connexion".mysql_error()); 

// Ouverture de la base Gîte du vertige 

mysql_select_db("Gite du vertige",$db) or die("erreur de connexion à la base Gite du vertige"); 

// Requête d'insertion des valeurs dans la table client 

$sql="INSERT INTO client (nomcli, prenomcli, adressecli, telcli, melcli, nores) 
VALUES('$nomcli','$prenomcli','$adressecli','$telcli','$melcli','$nores')"; 

// Exécution de la requête 

mysql_query($sql); 

// Requête d'insertion des valeurs dans la table reservation 

$sql="INSERT INTO reservation (nores, dateresdeb , dateresfin, nogite) 
VALUES('$nores','$dateresdeb','$dateresfin','$nogite')"; 

// Exécution de la requête 
  
mysql_query($sql); 

echo "<br/><br/> Vos données ont bien été envoyées dans notre base de données. Nous vous enverrons un mail dès que possible pour vous informer de la disponibilité du gîte"; 

// Fermeture de la connexion à MySql 

mysql_close(); 
?> 
</body> 
</html> 
Quelques petites choses :
  • echo sert à afficher une valeur
  • tu es sympa ferme la balise PHP avant de l'ouvrire
  • Va voir le site du zér0 c'est bien explqué
  • Essaie de vérifier la signification des mots que tu emploit s'il te plait
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphanteau du PHP | 19 Messages

05 avr. 2008, 16:29

Merci pour ta réponse mais pourrais tu mettre seulement pour un exemple : if... pour nomcli s'il te plaît ? Ce serait gentil.

Mammouth du PHP | 1668 Messages

05 avr. 2008, 16:44

if($_POST["nomcli"] && $_POST["prenomcli"] && $_POST["adressecli"] && $_POST["telcli"] && $_POST["melcli"] && $_POST["cli"] && $_POST["nores"] && $_POST["dateresdeb"] && $_POST["daterefin"] && $_POST["nogite"]) 
{ 
$nomcli=mysql_real_escape_string(htmlspecialchars($_POST["nomcli"])); 
$prenomcli=mysql_real_escape_string(htmlspecialchars($_POST["prenomcli"])); 
$adresscli=mysql_real_escape_string(htmlspecialchars($_POST["adressecli"])); 
$telcli=mysql_real_escape_string(htmlspecialchars($_POST["telcli"])); 
$melcli=mysql_real_escape_string(htmlspecialchars($_POST["melcli"])); 
$nores=mysql_real_escape_string(htmlspecialchars($_POST["nores"])); 
$dateresdeb=mysql_real_escape_string(htmlspecialchars($_POST["dateresdeb"])); 
$daterfin=mysql_real_escape_string(htmlspecialchars($_POST["daterefin"])); 
$nogite=mysql_real_escape_string(htmlspecialchars($_POST["nogite"])); 
} 
Voilà :roll:
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Eléphanteau du PHP | 19 Messages

05 avr. 2008, 16:49

C'est très gentil de ta part. Merci. :D
Par contre ça m'affiche ceci maintenant, je comprends pas. :cry:

Notice: Undefined index: nomcli in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient3.php on line 10
vous n'avez pas remplis enièrement votre formulaire


La ligne 10 :

Code : Tout sélectionner

if($_POST["nomcli"] && $_POST["prenomcli"] && $_POST["adressecli"] && $_POST["telcli"] && $_POST["melcli"] && $_POST["nores"] && $_POST["dateresdeb"] && $_POST["dateresfin"] && $_POST["nogite"])