Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1477 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récup URL complexe (index.php/#/mapage/)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récup URL complexe (index.php/#/mapage/)

n°1571409
naeh
Posté le 07-06-2007 à 11:16:15  profilanswer
 

Bonjour à tous :)
 
donc voilà, un petit probleme,
je voudrais récuperer l'url complete de la page ou du moins ce qui se trouve apres le #
 
mes urls seront comme suit :
 
www.site.com/#/mapage/
www.site.com/index.php/#/mapage/
 
sachant que dans les 2 cas c'est la meme page qui fait le traitement (index.php); en fonction de ce que j'ai apres le # je fait un include de l'html de la bonne page.
 
je suis obligé de garde ce style d'url parce que le but du jeu est de faire cohabiter une version html accessible avec une version full flash du site (sans refaire le flash, donc pas touche au format des url)
 
et là impossible de récupérer ce qu'il y'a apres #
j'ai essayé :

Code :
  1. $_SERVER['QUERY_STRING'] --> kedall
  2. $_SERVER['REQUEST_URI'] --> kedall
  3. $_SERVER['SCRIPT_FILENAME'] -->kedall


 
alors si quelqu'un peut m'aider ca serait très sympa :)
 
merci.

mood
Publicité
Posté le 07-06-2007 à 11:16:15  profilanswer
 

n°1571455
colonelhat​i
Posté le 07-06-2007 à 11:57:13  profilanswer
 

Bonjour,
 
avec ceci:

Code :
  1. $tab = explode('#', $_SERVER['PHP_SELF']);
  2. echo $tab[1];


 
?

n°1571460
naeh
Posté le 07-06-2007 à 12:00:35  profilanswer
 

$_SERVER['PHP_SELF'] me retourne index.php il va pas plus loin donc le explode ne retourne rien puisqu'il y'a pas de # dans ce que je lui donne.

n°1571485
FlorentG
Unité de Masse
Posté le 07-06-2007 à 12:58:45  profilanswer
 

C'est totalement impossible, ce qui vient après le # n'est pas envoyé au serveur, il est gardé par le navigateur. Si tu regardes la requête HTTP envoyé, tu vera qu'il n'apparaît nulle part. C'est ce qu'on appelle le fragment identifier

n°1571489
FlorentG
Unité de Masse
Posté le 07-06-2007 à 13:09:35  profilanswer
 

Plus précisement, le protocole HTTP définit une URI comme :

Citation :

http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]


 
Pas de # à l'horizon :( En Flash c'est évidemment possible de récupérer le FI, vu que c'est fait côté client, on peut très bien accéder à l'url en cours affichée par le navigateur.

n°1571495
dwogsi
Défaillance cérébrale...
Posté le 07-06-2007 à 13:15:22  profilanswer
 

Ba sinon, si j'ai bien compris, le # est utilisé comme une sorte d'identifiant de séparation dans ton cas. Auquel cas il suffit d'utiliser un autre caractère comme identifiant et ça passera très bien.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1571499
FlorentG
Unité de Masse
Posté le 07-06-2007 à 13:16:56  profilanswer
 

Et il va donc falloir refaire le Flash :( Celui qui l'a fait aurait dû savoir les différences client et server-side, et le fonctionnement n'un navigateur et du protocole HTTP... Ca aurait été moins la galère

n°1571505
dwogsi
Défaillance cérébrale...
Posté le 07-06-2007 à 13:19:29  profilanswer
 

A merde j'avais lu en diagonale... Donc ouai ça pose des problèmes au niveau du flash.
Ceci-dit ça me parait quand même être la solution la plus propre.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1571573
naeh
Posté le 07-06-2007 à 15:02:15  profilanswer
 

merci pour vos réponses :)
 
sinon y'a pas moyen de bidouiller cette url avec l'url rewriting en donnant a php les variables qu'il veut c'est a dire ?page=mapage tout en gardant #/mapage/ (necessaire pour le flash) ?

n°1571580
dwogsi
Défaillance cérébrale...
Posté le 07-06-2007 à 15:06:54  profilanswer
 

Même avec de l'url rewrinting ça ne change rien puisque ça n'arrivera pas jusqu'au serveur. Il est peut être possible de faire quelque chose comme ça :

 

Tu envois le client ver ?page=blabla
Tu stock en session que la page à afficher prochainement c'est blabla
Ensuite tu renvois le client vers #/blabla
Et a partir des session tu sais ce que tu dois inclure

 

Mais c'est pas terrible et a part ça je vois pas vraiment d'autre solution que de refaire le flash.


Message édité par dwogsi le 07-06-2007 à 15:07:29

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
mood
Publicité
Posté le 07-06-2007 à 15:06:54  profilanswer
 

n°1571879
naeh
Posté le 07-06-2007 à 20:47:58  profilanswer
 

bon alors, aucun moyen en vue ?
 
meme le flash on ne peut pas le modifier en fait, les # c'est la lib SWFAdresse qui les mets pour :
- ne pas recharger la page quand on change de page dans le flash
- et avoir des urls différentes pour chaque page, ne pas passer toujours par la page home.
 
donc il s'avere que le # est obligatoire.
 
le truc c'est que pour la version html du site, on doit avoir les meme urls que la version flash (referencement, accessibilité, etc.)
 
alors, d'apres vous, qu'elle serait la solution ? si toute fois il y'en a une :)
 
merci.

n°1572028
FlorentG
Unité de Masse
Posté le 08-06-2007 à 10:31:14  profilanswer
 

Malheureusement y'en a aucune :'( Il faut d'autres URL pour la version HTML...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récup URL complexe (index.php/#/mapage/)

 

Sujets relatifs
Listes en python : IndexError: list index out of range HmmmMovieClipLoader : chargement swf et recup contenu
[C] Programmation fonction recup Bits port Série[Joomla] Changement de nom de domaine
[html] executer ou pas le fichier index.htmGenerer des fichiers index.html
recuperer URL avec javascriptMysql - Compression de données texte / index fulltext ?
Ecriture automatique d'URLURL Rewriting
Plus de sujets relatifs à : Récup URL complexe (index.php/#/mapage/)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR