Bonjour,

J'ai un moteur de recherche. Lorsque le client choisit ses options via un formulaire et est recuperer afin de creer une requete. J'affiche 4 resultats par page ce qui fait que je rapelle ma requete pour construire les autres pages. J'ai choisi de mettre ma requete dans une session php . Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
session_start();
if(!$_SESSION['rech']) { header("Location:recherche.php?mess=2"); }
include ("logbdd.php");
include ("fonctionquote.php");
$dep='';
$ext= " AND ";
 
if(isset($_GET['lim']) && !is_numeric($_GET['lim'])) header("Location:recherche.php");
 
if(!isset($_GET['lim'])){
	$lim = 0; 
	} else { 
	$lim= $_GET['lim']; 
}
 
$nbre= 4;
 
if(isset($_SESSION["requete"])){
	$reqbis = "SELECT * FROM annonce WHERE (".$_SESSION["requete"].") AND activ='1' GROUP by idannonce  LIMIT ".$lim.", ".$nbre."";
	$result = mysql_query($reqbis) or die(mysql_error()); 
} else {
	$req = "SELECT * FROM annonce WHERE (";
	$filters = array();
	$filters[]= "typeoffre='".$_POST['tyre']."'";
	if(isset($_POST['depvilla']) && $_POST['depvilla']=='2') { $dep='23'; }
	if(isset($_POST['depvilla']) && $_POST['depvilla']=='1') { $dep='78'; }
	if($_POST['typelog']) $filters[] = "typelog='".quote_smart($_POST['typelog'])."'";
	if($_POST['nbrpersonnes'] != 0) $filters[] = "nbrpersonnes >= '".quote_smart($_POST['nbrpersonnes'])."'";
	if(isset($_POST['piscine'])) $filters[] = "piscine='".quote_smart($_POST['piscine'])."'";
	if($dep!='') $filters[] = "depvilla='".quote_smart($dep)."'";
	if(isset($_POST['ville']) && strlen($_POST['ville']) > 2 && $_POST['ville'] != 'Choisir') $filters[] = "ville='".quote_smart($_POST['ville'])."'";
	if($_POST['cham'] !=0) $filters[] = "cham >= '".quote_smart($_POST['cham'])."'";
 
	$requ= implode(" ".$ext." ", $filters);
	$req.= implode(" ".$ext." ", $filters);
	$req.=") AND activ='1'";
	$total= $req;
	$resulttotal = mysql_query($total) or die(mysql_error());
	$nbtotal= mysql_num_rows($resulttotal);
	$req.= " GROUP by idannonce  LIMIT 0, 4";
	$_SESSION["requete"] = $requ;
	$_SESSION["nbretotal"]= $nbtotal;
	$_SESSION['tyre'] = $_POST['tyre'];
	$result = mysql_query($req) or die(mysql_error());
}
Je voudrais votre avis, autre idée ? Est ce securisée ?

Merci