Page 1 sur 3

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

Posté : 01 avr. 2008, 19:01
par Brendon92
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.

Posté : 01 avr. 2008, 19:13
par Ryle
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...

Posté : 01 avr. 2008, 22:02
par Invité
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à.

Posté : 01 avr. 2008, 22:22
par Berzemus
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:

Posté : 01 avr. 2008, 22:27
par caroube
<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 ...

Posté : 01 avr. 2008, 22:44
par Berzemus
Il est sympa caroube, mais je me demande si tu as bien pris note au cours :roll:

Posté : 02 avr. 2008, 15:46
par Brendon92
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.

Posté : 02 avr. 2008, 16:03
par Ryle
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 :)

Posté : 02 avr. 2008, 16:04
par Brendon92
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é.

Posté : 02 avr. 2008, 16:10
par Ryle
Rooh bah faut commencer par ça alors ! :)

http://de.php.net/manual/fr/language.co ... ctures.php

Posté : 05 avr. 2008, 15:44
par Brendon92
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>

Posté : 05 avr. 2008, 16:18
par katagoto
<!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

Posté : 05 avr. 2008, 16:29
par Brendon92
Merci pour ta réponse mais pourrais tu mettre seulement pour un exemple : if... pour nomcli s'il te plaît ? Ce serait gentil.

Posté : 05 avr. 2008, 16:44
par katagoto
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:

Posté : 05 avr. 2008, 16:49
par Brendon92
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"])