Url rewriting et nombre de pages d'une requete

Signaler
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007
-
Bonjour ¨¤ tous,

Je viens de me lancer dans la r¨¦¨¦criture d'URL pour augmenter l'indexation de mes pages sur les moteurs de recherche.
J'utilise le mod_rewrite d'apache.
Tout fonctionne correctement mais je rencontre un probl¨¨me dans cette situation :

J'ai une page de news, qui r¨¦cup¨¨re les donn¨¦es contenues dans ma BDD. J'ai 100 news au total.
L'URL initiale est ../news.php?sujet= 12
En mod_rewrite, cela donne ../news-12.html
Jusqu'ici tout fonctionne.
Sur ma page news, je ne veux pas afficher les 100 news mais seulement 10 et afficher un lien vers la page suivante.
Cela donne ../news.php?sujet=12&debut=10 pour la page 2, ..&debut=20 pour la page 3 etc...
La fonction d'affichage page par page est une fonction toute faite trouv¨¦e sur internet, que j'utilise pour toutes mes requ¨ºtes.
Les liens vers les pages pr¨¦c¨¦dentes et suivantes sont g¨¦n¨¦r¨¦s automatiquement ¨¤ partir de l'url de la page courante, et sont de la forme $query = $_SERVER['PHP_SELF'].&debut=

Je voudrai transformer cette URL pour obtenir ../news-12-20.html (id news=12 et debut affichage=20) mais je n'arrive pas ¨¤ transformer la fonction.

Voici la fonction d'affichage compl¨¨te.
Merci de votre aide

function

barre_navigation
($nb_total
,$nb_affichage_par_page
,$debut
,$nb_liens_dans_la_barre
)
{

$barre
= ''
;

if
($_SERVER
['QUERY_STRING'
]
= = ""
)
{
$query
=$_SERVER
['PHP_SELF'
].'?debut= '
;

}

else
{
$tableau
=explode
( "debut= "
, $_SERVER
['QUERY_STRING'
]);
$nb_element
=count
($tableau
);

if
($nb_element
= =
1)
{
$query
=$_SERVER
[ 'PHP_SELF'
].'?'
.$_SERVER
['QUERY_STRING'
].'&debut = '
;

}

else
{

if
($tableau
[0]
= = ""
)
{
$query
=$_SERVER
['PHP_SELF'
].'?debut= '
;

}

else
{
$query
=$_SERVER
[ 'PHP_SELF'
].'?'
.$tableau
[0].'debut = '
;

}

}

}

$page_active
= floor
(($debut
/$nb_affichage_par_page
)+1);

$nb_pages_total
= ceil
($nb_total
/$nb_affichage_par_page
);

if
($nb_liens_dans_la_barre
%2 == 0)
{
$cpt_deb1
=$page_active
-
($nb_liens_dans_la_barre
/2)+1;
$cpt_fin1
= $page_active
+
($nb_liens_dans_la_barre
/2);

}

else
{
$cpt_deb1
=$page_active
-floor
(($nb_liens_dans_la_barre
/2));
$cpt_fin1
= $page_active
+floor
(($nb_liens_dans_la_barre
/2));

}

if
($cpt_deb1
< =
1)
{
$cpt_deb
=
1;
$cpt_fin
=$nb_liens_dans_la_barre
;

}

elseif
($cpt_deb1
>1
&&$cpt_fin1
<$nb_pages_total
)
{
$cpt_deb
= $cpt_deb1
;
$cpt_fin
=$cpt_fin1
;

}

else
{
$cpt_deb
=
( $nb_pages_total
-$nb_liens_dans_la_barre
)+1;
$cpt_fin
=$nb_pages_total
;

}

if
($nb_pages_total
<= $nb_liens_dans_la_barre
)
{
$cpt_deb
=1;
$cpt_fin
= $nb_pages_total
;

}

echo'
'
;

echo 'Page&nbsp;'
.$page_active
;

echo'
'
;

if
($cpt_deb
! =
1)
{
$cible
= $query
.(0);
$lien
= '['
$cible
.'">]&nbsp;&nbsp;'
;

}

else
{
$lien
= ''
;

}
$barre
. = $lien
;

for
($cpt
= $cpt_deb
;$cpt
< =$cpt_fin
;$cpt
++)
{

if
($cpt
= = $page_active
)
{

if
($cpt
== $nb_pages_total
)
{
$barre
. = ""
.$cpt
.""
;

}

else
{
$barre
. = ""
. $cpt
."&nbsp;"
;

}

}

else
{

if
($cpt
= = $cpt_fin
)
{
$barre
. = "['
$cible
.'">]'
;

}

else
{
$lien
= ''
;

}
$barre
. =$lien
;

echo'
'
;

echo$nb_total
.'&nbsp;r§Ûsultats&nbsp;-&nbsp;'
.$nb_pages_total
.'&nbsp;pages'
;

echo'
'
;

return$barre
;

}

1 réponse

Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

Bonjour,


En cherchant un peu, j'ai finalement réussi à bidouiller cette fonction pour arriver à ce que je voulais en faire.


Me voilà confronter à un nouveau problème.... la gestion des variables par GET ou POST


Sur des liens statiques, pas de problèmes
Je ne vois pas comment faire pour des formulaires en GET ou POST
J'ai un moteur de recherche qui me permet de rechercher des mots particuliers dans des recettes.
Auparavant, je passais ces variables par l'url.
avec l'url rewriting, comment peut on faire ?