Liste deroulante php/mysql

mgdiallo Messages postés 5 Statut Membre -  
loveparade Messages postés 515 Statut Membre -
Bonjour, je suis débutant en PHP et je fais un e commerce. mon souci est de filtrer les enregistrements de ma base à partir des valeurs choisies dans des listes déroulantes.
voici mon code:
première fenêtre: c'est ici on fait le choix à partir des listes déroulantes
<?php
$Forme = isset($_POST['Forme']) ? $_POST['Forme'] : '';
$Poids = isset($_POST['Poids']) ? $_POST['Poids'] : '';
$Couleur = isset($_POST['Couleur']) ? $_POST['Couleur'] : '';
$Purete = isset($_POST['Purete']) ? $_POST['Purete'] : '';

?>

<form action="deuxiemePage.php" method="POST">
<LABEL><strong>Forme</strong></label>
<select name="Forme">
<option>Coeur</option>
<option>Round</option>
<option>Pear</option>
<option>Ovale</option>
<option>Poire</option>
<option>Princesse</option>
<option>Radiant</option>
<option>Ronde</option>
<option>Triangle</option>
</select><br /><br />

<LABEL><strong>Poids</strong></label>
<select name="Poids">
<option>0.30-0.45</option>
<option>0.46-0.65</option>
<option>0.66-0.80</option>
<option>0.81-0.95</option>
<option>0.96-1.05</option>
<option>1.06-1.45</option>
<option>1.46-1.95</option>
<option>1.96-2.00</option>
<option>2.01-3.00</option>
<option>3.01-5.00</option>
<option>5.01-7.00</option>
<option>7.01-10.50</option>
</select><br /><br />

<LABEL><strong>Couleur</strong></label>
<select name="Couleur">
<option>D</option>
<option>E</option>
<option>F</option>
<option>G</option>
<option>H</option>
<option>I</option>
<option>J</option>
<option>K</option>
<option>L</option>
<option>M</option>
</select><br /><br />

<LABEL><strong>Pureté</strong></label>
<select name="Purete">
<option value="IF">IF</option>
<option value="SI1">SI1</option>
<option value="SI2">SI2</option>
<option value="VS1">VS1</option>
<option value="VS2">VS2</option>
<option value="VVS1">VS1</option>
<option value="VVS2">VS2</option>
</select><br /> <br />
<label></label>

<input type="submit" value="Valider"/>
</form>

deuxième page: c'est ici on fait la requête qui fait la restriction par rapport aux valeurs choisies dans les listes déroulante de la page précédente.
<?php
$liendb = mysql_connect($bddserver, $bddlogin, $bddpassword);
mysql_select_db($bdd);

$sql = "select * from table where Couleur= $Couleur and Forme= $Forme";
$resultat = mysql_query ($sql);
while ($table = mysql_fetch_array($resultat))
{
print("<b>");print(" - ");
print("<a href=".$_SERVER['PHP_SELF']."?id=".$table['Reference'].">".
$table['Reference'].
$table['Forme'].
$table['Taille'].
$table['Couleur'].
$table['Purete']."</a>");print("    ");
print($table['PrixTotal']);print(" CHF");print("</b>");
print("<br/>");
}

?>

merci d'avance
A voir également:

3 réponses

loveparade Messages postés 515 Statut Membre 60
 
Juste pour infos, ton code n'est pas sécurisé, avant de faire des sites apprenez a sécuriser vos codes ...
0
mgdiallo Messages postés 5 Statut Membre 13
 
merci de m'avoir répondu. qu'est ce que dois rajouter pour lui rendre en sécurité et qu'est ce que dois modifier sur le code pour résoudre le problème initial.
merci d'avance
0
loveparade Messages postés 515 Statut Membre 60
 
1. Dans tes options tu as oublié d'assinger une valeur
ex :
<option value="italie">Italie</option> et non <option>Italie</option>


2. htmlentities() pour securiser un minimum tes variables lors de ta requete sql => https://www.php.net/htmlentities
ex :
$query = mysql_query('SELECT * FROM matable WHERE name = "'.htmlentities($_POST['name']).'"');

ou
$Couleur = isset($_POST['Couleur']) ? htmlentities($_POST['Couleur']) : ''; 

0