Javascript sur formulaire HMTL

Fermé
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 - 15 mai 2015 à 09:56
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 - 15 mai 2015 à 12:56
Bonjour,

Je suis sur la réalisation d'un site web pour l'achat de billet d'avion.

J'ai crée mon formulaire HTML que voici :

<!DOCTYPE html>
<html>
    <head>
        <title>Choose your flight !</title> 
		<meta charset="utf-8" />
		<meta http-equiv="Content-Language" content="fr-fr" /> 
		<link rel="stylesheet" media="screen" type="text/css" href="design.css" />      
	</head>
	
	<body>
	
		<?php include("header.php"); ?>	
		<?php include("menu.php"); ?>
		
		<!-- Corps -->
		<div id="div_corps_index">
			<!-- Formulaire pour trouver un vol -->		
			<div id="div_formulaire">
				<h1 id="titre_form"> TROUVER UN <span class="mots_clés">VOL</span> </h1>
			<form method="post" action="page2.php"><table id="table_form">
				
				<tr><td class="colonne1">
					<label>Aller Retour</label>
					<input type="radio" checked="checked">
				</td>
				<td class="colonne2">
					<label>Aller Simple</label>
					<input type="radio" onClick="self.location.href='index_simple.php'">
				</td></tr>
					
				<tr><td class="colonne1">
					<label>Départ</label> : <br><input type="text" name="depart" placeholder="Paris" class="input_mot" />
				</td>
				<td class="colonne2">
					<label>Arrivée</label> : <br><input type="text" name="arrivee" placeholder="Rome" class="input_mot" />
				</td></tr>
									
				<tr><td class="colonne1">
					<label>Date de départ :</label><br><input type="date" class="input_mot" name="date_depart"/>
				</td>
				<td class="colonne2">					
					<label>Date de retour :</label><br><input type="date" class="input_mot" name="date_retour"/>
				</td></tr>
				<tr><td class="colonne1">
					<label name="adultes">Adulte(s) :</label>
					<label name="enfants" id="colonne1_2">Enfant(s) :</label>
				</td>
				</tr>
				<tr><td class="colonne1">

				
					<select name="adultes" class="input_chiffre"> <!-- menu deroulant pour choisir le nombre de voyageurs -->
						<?php
						for ($i=1; $i<10; $i++)
						echo '<option value="'.$i.'">'.$i.'</option>';
						?>
					</select>
					<select name="enfants" id="input_chiffre2" class="input_chiffre">
						<?php
						for ($i=0; $i<10; $i++)
						echo '<option value="'.$i.'">'.$i.'</option>';
						?>
					</select></td></tr>

			
			</table>
			<input type="submit" value="RECHERCHER UN VOL" name="rechercher" class="rechercher"/>
			</form></div> <!-- fin de la div "formulaire" -->		
		
		</div> <!-- fin de la div "corps" -->
	</body>
</html>


Et voici mon code PHP afin de renvoyer les vols disponibles :

<!DOCTYPE html>
<html>
    <head>
        <title>Choose your flight !</title> 
		<meta charset="utf-8" />
		<meta http-equiv="Content-Language" content="fr-fr" /> 
		<link rel="stylesheet" media="screen" type="text/css" href="design.css" />      
	</head>
	
	<body>
	
		<?php require_once('connect.php'); ?>
		<?php include("header.php"); ?>	
		<?php include("menu.php"); ?>
		
		<div class="corps">
			<?php

			// On  récupèrer les champs
			if(isset($_POST['depart'])) $depart=$_POST['depart'];
				else $depart="";

			if(isset($_POST['arrivee'])) $arrivee=$_POST['arrivee'];
				else $arrivee="";

			if(isset($_POST['date_depart'])) $date_depart=$_POST['date_depart'];
				else $date_depart="";
			 
			if(isset($_POST['date_retour'])) $date_retour=$_POST['date_retour'];
				else $date_retour="";
			 
			if(isset($_POST['adultes'])) $adultes=$_POST['adultes'];
				else $adultes=0;
			 
			if(isset($_POST['enfants']))  $enfants=$_POST['enfants'];
				else $enfants=0;

			?>


				<div id="div_liste_vols" class="div_corps">
					<form name="frm_ajout_reservation" method="POST" action="ajout_reservation.php">
						<h1 id="titre_vols">Votre vol <span class="mots_clés">"Aller"</span></h1>
							<table id="table_vols_aller">
								<thead class="t_head_vols">
									<td class="ligne_head_vols">
										<label>Numéro de vol</label>
									</td>
									<td class="ligne_head_vols">
										<label>Départ</label>
									</td>
									<td class="ligne_head_vols">
										<label>Date <br> Heure départ</label>
									</td>
									<td class="ligne_head_vols">
										<label>Destination</label>
									</td>
									<td class="ligne_head_vols">
										<label>Heure d'arrivée</label>
									</td>
									<td class="ligne_head_vols">
										<label>Compagnie</label>
									</td>
									<td class="ligne_head_vols">
										<label>Prix /p</label>
									</td>
									<td class="ligne_head_vols">
										<label>Choix du vol "aller"</label>
									</td>
								</thead>	
							
			<?php 

			/* Requete pour déduire le nom de l'aeroport de depart grace au code IATA */
			$sql_iata_depart  = 
			"SELECT * 
			FROM aeroport 
			WHERE ville = '".$depart."' OR nomAeroport = '".$depart."' OR codeIATA = '".$depart."' ";
			
			$result_iata_depart = $bdd_vol->query($sql_iata_depart);
			while($iata_depart = $result_iata_depart->fetch(PDO::FETCH_ASSOC)) 
			{	
				/* Requete pour déduire le nom de l'aeroport destination grace au code IATA */
				$sql_iata_destination  = 
				"SELECT * 
				FROM aeroport 
				WHERE ville = '".$arrivee."'";
				
				$result_iata_destination = $bdd_vol->query($sql_iata_destination);
				while($iata_destination = $result_iata_destination->fetch(PDO::FETCH_ASSOC)) 
				{
					/* Requete pour trouver les vols aller disponibles selon critères saisis */
					$sql_aller  = 
					"SELECT * 
					FROM vol 
					WHERE provenance = 
					'".$iata_depart['codeIATA']."' AND destination = '".$iata_destination['codeIATA']."' AND dateDepart = '".$date_depart."'";
					
					$result = $bdd_vol->query($sql_aller);
					
							while($row_aller = $result->fetch(PDO::FETCH_ASSOC))
							{
							echo "<tr>";
							echo "<td class=\"ligne_paire_vols\">".$row_aller['numeroVol']."</td>";
							echo "<td class=\"ligne_paire_vols\">".$depart."</td>";
							echo "<td class=\"ligne_paire_vols\">".dateusfr($row_aller['dateDepart'])."<br>".$row_aller['heureDepart']."</td>";
							echo "<td class=\"ligne_paire_vols\">".$arrivee."</td>";
							echo "<td class=\"ligne_paire_vols\">".dateusfr($row_aller['dateArrivee'])."<br>".$row_aller['heureArrivee']."</td>";
								/* Recupère le nom de la compagnie grace à IDavion */
								$sql_compagnie = "SELECT * FROM avion WHERE idAvion = '".$row_aller['IDavion']."'";
								$result_compagnie = $bdd_vol->query($sql_compagnie);

								while($compagnie = $result_compagnie->fetch(PDO::FETCH_ASSOC))
								{
									echo"<td class=\"ligne_paire_vols\">".$compagnie['compagnie']."</td>";
								}
							echo "<td class=\"ligne_paire_vols\">".$row_aller['prix']."€</td>";
							echo '<td class="ligne_paire_vols"><input type="radio" name="choix_aller" value="'.$row_aller['numeroVol'].'"></td>';
							echo"</tr>";
							} 
						
					/* Requete pour trouver les vols retour disponibles selon critères saisis */
					$sql_retour  = "SELECT * FROM vol WHERE provenance = '".$iata_destination['codeIATA']."' AND destination = '".$iata_depart['codeIATA']."' AND dateDepart = '".$date_retour."'";
					$result_retour = $bdd_vol->query($sql_retour);
				}
			} 
			?> 
			</table>
			
			
					<h1 id="titre_vols">Votre vol <span class="mots_clés">"Retour"</span></h1>
					<table id="table_vols_retour">
						<thead class="t_head_vols">
							<td class="ligne_head_vols">
								<label>Numéro de vol</label>
							</td>
							<td class="ligne_head_vols">
								<label>Départ</label>
							</td>
							<td class="ligne_head_vols">
								<label>Date <br> Heure départ</label>
							</td>
							<td class="ligne_head_vols">
								<label>Destination</label>
							</td>
							<td class="ligne_head_vols">
								<label>Heure d'arrivée</label>
							</td>
							<td class="ligne_head_vols">
								<label>Compagnie</label>
							</td>
							<td class="ligne_head_vols">
								<label>Prix /p</label>
							</td>
							<td class="ligne_head_vols">
								<label>Choix du vol "aller"</label>
							</td>
						</thead>

						
			
						<?php while($row_retour = $result_retour->fetch(PDO::FETCH_ASSOC))
						{
						  echo "<tr>";
							echo "<td class=\"ligne_paire_vols\">".$row_retour['numeroVol']."</td>";
							echo "<td class=\"ligne_paire_vols\">".$arrivee."</td>";
							echo "<td class=\"ligne_paire_vols\">".dateusfr($row_retour['dateDepart'])."<br>".$row_retour['heureDepart']."</td>";
							echo "<td class=\"ligne_paire_vols\">".$depart."</td>";
							echo "<td class=\"ligne_paire_vols\">".dateusfr($row_retour['dateArrivee'])."<br>".$row_retour['heureArrivee']."</td>";
							
								/*Recupère le nom de la compagnie grace à IDavion */
								$sql_compagnie = "SELECT * FROM avion WHERE idAvion = '".$row_retour['IDavion']."'";
								$result_compagnie = $bdd_vol->query($sql_compagnie);

								while($compagnie = $result_compagnie->fetch(PDO::FETCH_ASSOC))
								{
									echo"<td class=\"ligne_paire_vols\">".$compagnie['compagnie']."</td>";
								}
							echo "<td class=\"ligne_paire_vols\">".$row_retour['prix']." €</td>";
							echo '<td class="ligne_paire_vols"><input type="radio" name="choix_retour" value="'.$row_retour['numeroVol'].'"></td>';
							echo"</td>";
						echo"</tr>";
						} ?>
					</table>
					</div>
				
				<input type="hidden" value="<?php echo $enfants; ?>" name="nbenfants">
				<input type="hidden" value="<?php echo $adultes; ?>" name="nbadultes">
				<input type="submit" value="Réserver" name="reserver" id="reserver" />
			</form>
	
		</div>
	</body>
</html>



Le problème c'est que rien ne "bloque" les données que l'utilisateur entre.
Par exemple si je choisi une date d'aller et retour inférieur à la date d'aujourd'hui, je vais quand même pouvoir accéder à la deuxième page.
Ou si je choisi un vol qui n'est pas disponible sur ma BDD, j'accéderai quand même à la deuxième page.

Je pense donc que pour remédier à cela, je dois utiliser le Javascript, mais c'est un langage que je ne maitrise pas du tout.
Je cherche donc quelqu'un qui pourrait m'aider

Merci d'avance

1 réponse

Utilisateur anonyme
15 mai 2015 à 10:53
Bonjour

Tu peux très bien faire tes vérifications en PHP.
De toutes manières, même si tu les faisais en Javascript, tu serais obligé de les refaire en PHP derrière, car c'est trop facile de contourner les contrôles faits en Javascript.
Tu peux aussi apprendre le javascript, ça n'est pas très compliqué et ça te servira dans tout ton site.
0
roms75001 Messages postés 390 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 9 juillet 2017 7
15 mai 2015 à 12:56
D'accord merci je vais regarder des tuto
0