Problème de pagination

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de pagination

Re: Problème de pagination

par xTG » 08 févr. 2014, 23:08

C'est donc que tu as quelque chose qui pose problème dans la variable $_GET['id'].
Autrement dit tu as généré une injection SQL.

Regardes du côté de la fonction mysql_real_escape_string() qui devrait être utilisée sur toute variable que tu injectes dans une requête SQL.
Et aussi tu devrais vérifier toute variable que tu utilises, chose que tu ne fais pas avec $_GET['id'] => existe-t-elle ? Est-elle vide ? ect

Re: Problème de pagination

par cris84 » 08 févr. 2014, 21:02

Cela ne change rien, j'ai toujours la même erreur.

Re: Problème de pagination

par xTG » 08 févr. 2014, 20:57

En SQL la différence s'exprime avec l'opérateur "!=" et non "<>". ;)

Problème de pagination

par cris84 » 08 févr. 2014, 20:02

Bonsoir à tous,
j'ai un problème de pagination dans mon script php. La première page s'affiche sans souci mais lors du passage sur la suivante j'ai une erreur sql :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND id<>"35" AND biographie !="" AND valide="1") LIMIT 2, 2' at line 1
j'ai fais un $_GET pour récupérer l'ID du département : rechercher_dpt.php?id=84 sur la première page, là tout va bien, voici l'URL de la page 2 : rechercher_dpt.php?page=2 source du problème.
Je ne vois pas comment faire pour résoudre ce problème.
Si quelqu'un peut m'aider. Merci d'avance.
Je vous joins le code de la page php :
<?php
$limit_par_page = 2; 
	if (isset($_GET['page']) AND !empty($_GET['page']))
	{
		$page = intval($_GET['page']);
	}
	else
	{
		$page = 1;
	}
	$from = ($page - 1) * $limit_par_page;
										
					$reponse = mysql_query('SELECT * FROM '.$prefix.'membres JOIN departement USING(id_departement) WHERE (id_departement='.$_GET['id'].' AND id<>"'.$_SESSION['id'].'" AND biographie !="" AND valide="1") LIMIT  '.$from.', '.$limit_par_page)or die(mysql_error());
	
	if ($id=$_GET['id']) {
	
	$sql = mysql_query ('SELECT * FROM departement WHERE id_departement='.$_GET['id'].'');
	($donnees = mysql_fetch_array($sql))or die(mysql_error());
	
echo 'Voici le résultat de votre recherche pour le département : <h8>'.$donnees['departement'].'</h8>';

while ($donnees = mysql_fetch_array($reponse))
	{
 echo '<p>';
 echo '<table width="860px">';

// le suite affiche les données
//la fin du code :

$requete = mysql_query('SELECT COUNT(id) AS nb_membres FROM '.$prefix.'membres WHERE (id_departement='.$_GET['id'].' AND id<>"'.$_SESSION['id'].'" AND biographie !="" AND valide="1")');
	
	$donnees = mysql_fetch_assoc($requete);

	$nb_pages = ceil($donnees['nb_membres'] / $limit_par_page);
	//echo 'Il y a,  '.$donnees['nb_membres'].'  membres.<br /><br />';
	echo $lang['aller_a_la_page'];
	for ($i=1 ; $i<=$nb_pages ; $i++)
	{
		if ($i == $page)
		{
		        echo ' '.$i.'';
		}
		else
		{
			echo ' <a href="rechercher_dpt.php?page='.$i.'">'.$i.'</a>';
		}
	}
?>