Liste deroulante php/mysql

Fermé
mgdiallo Messages postés 4 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 15 juillet 2009 - 13 juil. 2009 à 11:17
loveparade Messages postés 506 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 14 mai 2011 - 14 juil. 2009 à 14:13
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 506 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 14 mai 2011 60
13 juil. 2009 à 12:18
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 4 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 15 juillet 2009 13
13 juil. 2009 à 23:32
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 506 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 14 mai 2011 60
14 juil. 2009 à 14:13
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