PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 24-09-2009 18:03:08

yule
Membre
Inscription : 24-09-2009
Messages : 35

Url rewriting, je seche sur une partie alphabétique

Bonjour,

Le 90% de mon code est rewriter sauf une infine partie, celle que je présente ci-dessous

sur mon htacces, j'étais parti la-dessus....

RewriteRule ^(.*)-([0-9]+)\.html$ /lexique/index.php?id_alpha=$1 [QSA,L]

Sur ma page, je ne sais pas quoi indiquer en lieu et place de index.php?id_alpha=".$list_lettre[$i]. pour avoir disons lettre-a.html  en lieu et place d'une page qui s'affiche avec index.php?id_alpha=a


 
<?php
 // +------ Génération et affichage de l'alphabet -------+


   $list_alpha = "a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z";
$list_lettre = explode('-', $list_alpha);
for ($i = -1; $i <26; $i++) {
 
 
 echo"<font size='2'><a href=\"index.php?id_alpha=".$list_lettre[$i]." \" title='Menu rapide des termes à choix' ><b>".ucfirst($list_lettre[$i])."  </b></font></a>";
}  
unset ($list_alpha);
unset ($list_lettre);
?>

D'avance merci de votre aide
Cordialement
Yule

Hors ligne

#2 25-09-2009 07:48:59

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Url rewriting, je seche sur une partie alphabétique

Salut,

RewriteRule ^(.*)-([0-9]{1}).html$ /lexique/index.php?id_alpha=$2 [QSA,L]

Et puis, en plus propre et plus court :


for($i=97;$i<123;$i++){
    echo '<a style="font-size:1.5em" href="index.php?id_alpha=', chr($i), '" title="Menu rapide des termes à choix" ><strong>', chr($i-32), '</strong></a>';

}


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#3 25-09-2009 08:52:34

yule
Membre
Inscription : 24-09-2009
Messages : 35

Re : Url rewriting, je seche sur une partie alphabétique

Hello,

Ok merci , mais il doit manquer quelque chose, Ton code ne vas pas indiquer une adresse du genre lettre-a.html ou lettre-d.html ? => index.php?id_alpha=', chr($i), '

pour le htaccess, je mets ceci

RewriteRule ^lettre-(.*)-([0-9]{1}).html$ /lexique/index.php?id_alpha=$2 [QSA,L]

Mais sur la page php ? je sais pas comment le mettre, j'ai essayé ainsi

for($i=97;$i<123;$i++){
    echo '<a style="font-size:1.2em" href="lettre-', chr($i), '.html" title="Menu rapide des termes à choix" ><strong>', chr($i-32), '-</strong></a>';
 
}

Ca me donne bien une page lettre-a.html ou autre mais ça ne dirige pas au bon endroit..

A+
Yule

Dernière modification par yule (25-09-2009 09:05:17)

Hors ligne

#4 25-09-2009 09:02:42

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Url rewriting, je seche sur une partie alphabétique

Ok, j'ai juste réécrit ton code smile
Après vérification :

RewriteRule ^(lettre)\-([A-Z]{1}).html$ /lexique/index.php?id_alpha=$2 [QSA,L]

for($i=97;$i<123;$i++){
    echo '<a style="font-size:1em" href="lettre-', chr($i), '.html" title="Menu rapide des termes à choix" ><strong>', chr($i-32), '</strong></a>';

}
 


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#5 25-09-2009 09:12:23

yule
Membre
Inscription : 24-09-2009
Messages : 35

Re : Url rewriting, je seche sur une partie alphabétique

Re,

C'est tout bon, Merci beaucoup !

Yule

Hors ligne

#6 25-09-2009 09:23:09

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Url rewriting, je seche sur une partie alphabétique

De rien, résolu donc ! smile


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#7 25-09-2009 10:44:32

yule
Membre
Inscription : 24-09-2009
Messages : 35

Re : Url rewriting, je seche sur une partie alphabétique

RE,

Presque.. J'avais oublié de préciser une chose.. Aiee c'est ma faute

La lettre choisi est dans une boucle, comment la récupérer pour faire appelle à ma base ? => , chr($i),

$requete3 = "SELECT id, titre FROM $tablelexique WHERE LEFT(titre, 1) = 'ICI LA LETTRE CHOISI'  and valid='0' ORDER BY titre ASC";

Désolé j'avais pas vu tout suite car par défaut, j'avais laissé la lettre G au hasard dans ma requête et pas celle que les visiteurs peuvent choisir..oups

Bon appétit
Yule

Hors ligne

#8 25-09-2009 10:48:44

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Url rewriting, je seche sur une partie alphabétique

Bha, si la ré-écriture fonctionne tu récupère la lettre dans $_GET['id_alpha'] non ?


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#9 25-09-2009 11:13:07

yule
Membre
Inscription : 24-09-2009
Messages : 35

Re : Url rewriting, je seche sur une partie alphabétique

re,

je faisais ainsi

 $list_alpha = "a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z";
$list_lettre = explode('-', $list_alpha);
for($i=97;$i<123;$i++){
    echo '<a style="font-size:1em" href="lettre-', chr($i), '.html" title="Menu rapide des termes à choix" ><strong>', chr($i-32), '</strong></a>';
 
}
unset ($list_alpha);
unset ($list_lettre);
?>

</p>
<p>
 

<?PHP
MYSQL_CONNECT($serveur,$user,$password) or die("Impossible de se connecter à la base de données");
mysql_select_db("$bdd") or die("Impossible de se connecter à la base de données");

// +------ recherche de la première lettre de la catégorie -------+
$requete3 = "SELECT id, titre FROM $tablelexique WHERE LEFT(titre, 1) = '$id_alpha' and valid='0' ORDER BY titre ASC";
etc...

Mais pas d'affichage en fonction de la lettre choisi

Hors ligne

#10 25-09-2009 12:14:56

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Url rewriting, je seche sur une partie alphabétique

Normalement :


if(!empty($_GET['is_alpha']{
   $id_alpha = $_GET['id_alpha'];
   // ici tu peux vérifier si id_alpha est bien un caractère alphabétique majuscule.

   //...
   $requete3 = "SELECT id, titre FROM $tablelexique WHERE LEFT(titre, 1) = '$id_alpha' AND valid='0' ORDER BY titre ASC";
   //.. etc
}
 

De plus tu n'as plus besoin des tableaux $list_alpha et $list_lettre.


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#11 25-09-2009 12:26:45

yule
Membre
Inscription : 24-09-2009
Messages : 35

Re : Url rewriting, je seche sur une partie alphabétique

 if(!empty($_GET['id_alpha']{
   $id_alpha = $_GET['id_alpha'];
  }

echo" $id_alpha";

il me retourne une erreure Parse error: syntax error, unexpected ';' pour cette ligne $id_alpha = $_GET['id_alpha'];

Hors ligne

#12 25-09-2009 12:41:31

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Url rewriting, je seche sur une partie alphabétique

Petite erreur de ma part :
if(!empty($_GET['id_alpha'])){


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#13 25-09-2009 12:46:02

yule
Membre
Inscription : 24-09-2009
Messages : 35

Re : Url rewriting, je seche sur une partie alphabétique

C'est tout bon !!

Merci pour ta patience et ta précieuse aide
Yule

Hors ligne

#14 25-09-2009 12:52:44

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Url rewriting, je seche sur une partie alphabétique

Ok, mais pour les "Parse error" il te faut apprendre à rapidement détecter les causes et les corriger. wink


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

Pied de page des forums