De l'aide pour formulaire de reservation

Fermé
Laurie1985 Messages postés 8 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009 - 25 oct. 2009 à 10:19
 Olivier - 30 nov. 2010 à 08:46
Bonjour,

J'en suis à mon 3e site, et si je n'ai jamais rencontré de soucis de compréhension, là je sèche depuis plus d'une semaine !
Je vais finir par ne plus avoir de cheveux sur la tête !

J'ai besoin de faire un formulaire de réservation, et je n'y arrive pas du tout !

1) Code HTML, page en langage HTML et avec une extension PHP :

<form action="cible.php" method="post">

<p class="texte_encadre">
<label for="nom">Nom </label><input type="text" name="nom" id="nom" /><br /><br />
<label for="prenom">Prénom </label><input type="text" name="prenom" id="prenom" /><br /><br />
<label for="e_mail">E-mail </label><input type="text" name="e_mail" id="e_mail" /><br /><br />
<label for="telephone">N° de téléphone </label><input type="text" name="telephone" id="telephone" /><br /><br />
<label for ="date_arrivee">Date d'arrivée</label><br />
<select name="jour_arrivee" id="jour_arrivee">
<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>
</select>

<select name="mois_arrivee" id="mois_arrivee">
<option value="janvier">janvier</option>
<option value="fevrier">février</option>
<option value="mars">mars</option>
<option value="avril">avril</option>
<option value="mai">mai</option>
<option value="juin">juin</option>
<option value="juillet">juillet</option>
<option value="aout">août</option>
<option value="septembre">septembre</option>
<option value="octobre">octobre</option>
<option value="novembre">novembre</option>
<option value="decembre">décembre</option>
</select>

<select name="annee_arrivee" id="annee_arrivee">
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
</select><br /><br />

<label for ="date_depart">Date de départ</label><br />
<select name="jour_depart" id="jour_depart">
<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>
</select>

<select name="mois_depart" id="mois_depart">
<option value="janvier">janvier</option>
<option value="fevrier">février</option>
<option value="mars">mars</option>
<option value="avril">avril</option>
<option value="mai">mai</option>
<option value="juin">juin</option>
<option value="juillet">juillet</option>
<option value="aout">août</option>
<option value="septembre">septembre</option>
<option value="octobre">octobre</option>
<option value="novembre">novembre</option>
<option value="decembre">décembre</option>
</select>

<select name="annee_depart" id="annee_depart">
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
</select><br /><br />

<label for="nombre_adultes">Nombre d'adultes </label>
<select name="nombre_adultes" id="nombre_adultes">
<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 />

<label for="nombre_enfants">Nombre d'enfants (moins de 13 ans)</label>
<select name="nombre_enfants" id="nombre_enfants">
<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>
</select><br /><br />

Votre message<br />
<textarea name="message" rows="8" cols="45"></textarea><br /><br />

<input type="submit" value="Valider" /> <input type="reset" value="Réinitialiser" />
</p>

</form>


Et ce que ça donne :
http://servimg.com/image_preview.php?i=1454&u=10047732

2) Code PHP, page en langage PHP et avec une extension PHP :

<?php
mysql_connect("localhost", "XXXXXXX", "XXXXXXX");
mysql_select_db("elevagebritishc");

$reponse = mysql_query("SELECT * FROM reservation") or die(mysql_error()); // Requête SQL
?>


<p class="texte_encadre">
Merci de vérifiez vos informations avant de nous les envoyer :<br /><br /><br />
Nom : <?php echo $_POST['nom']; ?><br /><br />
Prénom : <?php echo $_POST['prenom']; ?><br /><br />
E-mail : <?php echo $_POST['e_mail']; ?><br /><br />
N° de téléphone : <?php echo $_POST['telephone']; ?><br /><br />
Date d'arrivée : <?php echo $_POST['jour_arrivee']; ?> <?php echo $_POST['mois_arrivee']; ?> <?php echo $_POST['annee_arrivee']; ?><br /><br />
Date de départ : <?php echo $_POST['jour_depart']; ?> <?php echo $_POST['mois_arrivee']; ?> <?php echo $_POST['annee_arrivee']; ?><br /><br />
Nombre d'adultes : <?php echo $_POST['nombre_adultes']; ?><br /><br />
Nombre d'enfants de moins de 13 ans: <?php echo $_POST['nombre_enfants']; ?><br /><br />
Votre message : <?php echo $_POST['message']; ?><br /><br />
<input type="submit" value="Envoyer" />
</p>


<?php
mysql_close(); // Déconnexion de la base de donnée.
?>


Et voici les messages d'erreur quand on essai de remplir le formulaire et de l'envoyer... :
http://servimg.com/image_preview.php?i=1455&u=10047732

Où voyez vous un problème ?

Merci pour votre aide,

Laurie.

14 réponses

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
25 oct. 2009 à 10:52
Il y a une erreur pour la connexion à MySQL, ce qui en entraine d'autre quand tu essayes de faire des opérations dessus (mysql_select_db, mysql_query, ...).
0
Laurie1985 Messages postés 8 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
25 oct. 2009 à 21:16
Bonsoir,

Merci pour ta réponse avion :)

Et bien sur tu ne sais pas où peut se trouver cette erreur ? Est-ce qu'elle est visible dans les codes que je vous ai donné ? Où ça viend d'autre part ?

Sinon je vous dis comment j'ai procédé, parce que j'ai l'impression de n'avoir pas bien fais :

1) j'ai écrit ma page HTML

2) j'ai écrit ma page en PHP

3 j'ai crée une table "reservation" avec 14 champs ci-dessous :
http://servimg.com/image_preview.php?i=1456&u=10047732

4) dans SQL, j'ai mis la requête SELECT * FROM reservation

Est-ce que j'ai bien fais comme il faut ? C'est bien censé envoyer les données que le visiteur entre pour faire une réservation à ma base de donnée ? Comment faire pour que celle-ci me restitue les données dans un mail ? J'ai essayer un générateur de script, ça n'a pas marché !
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
25 oct. 2009 à 21:32
L'erreur signifie qu'il est impossible de se connecter à MySQL : vérifie tes informations de connexion (hôte, login, password).

Dans ton script, je ne vois pas l'intérêt de ta requête et pour information, l'array $_POST contient des données envoyées par la méthode POST par HTTP ou par un formulaire.

Ça ne serait pas plutôt ça que tu voudrais faire ? :
<?php
mysql_connect("localhost", "XXXXXXX", "XXXXXXX");
mysql_select_db("elevagebritishc");

$sql = 'SELECT * FROM reservation';
$req = mysql_query($sql) or die(mysql_error());
while($reservation = mysql_fetch_assoc($req)) {
?>
<p class="texte_encadre">
    Merci de vérifiez vos informations avant de nous les envoyer :<br /><br /><br />
    Nom : <?php echo $reservation['nom']; ?><br /><br />
    Prénom : <?php echo $reservation['prenom']; ?><br /><br />
    E-mail : <?php echo $reservation['e_mail']; ?><br /><br />
    N° de téléphone : <?php echo $reservation['telephone']; ?><br /><br />
    Date d'arrivée : <?php echo $reservation['jour_arrivee']; ?> <?php echo $reservation['mois_arrivee']; ?> <?php echo $reservation['annee_arrivee']; ?><br /><br />
    Date de départ : <?php echo $reservation['jour_depart']; ?> <?php echo $reservation['mois_arrivee']; ?> <?php echo $reservation['annee_arrivee']; ?><br /><br />
    Nombre d'adultes : <?php echo $reservation['nombre_adultes']; ?><br /><br />
    Nombre d'enfants de moins de 13 ans: <?php echo $reservation['nombre_enfants']; ?><br /><br />
    Votre message : <?php echo $reservation['message']; ?><br /><br />
</p>
<?php
}
mysql_close(); // Déconnexion de la base de donnée.
?> 
0
Laurie1985 Messages postés 8 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
25 oct. 2009 à 22:06
Je suis sure avoir mis les bonnes infos de connexion, enfin j'ai mis ce que l'hébergeur m'a envoyé par mail...

En fait, je vous explique ce que je veux au final :

1) Le visiteur rempli le formulaire de réservation et le valide.

2) Le site leur affiche une page pour que le visiteur vérifie si ses données personnelles sont bonne, si oui qu'il valide définitivement.

3) Le formulaire définitif me parvient par mail.

Je suis vraiment très novice, et je suffoque un peu dans les cours de php lol me faut limite de l'owygène pour me remettre à chaque fois que je lis un paragraphe ! Je suis arrivée je pense sans trop de mal en html, mais là je ne comprends plus rien !

Du coup je ne vous demande pas de faire à ma place le boulot, mais vraiment je ne sais plus comment faire et que essayer comme codes farfelus pour y arriver lol

Du coup, pour le genre de chose que je voudrait, est-ce la bonne méthode le php et phpmyadmin ?

Sinon Avion, ton code a l'air bien meilleur que le mien, je n'en doute pas, je reconnais des codes du cours PHP :D

Merci de te pencher sur mon problèmes ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
25 oct. 2009 à 23:09
Sur la page de vérification, la requête SQL ne sert donc à rien ...
Lorsque le visiteur cliquera sur le bouton pour l'envoie définitif, toutes les variables seront effacées puisqu'il n'y a aucun formulaire : soit tu les stockes dans une session, soit dans un formulaire masqué (des champs du type hidden).

Voici donc la page de vérification :
<?php
$_POST = array('login' => 'dyl@n','password' => 'SpinozA');
?>
<p class="texte_encadre">
	Merci de vérifiez vos informations avant de nous les envoyer :<br />
	<br />
	Nom : <?php echo $_POST['nom']; ?><br />
	Prénom : <?php echo $_POST['prenom']; ?><br />
	E-mail : <?php echo $_POST['e_mail']; ?><br />
	N° de téléphone : <?php echo $_POST['telephone']; ?><br />
	Date d'arrivée : <?php echo $_POST['jour_arrivee']; ?> <?php echo $_POST['mois_arrivee']; ?> <?php echo $_POST['annee_arrivee']; ?><br />
	Date de départ : <?php echo $_POST['jour_depart']; ?> <?php echo $_POST['mois_arrivee']; ?> <?php echo $_POST['annee_arrivee']; ?><br />
	Nombre d'adultes : <?php echo $_POST['nombre_adultes']; ?><br />
	Nombre d'enfants de moins de 13 ans: <?php echo $_POST['nombre_enfants']; ?><br />
	Votre message : <?php echo $_POST['message']; ?><br />
	<br/>
	Si ces informations sont correctes, cliquez sur le bouton suivant sinon <a href="formulaire.php">cliquez ici</a><br/>

	<form method="post" action="page_finale.php">
		<p>
<?php foreach($_POST as $key => $value) {
echo "\t\t\t".'<input type="hidden" name="'.$key.'" value="'.$value.'" />'."\n";
} ?>
		</p>
	</form>
	<input type="submit" value="Envoyer la réservation" /><br/>
</p>
De cette manière, tu retrouveras tes variables $_POST dans page_finale.php et tu pourras faire la requête SQL pour insérer la réservation dans la table.
0
Laurie1985 Messages postés 8 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
25 oct. 2009 à 23:17
Ahhh merci, j'essaye ça dessuite, et je te tiens au courant :)
0
Laurie1985 Messages postés 8 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
25 oct. 2009 à 23:28
Euh, je dois mettre quoi à :

$_POST = array('login' => 'dyl@n','password' => 'SpinozA'); ?
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
25 oct. 2009 à 23:31
Tu peux effacer les trois premières lignes, c'était pour tester si la génération des champs hidden fonctionnait bien :) (Tu peux essayer le mot de passe, si ça te chante, j'ai mis à au hasard ;) ).
0
Laurie1985 Messages postés 8 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
25 oct. 2009 à 23:35
ah ok, non je laisse tomber le mot de passe, c'est assez compliqué comme ça pour rajouter des choses inutiles :)

Bon sinon, j'ai testé ce code, et j'obtiens dons bien mon formulaire mais les données entrées précédement n'y paraissent pas...

http://servimg.com/image_preview.php?i=1457&u=10047732
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
25 oct. 2009 à 23:51
Tu as envoyé le formulaire ou tu as directement entré l'URL ?
Pour le formulaire créé avec PHP, tu ne dois pas le voir parce que c'est des champs type="hidden".
0
Laurie1985 Messages postés 8 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
25 oct. 2009 à 23:54
Oui j'ai remplis le formulaire pour tester et je l'ai envoyer.

Rho je crois que je suis trop fatiguée ce soir, et toi bien courageux de répondre à une nunuche qui comprends rien LOL

Tu me parle en chinois là MDR !!
0
Laurie1985 Messages postés 8 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
26 oct. 2009 à 01:30
Bon alors j'arrive à envoyer le formulaire, et à afficher les données.

Maintenant, va falloir m'expliquer exactement quel code mettre dans page_finale.php pour que les données aillent dans ma BDD ?

Il faut que je mettes :

<?php
mysql_connect("localhost", "XXXXXXX", "XXXXXXX");
mysql_select_db("elevagebritishc");
.........................
?>


Est-ce que je fais une nouvelle table ? Ou la table réservation à 14 champs est valable ?
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
26 oct. 2009 à 07:10
Tu peux enregistrer dans la table réservation.
<?php
mysql_connect('localhot','user','password');
mysql_select_db('elevagebritishc');

/* Creation des variable sécurisée */
$nom = mysql_real_escape_string($_POST['nom']);
$prenom = mysql_real_escape_string($_POST['prenom']);
$email = mysql_real_escape_string($_POST['e_mail']);
$tel = mysql_real_escape_string($_POST['telephone']);
$ja = mysql_real_escape_string($_POST['jour_arrivee']);
$ma = mysql_real_escape_string($_POST['mois_arrivee']);
$aa = mysql_real_escape_string($_POST['annee_arrivee']);
$jd = mysql_real_escape_string($_POST['jour_depart']);
$md = mysql_real_escape_string($_POST['mois_depart']);
$ad = mysql_real_escape_string($_POST['annee_depart']);
$adulte = mysql_real_escape_string($_POST['nombre_adule']);
$enfant = mysql_real_escape_string($_POST['nombre_enfant']);

/* Requête SQL */
$sql = 'INSERT INTO `reservation`(
	nom,
	prenom,
	e_mail,
	telephone,
	jour_arrivee,
	mois_arrivee,
	annee_arrivee,
	jour_depart,
	mois_depart,
	annee_depart,
	nombre_adulte,
	nombre_enfant
) VALUES(
	"'.$nom.'",
	"'.$prenom.'",
	"'.$email.'",
	"'.$tel.'",
	"'.$ja.'",
	"'.$ma.'",
	"'.$aa.'",
	"'.$jd.'",
	"'.$md.'",
	"'.$ad.'",
	"'.$adulte.'",
	"'.$enfant.'"
)';
$req = mysql_query($sql);
mysql_close();

if($req === true) {
    echo 'Réservation enregistrée.';
} else {
    echo 'Erreur lors de l'\'enregistrement de la réservation.';
}
?>
0
Bonjour,

Une autre solution moins compliquée peut être d'utiliser http://www.roomanager.com qui permet d'avoir ce type de formulaire sans se casser la tête avec php :)
0