[PHP+MYSQL]query is empty - c quoi ca

bon jour j ai un probleme sur un bout de code et je n arrive pas à le résoudre
je fais donc appel une âme charitable
voila je veux faire une recherche qui sera parametré par un textz tappeé par l’user de la page
donc la je cherche le genre de film
mais quand je lance mon code sous ma boite de text ca me dis

au fait le formulaire est sur la même page que la gestion de la lecture

 

case 3: // choix par genre

if(empty($_POST['genre']))
{
?>
<html?gt;
	<body>
	<body bgcolor="#FFCC00">
  Vous desire voir les films sur quel support?
  	<form action="mysql.php" method="post">
  	<input type="text" name="genre" /> 
  	<input type="submit" value="Valider" />
  </form>
	</body>
</html?gt;
<?php
$genre = $_POST['genre'];
}
else{
$query = "SELECT * FROM `film` WHERE `Catégorie`like  '%$genre%'";
}
break;


bonjour le trou de sécurité de passer une requête comme ça :ouch:

+1 mysql_real_escape_string

A mon avis, tu ne repasse pas au bon endroit dans ton switch. Tu dois omettre de passer la bonne variable.

tu peux etre plus precis pasqe la
j ai mem pas compris ta phrase
sinon je viens de tester un autre truk


case 3: // choix par genre

if (isset($_POST['genre'])) // Si la variable existe
{
    // On se crée une variable $mot_de_passe avec le mot de passe entré
    $genre = $_POST['genre'];
}
else // La variable n'existe pas encore
{
    $genre = ""; // On crée une variable $mot_de_passe vide
}


if (empty($genre)) // Si le mot de passe est bon
{

?>
<html?#62;
	<body>
	<body bgcolor="#FFCC00">
  Vous desire voir les films de quel genre ?
  	<form action="mysql.php" method="post">
  	<input type="text" name="genre" /> 
  	<input type="submit" value="Valider" />
  </form>
	</body>
</html?#62;
<?php
}
else
{
$query = "SELECT * FROM `film` WHERE `Catégorie`like  '%$genre%'";
}

break;

mais ca me donne toujours la meme erreur

et benj tu parlais de trou de securite si tu pouvait me l expliquer aussi ca pourrait m etre utlie
merci

ben le genre tu le passes par un champ texte.

si dans le champ texte je mets un truc du genre :

SQL
action'; [color=blue;font-weight:bold]drop[/color] table film --

tu risques de perdre ta table film sans t’en rendre compte …

nan mais ca serait pas possible puisque ce que tu tappe dasn le champs text
c est replacer dans une requete deja former
et cette requete ne fait que lire la table
apres je peux me tromper mais dans ce case la
fodrait que tu m explique comment resoudre ce probleme

en protégeant ta requête avec mysql_real_escape_string

fais une copie de ta table pour la sauvegarde et teste :neutre:

merci pour le renseignement je vais reagrder comme ca marche

j ai regarder sur php.net
pour cette fonction
mais sur le site j ai vu [quote=""]
mysql_real_escape_string – Protège les caractères spéciaux d’une commande SQL
[/quote]
du coup je me dis que j en ais pas vraiement besoin pasque cette fonction permet seulement de proteger les caracteres speciaux des commandes sql
mais j ai pas de char speciaux

tu n’as pas de caractères spéciaux tant que l’utilisateur tape ce que tu penses qu’il va taper. maintenant, rien ne l’empêche de taper des trucs qui pourraient malmener ton application :neutre: