Bonjour
savez vous comment récupérer rubrique10 dans une url du genre spip.php?rubrique10 ?
merci
Bonjour
savez vous comment récupérer rubrique10 dans une url du genre spip.php?rubrique10 ?
merci
tu peux parcourir $_GET avec foreach() ou même utiliser array_keys()
je vais essayer mais je vois pas trop
merci
A moins que la variable $_SERVER['QUERY_STRING'] ne vous convienne ?
je vais essayer aussi
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo array_shift(array_keys($_GET));
sur spip.php?rubrique10
je veux juste récupérer rubrique10 et c'est vraiment tout
si vous savez le faire précisément ?
merci
hum ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part $var = array_shift(array_keys($_GET));
Cette URL ressemble comme 2 gouttes d'eau à de la réécriture.Envoyé par jehanon
Si c'est le cas, il sera difficile d'obtenir cette URL très exactement, car Apache va la réécrire justement sous sa forme attendue (exemple) : spip.php?rubrique=10 (ou spip.php?rubrique_id=10 ... faut voir ...)
Si tu veux reproduire la même URL, il te faudras appliquer la même règle d'écriture des URLs, pour ça, il te faut la clé + valeur, chose que tu peux obtenir en faisant une boucle sur $_GET ou avec $_SERVER['QUERY_STRING'], comme on te l'a proposé.
D'ailleurs, as tu essayé ? et qu'est ce que tu obtiens ? (fais un echo pour voir).
j'ai désactivé cette réécriture d'url à la mord-moi-le-nœud , et ça donne rubrique=10 que je récupère facilement
merci
Tu vas peut être t'en mordre les doigts aussi, qui sait ... la réécriture est faite pour améliorer l'indexation des articles dans les moteurs de recherche, du coup, en la désactivant tu risque de tout perdre.j'ai désactivé cette réécriture d'url à la mord-moi-le-nœud, et ça donne rubrique=10 que je récupère facilement
Vu que tu connais maintenant la règle : rubrique=Id_de_la_rubrique, un simple code comme :
Va afficher : rubrique = 10
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $rub_id = (int)$_GET['rubrique']; echo 'rubrique = '.$rub_id.'<br> /';
Ceci va te permettre d'exploiter son Id, voir recréer le même lien par exemple, avec ou sans la règle d'ailleurs.
Puis de toute manière, que l'URL soit réécrite ou non, au bout, l'URL exploitable sera toujours de la forme : rubrique=Id_de_la_rubrique
Bref ... désactiver la réécriture ne sert à rien ... enfin, sauf erreur![]()
oui mais c'est tout simple à recuperer avec un ?rubrique=10
pour la réécriture franchement ?rubrique=10 ou ?rubrique10 pour les moteurs c'est rigoureusement pareil et dépourvu d'informations
Et bien non justement, car c'est pareil.oui mais c'est tout simple à recuperer avec un ?rubrique=10
Ceci dit, peut être que le lien, la règle en faite, au départ est mal faite, il y a erreur, se qui fait que tu ne parviens pas à récupérer le paramètre vu que le serveur (Apache) n'a pas appliqué la réécriture.
En somme, se qui t'oblige à supprimer la réécriture pour pouvoir récupérer le paramètre.
Je ne sais pas si je suis clair.
Ce qui est dommage (et pour comprendre), c'est que tu n'a jamais fais un retour sur ce que retourne $_GET ou $_SERVER['QUERY_STRING'], quand la réécriture est activée.
Un simple print_r($_GET) suffit pour voir s'il y a un paramètre ou pas.
S'il y en a pas, alors la réécriture est foireuse, tout simplement.
Je ne suis pas certain, pas sûr du tout que ça soit identique, car si on regarde bien, il n'y pas de couple : param=valeur mais juste un nom, quand bien même il y ait un ? (point d'interrogation).pour la réécriture franchement ?rubrique=10 ou ?rubrique10 pour les moteurs c'est rigoureusement pareil et dépourvu d'informations
Ceci dit, j'aurais plus vu une URL du genre : -http://domaine.com/un_article-a10.html (à titre d'exemple).
Faudrait voir ça avec des gars qui maitrise Spip, ce qui n'est pas mon cas, pour voir si cette règle d'écriture est normale, prévue par ce soft.
Sans vouloir insister (ça fait juste 3 fois que je lui donne la réponse) ...
Utilises :
Ce n'est pas du rewriting c'est juste qu'il n'ya qu'une clé du tableau associatif GET et non une clé + valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part $var = array_shift(array_keys($_GET));
Si, il y a réécriture, et ça ne pouvait pas être autrement d'ailleurs, et le fait de l'avoir supprimé il parvient cette fois à récupérer le paramètre.Envoyé par yabyab
A mon avis, la réécriture ne fonctionne pas comme prévue, ça déconne.
Donc si la réécriture déconne, $_GET retournera rien.
Ca été confirmé :
Il a un problème de réécriture, ça tombe sous l'sens.Envoyé par jehanon
Donc s'il y a erreur dans la réécriture, il y a de forte chance que $_GET soit nulle, ne retournera rien ...
Non ca ne tombe pas sous le sens, rien ne dit que réécrire :
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part ?rubrique=10
n'est pas le fonctionnement du système...
Code : Sélectionner tout - Visualiser dans une fenêtre à part ?rubrique10
N'embrouillons pas davantage jehanon, il avait une question, la réponse a été donnée. Merci.
Non, aucune solution ne lui a été donnée, il l'a trouvée tout seul : supprimer la réécriture.Envoyé par ThomasR
Personne lui a dit de le faire que je sache.
Si avec la réécriture il est impossible d'obtenir la clé et la valeur, puis après, en désactivant la réécriture on y parvient, alors c'est la réécriture qui fonctionne mal, ça tombe sous le sens.
Je ne vois pas où est l'embrouille.
De plus, désactiver la réécriture n'est pas la meilleure solution, tout juste un moyen provisoire, il serait bon de voir se qu'il ne va pas, et en particulier le mécanisme qui crée les liens.
La question est de savoir si ce qu'il a désactivé est bien un rewriting via mod_rewrite ou une simple gestion d'url interne à l'application ... étant donné la présence du "?" dans l'url je penche plutôt pour un rewriting interne à l'application (PHP) et qui donc n'altère en rien le contenu de $_GET.
C'est pourquoi je lui suggère de traiter la clé via :
Saches, runCodePHP, qu'un simple ?rubrique10 peut être généré et traité sans le mod_rewrite d'Apache, mais en pur PHP
Code : Sélectionner tout - Visualiser dans une fenêtre à part $var = array_shift(array_keys($_GET));
C'est pourquoi il est possible que la sois disante désactivation du rewriting ne soit en fait géré qu'au niveau de php et de la génération des urls de son CMS (Spip à priori).
En tout cas si l'url ?rubrique10 est vraiment géré via mod_rewrite et bien c'est un sacré gachi !
Partager