OVH Cloud OVH Cloud

redirection et HTTP_REFERER

4 réponses
Avatar
yvon.thoravalNO-SPAM
je fais une petite manip d'essai but :

pouvoir utiliser des adresses comme ça :

http://salut.les.copains/truc/

au lieu de :

http://salut.les.copains/index.php?page=truc


donc, je crée un dossier truc, avec un script "index.php" dedans qui ne
fait rien qu'appeller le script "index.php" du root, mon aborescence :

le "site" :

essai.html
index.php (1)
truc/
index.php (2)


dans index.php (2) j'ai :

<?php
header("Location: http://salut.les.copains/index.php");
?>

dans index.php (1), je ne fais que printer HTTP_REFERER :
<?php
print("Location: $_SERVER[HTTP_REFERER]");
?>

enfin dans essai.html j'ai juste un lien vers "truc/index.php" :
[...]
<a href="index/index.php">index/index</a>
[...]

bon, ce que je ne pige pas ce que index.php (1) me printe :
Location: http://salut.les.copains/essai.html
au lieu que j'espérais (naïvement?) obtenir :
http://salut.les.copains/truc/index.php

auquel cas j'aurais pu tripatouiller la chaine et filer à sablotron le
bon argument, à savoir "truc".

Bon, je suis amèrement déçu, qu'est-ce que j'ai loupé ???

--
yt

4 réponses

Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:


auquel cas j'aurais pu tripatouiller la chaine et filer à sablotron le
bon argument, à savoir "truc".


je m'auto-répond, je n'ai pas pigé pourquoi ça ne marche pas ainsi par
contre, j'ai trouvé un moyen de contourner le pb :

dans index.php (2) je mets :

<?php
$pathes = explode("/", $_SERVER['PHP_SELF']);
header("Location:
http://mon.domain.univers/index.php?page=".$pathes[count($pathes) - 2]);
?>

et là ça roule, reste à faire un set cookie avec pageÎkifô
au lieu de se trimbaler avec ?pageÎkifô derrière l'URL.

bon, question, vous dites stop javascript il y a des gars qui
débraillent, d'accord, mais qu'en est-il pour les cookies, parce que là
sans les cookies, je suis marron ;-)
--
yt

Avatar
Olivier Miakinen
je fais une petite manip d'essai but :

pouvoir utiliser des adresses comme ça :
http://salut.les.copains/truc/
au lieu de :
http://salut.les.copains/index.php?page=truc


Si les deux doivent vraiment être équivalents, quelques règles de
réécriture dans un .htaccess devraient faire le boulot. Le bon groupe
sera alors fr.comp.infosystemes.www.serveurs.

donc, je crée un dossier truc, avec un script "index.php" dedans qui ne
fait rien qu'appeller le script "index.php" du root, mon aborescence :

le "site" :

essai.html
index.php (1)
truc/
index.php (2)


dans index.php (2) j'ai :

<?php
header("Location: http://salut.les.copains/index.php");
?>


???

Pourquoi forcer le navigateur à faire une autre requête ? Il te suffit
d'écrire ceci :

<?php
include('../index.php');
?>

[...]

auquel cas j'aurais pu tripatouiller la chaine et filer à sablotron le
bon argument, à savoir "truc".


<?php
$argument = "truc";
include('../index.php');
?>

Y a quelque chose qui m'a échappé ?

Avatar
yvon.thoravalNO-SPAM
Olivier Miakinen <om+ wrote:


Si les deux doivent vraiment être équivalents, quelques règles de
réécriture dans un .htaccess devraient faire le boulot. Le bon groupe
sera alors fr.comp.infosystemes.www.serveurs.


ben ça je sais que ce n'est pas possible sur free, ce n'est pas
activé...(la réécriture par .htaccess)

donc, je crée un dossier truc, avec un script "index.php" dedans qui ne
fait rien qu'appeller le script "index.php" du root, mon aborescence :

[...]


<?php
header("Location: http://salut.les.copains/index.php");
?>


???

Pourquoi forcer le navigateur à faire une autre requête ? Il te suffit
d'écrire ceci :

<?php
include('../index.php');
?>

[...]

auquel cas j'aurais pu tripatouiller la chaine et filer à sablotron le
bon argument, à savoir "truc".


<?php
$argument = "truc";
include('../index.php');
?>

Y a quelque chose qui m'a échappé ?


attends je suis troublé là (j'ai $un peu$ bu hier soir) oui, je pige ce
que tu vux dire ça y est, dans ce cas, ce qui évite le cookie d'ailleurs
(autre soluce que j'ai trouvé), ça fait un fichier différent par page,
donc il faut le gérer, ça m'embête, à moins que je trouve un procédé
simple pour fabriquer toutes ces pseudo-pages automatiquement.
dans ma soluce, toutes les pseudo-pages sont identiques, c'est le path
vers le fichier que je reprend comme argument.

donc effectivement ta solution me plait bien je peux la combiner avec la
mienne qui prend une partie du path pour faire :
$argument="une partie du path tripatouillé"
donc tous les pseudo index.php sont identiques

MAIS, alors là, j'ai une question, si je fais ça, c'est à dire :
<?php
$pathes=explode("/", $_SERVER['PHP_SELF']);
$argument=$pathes[count($pathes) - 2];
include('../index.php');
?>

le script appellé est (tjs même exemple) :
/truc/index.php (avec / le root du site)

qu'en est-il dans ce cas là des adresses relatives ? je veux dire, dans
:
/index.php le html généré pointe vers, par ex un ficheir css à l'adress
relative : themes/mon_theme.css (en absolu par rapport au root c'est
simplement /themes/mon_theme.css)

qu'est-ce qui va être vu, appelle t'on "mon_theme.css" depuis truc/ ou
depuis / ?

un petit test me le dira sans doute )))

merci beaucoup pour ton conseil plus que judicieux.
--
yt


Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:


qu'est-ce qui va être vu, appelle t'on "mon_theme.css" depuis truc/ ou
depuis / ?


bien sûr j'ai procédé au "petit test", c'est comme en shell script
(unix) le path est depuis l'appellant, mais je n'ai qu'à changer toutes
mes adresses dans mon fichier xml, c'est tout bon.

de la même manière je gère la langue avec :

truc_en/
index.php (version en langue anglaise)

merci beaucoup :

bilan : c'est plus simple et judicieux et surtout deux cookies en moins,
plus encore si les gens ne veulent pas de cookies, ils perdent juste le
bénéfice des thèmes différents, pour le reste page, langue) le site
reste fonctionnel.

encore merci, j'ai une facheuse tendance à me compliquer la vie pour
rien ;-)

--
yt