probleme avec un script 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 : probleme avec un script de pagination

par Gico » 10 nov. 2005, 22:14

merci pour le conseil

par Truc » 10 nov. 2005, 22:05

Perso je dirai de laisser tomber tout ça et faire un truc que tu comprend :wink:
avec un toto c'est rapide, facile et bien mieux que ce que tu montres.

probleme avec un script de pagination

par Gico » 10 nov. 2005, 20:21

Bonjour
j'utilise un script de pagination auquel je l'avoue je ne comprend pas tout.
<?php
function buildNavigation($pageNum_Recordset1,$totalPages_Recordset1,$prev_Recordset1,$next_Recordset1,$separator=" | ",$max_links=10, $show_page=true)
{
                GLOBAL $maxRows_rsArticle,$totalRows_rsArticle;
	$pagesArray = ""; $firstArray = ""; $lastArray = "";
	if($max_links<2)$max_links=2;
	if($pageNum_Recordset1<=$totalPages_Recordset1 && $pageNum_Recordset1>=0)
	{
		if ($pageNum_Recordset1 > ceil($max_links/2))
		{
			$fgp = $pageNum_Recordset1 - ceil($max_links/2) > 0 ? $pageNum_Recordset1 - ceil($max_links/2) : 1;
			$egp = $pageNum_Recordset1 + ceil($max_links/2);
			if ($egp >= $totalPages_Recordset1)
			{
				$egp = $totalPages_Recordset1+1;
				$fgp = $totalPages_Recordset1 - ($max_links-1) > 0 ? $totalPages_Recordset1  - ($max_links-1) : 1;
			}
		}
		else {
			$fgp = 0;
			$egp = $totalPages_Recordset1 >= $max_links ? $max_links : $totalPages_Recordset1+1;
		}
		if($totalPages_Recordset1 >= 1) {
			$_get_vars = '';			
			if(!empty($_GET) || !empty($HTTP_GET_VARS)){
				$_GET = empty($_GET) ? $HTTP_GET_VARS : $_GET;
				foreach ($_GET as $_get_name => $_get_value) {
					if ($_get_name != "pageNum_rsArticle") {
						$_get_vars .= "&$_get_name=$_get_value";
					}
				}
			}
			$successivo = $pageNum_Recordset1+1;
			$precedente = $pageNum_Recordset1-1;
			$firstArray = ($pageNum_Recordset1 > 0) ? "<a href=\"$_SERVER[PHP_SELF]?pageNum_rsArticle=$precedente$_get_vars\" class=\"pagination\">$prev_Recordset1</a>" :  "$prev_Recordset1";
	
			for($a = $fgp+1; $a <= $egp; $a++){
				$theNext = $a-1;
				if($show_page)
				{
					$textLink = $a;
				} else {
					$min_l = (($a-1)*$maxRows_rsArticle) + 1;
					$max_l = ($a*$maxRows_rsArticle >= $totalRows_rsArticle) ? $totalRows_rsArticle : ($a*$maxRows_rsArticle);
					$textLink = "$min_l - $max_l";
				}
				$_ss_k = floor($theNext/26);
				if ($theNext != $pageNum_Recordset1)
				{
					$pagesArray .= "<a href=\"$_SERVER[PHP_SELF]?pageNum_rsArticle=$theNext$_get_vars\" class=\"pagination\">";
					$pagesArray .= "$textLink</a>" . ($theNext < $egp-1 ? $separator : "");
				} else {
					$pagesArray .= "$textLink"  . ($theNext < $egp-1 ? $separator : "");
				}
			}
			$theNext = $pageNum_Recordset1+1;
			$offset_end = $totalPages_Recordset1;
			$lastArray = ($pageNum_Recordset1 < $totalPages_Recordset1) ? "<a href=\"$_SERVER[PHP_SELF]?pageNum_rsArticle=$successivo$_get_vars\" class=\"pagination\">$next_Recordset1</a>" : "$next_Recordset1";
		}
	}
	return array($firstArray,$pagesArray,$lastArray);
}
?>
puis on affiche les differents liens ainsi:
     <?php 
# variable declaration
$prev_rsArticle = "< ";
$next_rsArticle = ">  ";
$separator = " | ";
$max_links = 15;
$pages_navigation_rsArticle = buildNavigation($pageNum_rsArticle,$totalPages_rsArticle,$prev_rsArticle,$next_rsArticle,$separator,$max_links,true); 

print $pages_navigation_rsArticle[0]; 
?>
et
 <?php print $pages_navigation_rsArticle[1]; ?>
ect ect

tous ça fonctionne correctement en local sous firefox et explorer, et correctement en ligne sous firefox. Sous explorer un clic sur un lien ouvre une page vide car l'adresse devient relative et fausse - a noter que chez mon hebergeur le site est dans un dossier www.

par exemple voila l'adresse de la premiere page :

http://www.site.com//public/catalogue_c ... ategorie=2

un clic sur le lien de la pagination pour ouvrir la seconde page donne :

http://public/catalogue_categorie.php?p ... ategorie=2

et forcément cette page n'existe pas. Que se passe-t-il ici et qui n'est propre qu'a explorer.
Merci