Bonjour,
j'ai un formulaire avec plusieurs champs me renvoyant plusieurs variables en POST.
Mon script de vérification en PHP m'a l'air correct mais il ne fonctionne pas, j'ai deux bogues :
- Si je laisse la valeur 0 dans les deux champs "adultes" et "enfants" j'ai droit à une page blanche lors de l'appui sur "Envoyer".
- Et il faut obligatoirement que j'ai un valeur différente de 0 pour chacun des champs de "Nombres de chambres" pour pouvoir envoyer.
Hors le fonctionnement que je souhaite est totalement différent, il faudrais que je puisse envoyer le formulaire avec seulement un des champs de "Nombre de chambres" différent de 0 et un seul champ de "Nombre de personnes" différent de 0.
Voici le code de ma page HTML et de mon script (si au passage vous avez des suggestions d'optimisation je suis preneur) :
HTML
<table align="center"> <tr> <td> Nom * : </td> <td><form action="verif.php" method="post"> <input type="text" name="nom" value= "<?php if(isset($_SESSION['nom'])){echo $_SESSION['nom'];}?>" /> </td> <td> Prénom * : </td> <td> <input type="text" name="prenom" value= "<?php if(isset($_SESSION['prenom'])){echo $_SESSION['prenom'];}?>" /> </td> </tr> <tr> <td> Mail * : </td> <td> <input type="text" name="mail" value= "<?php if(isset($_SESSION['mail'])){echo $_SESSION['mail'];}?>" /> </td> <td> Téléphone * :<br /> </td> <td> <input type="text" name="tel" value= "<?php if(isset($_SESSION['tel'])){echo $_SESSION['tel'];}?>" /> </td> </tr> <tr> <td> Date d'arrivée * : </td> <td colspan="3"> <select name="arrivee_j"> <option selected="selected"><?php if(isset($_SESSION['arrivee_j'])){echo $_SESSION['arrivee_j'];}else{echo ("--");}?></option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> <option>11</option> <option>12</option> <option>13</option> <option>14</option> <option>15</option> <option>16</option> <option>17</option> <option>18</option> <option>19</option> <option>20</option> <option>21</option> <option>22</option> <option>23</option> <option>24</option> <option>25</option> <option>26</option> <option>27</option> <option>28</option> <option>29</option> <option>30</option> <option>31</option> </select> <select name="arrivee_m"> <option selected="selected"><?php if(isset($_SESSION['arrivee_m'])){echo $_SESSION['arrivee_m'];}else{echo ("--");}?></option> <option>Janvier</option> <option>Février</option> <option>Mars</option> <option>Avril</option> <option>Mai</option> <option>Juin</option> <option>Juillet</option> <option>Août</option> <option>Septembre</option> <option>Octobre</option> <option>Novembre</option> <option>Décembre</option> </select> <select name="arrivee_a"> <option selected="selected"><?php if(isset($_SESSION['arrivee_a'])){echo $_SESSION['arrivee_a'];}else{echo ("--");}?></option> <?php $annee=date("Y"); for($i=0; $i<=9; $i++){ echo ("<option>$annee</option>"); $annee++; } ?> </select> </td> </tr> <tr> <td> Date de départ * : </td> <td colspan="3"> <select name="depart_j"> <option selected="selected"><?php if(isset($_SESSION['depart_j'])){echo $_SESSION['depart_j'];}else{echo ("--");}?></option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> <option>11</option> <option>12</option> <option>13</option> <option>14</option> <option>15</option> <option>16</option> <option>17</option> <option>18</option> <option>19</option> <option>20</option> <option>21</option> <option>22</option> <option>23</option> <option>24</option> <option>25</option> <option>26</option> <option>27</option> <option>28</option> <option>29</option> <option>30</option> <option>31</option> </select> <select name="depart_m"> <option selected="selected"><?php if(isset($_SESSION['depart_m'])){echo $_SESSION['depart_m'];}else{echo ("--");}?></option> <option>Janvier</option> <option>Février</option> <option>Mars</option> <option>Avril</option> <option>Mai</option> <option>Juin</option> <option>Juillet</option> <option>Août</option> <option>Septembre</option> <option>Octobre</option> <option>Novembre</option> <option>Décembre</option> </select> <select name="depart_a"> <option selected="selected"><?php if(isset($_SESSION['depart_a'])){echo $_SESSION['depart_a'];}else{echo ("--");}?></option> <?php $annee=date("Y"); for($i=0; $i<=9; $i++){ echo ("<option>$annee</option>"); $annee++; } ?> </select> </td> </tr> <tr> <td> Nombre de chambres * : </td> <td colspan="3"> <select name="single"> <option selected="selected"><?php if(isset($_SESSION['single'])){echo $_SESSION['single'];}else{echo ("0");}?></option> <option>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select> Single <select name="twin"> <option selected="selected"><?php if(isset($_SESSION['twin'])){echo $_SESSION['twin'];}else{echo ("0");}?></option> <option>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select> Double <select name="double"> <option selected="selected"><?php if(isset($_SESSION['double'])){echo $_SESSION['double'];}else{echo ("0");}?></option> <option>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select> Twin <select name="superieure"> <option selected="selected"><?php if(isset($_SESSION['superieure'])){echo $_SESSION['superieure'];}else{echo ("0");}?></option> <option>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select> Supérieure </td> </tr> <tr> <td> Nombre de personnes * : </td> <td colspan="3"> <select name="adultes"> <option selected="selected"><?php if(isset($_SESSION['adultes'])){echo $_SESSION['adultes'];}else{echo ("0");}?></option> <option>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select> Adultes <select name="enfants"> <option selected="selected"><?php if(isset($_SESSION['enfants'])){echo $_SESSION['enfants'];}else{echo ("0");}?></option> <option>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>6</option> <option>7</option> <option>8</option> <option>9</option> <option>10</option> </select> Enfants </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="Envoyer"></input> </td> </tr> <tr> <td colspan="2" id="avertissement"> * champs obligatoires </td> </tr> </table>
PHP
<?php session_start(); require("config.php"); if (isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['mail']) AND isset($_POST['tel']) AND isset($_POST['arrivee_j']) AND isset($_POST['arrivee_m']) AND isset($_POST['arrivee_a']) AND isset($_POST['depart_j']) AND isset($_POST['depart_m']) AND isset($_POST['depart_a']) AND isset($_POST['single']) AND isset($_POST['twin']) AND isset($_POST['double']) AND isset($_POST['superieure']) AND isset($_POST['adultes']) AND isset($_POST['enfants'])){ if (!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['mail']) AND !empty($_POST['tel']) AND !empty($_POST['arrivee_j']) AND $_POST['arrivee_j']!="--" AND !empty($_POST['arrivee_m']) AND $_POST['arrivee_m']!="--" AND !empty($_POST['arrivee_a']) AND $_POST['arrivee_a']!="--" AND !empty($_POST['depart_j']) AND $_POST['depart_j']!="--" AND !empty($_POST['depart_m']) AND $_POST['depart_m']!="--" AND !empty($_POST['depart_a']) AND $_POST['depart_a']!="--" AND !empty($_POST['single']) AND !empty($_POST['twin']) AND !empty($_POST['double']) AND !empty($_POST['superieure'])){ if ($_POST['single']!="0" OR $_POST['twin']!="0" OR $_POST['double']!="0" OR $_POST['superieure']!="0"){ if($_POST['adultes']!="0" OR $_POST['enfants']!="0"){ if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail'])){ $mail=str_replace(array("\r", "\n" ), '', $_POST['mail']); $sujet="Réservation via le site internet"; $tel=$_POST['tel']; $message="Mr ou Mme ".$_POST['prenom']." ".$_POST['nom']." (".$tel.") souhaiterais réserver : \n".$_POST['single']." chambre(s) de type Single, \n".$_POST['twin']." chambre(s) de type Twin, \n".$_POST['double']." chambre(s) de type Double, \n".$_POST['superieure']." chambre(s) de type Supérieure \ndu ".$_POST['arrivee_j']."-".$_POST['arrivee_m']."-".$_POST['arrivee_a']." au ".$_POST['depart_j']."-".$_POST['depart_m']."-".$_POST['depart_a']." \npour ".$_POST['adultes']." adultes et ".$_POST['enfants']." enfants"; $headers ="From: ".$mail."\r\n"; mail($mailto, $sujet, $message, $headers); unset($_SESSION['nom']); unset($_SESSION['prenom']); unset($_SESSION['mail']); unset($_SESSION['sujet']); unset($_SESSION['message']); unset($_SESSION['tel']); header('location: Reservations.php?statut=OK' ); exit; } else { $_SESSION['nom']=$_POST['nom']; $_SESSION['nom']=$_POST['prenom']; $_SESSION['mail']=$_POST['mail']; $_SESSION['tel']=$_POST['tel']; $_SESSION['arrivee_j']=$_POST['arrivee_j']; $_SESSION['arrivee_m']=$_POST['arrivee_m']; $_SESSION['arrivee_a']=$_POST['arrivee_a']; $_SESSION['depart_j']=$_POST['depart_j']; $_SESSION['depart_m']=$_POST['depart_m']; $_SESSION['depart_a']=$_POST['depart_a']; $_SESSION['single']=$_POST['single']; $_SESSION['twin']=$_POST['twin']; $_SESSION['double']=$_POST['double']; $_SESSION['superieure']=$_POST['superieure']; $_SESSION['adultes']=$_POST['adultes']; $_SESSION['enfants']=$_POST['enfants']; if ($_POST['tel']!=""){$_SESSION['tel']=$_POST['tel'];} header('location: Reservations.php?statut=mail_failed' ); exit; } } } } else { $_SESSION['nom']=$_POST['nom']; $_SESSION['prenom']=$_POST['prenom']; $_SESSION['mail']=$_POST['mail']; $_SESSION['tel']=$_POST['tel']; $_SESSION['arrivee_j']=$_POST['arrivee_j']; $_SESSION['arrivee_m']=$_POST['arrivee_m']; $_SESSION['arrivee_a']=$_POST['arrivee_a']; $_SESSION['depart_j']=$_POST['depart_j']; $_SESSION['depart_m']=$_POST['depart_m']; $_SESSION['depart_a']=$_POST['depart_a']; $_SESSION['single']=$_POST['single']; $_SESSION['twin']=$_POST['twin']; $_SESSION['double']=$_POST['double']; $_SESSION['superieure']=$_POST['superieure']; $_SESSION['adultes']=$_POST['adultes']; $_SESSION['enfants']=$_POST['enfants']; if ($_POST['tel']!=""){$_SESSION['tel']=$_POST['tel'];} header('location: Reservations.php?statut=empty_form' ); exit; } } ?>
Edit Modérateur : Merci d'utiliser CODEBOX pour les codes longs (et très longs)