Url rewriting et nombre de pages d'une requete

arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007 - 8 août 2006 à 16:58
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007 - 9 août 2006 à 14:56
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

arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007
9 août 2006 à 14:56
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 ? 
0
Rejoignez-nous