Afficher même page que précédent dans autre environnement

Résolu/Fermé
t671 Messages postés 1462 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 décembre 2024 - 4 févr. 2014 à 16:24
t671 Messages postés 1462 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 décembre 2024 - 6 févr. 2014 à 18:49
Bonjour,

Sur mon site, j'ai un environnement de gestion. C'est à dire qu'en cliquant sur le bouton "Gestion", j'ai le même site avec en plus possibilité de modifier des données. (Avec bien sûr accès sécurisé !)
Actuellement, quand je clique sur "Gestion", je me redirige sur la page d'accueil du site, mais dans l'environnement "Gestion", car j'ai écrit :
<p id="menu6" class="menu"
onmouseover="MontrerMenu('ssmenu6');"
onmouseout="CacherDelai();">
<a href="'./gestion/index.php?page=page_gestion"
onfocus="MontrerMenu('ssmenu6');">Gestion</a> </p>
Maintenant, je voudrais qu'en cliquant sur le bouton "Gestion", afficher la dernière page lue de l'environnement "normal", mais dans l'environnement "Gestion".
J'ai donc essayé ceci :
<?php
// URL de la page précédente
$page_prec = $_SERVER['HTTP_REFERER'];
$page = explode("/", $page_prec);
$dernière_page = "$page[0]/$page[1]/$page[2]/$page[3]/gestion/$page[4]/$page[5]";
?>

<p id="menu6" class="menu"
onmouseover="MontrerMenu('ssmenu6');"
onmouseout="CacherDelai();">
<a href="'$page[0]/$page[1]/$page[2]/$page[3]/gestion/$page[4]/$page[5]'"
onfocus="MontrerMenu('ssmenu6');">Gestion</a> </p>
Mais cela ne fonctionne pas !
Comment faire pour pour afficher une page avec l'URL précédente ?

Merci.
A voir également:

6 réponses

Salut,

c'est bien avec http referer que vous pouvez avoir l'url de la dernière page visitée..

Votre explication est un peu compliquée non?
"C'est à dire qu'en cliquant sur le bouton "Gestion", j'ai le même site avec en plus possibilité de modifier des données."

Bin heureusement que c'est le même site et que c'est sécurisé, en langage commun (par opposition au noir parler du Mordor) on appelle ça un intranet ou un gestionnaire, c'est le principe et la base des sites dynamiques.
Décrits ici aussi sous l'appelation front et back office:
https://www.commentcamarche.net/contents/318-front-office-et-back-office


Concrètement (ou sinon pourquoi ne pas utiliser le bouton précédent de votre navigateur?) vous pouvez faire comme ceci:
http://php.net/manual/fr/reserved.variables.server.php

Mais bien sûr cette variable de l'url il faut la mettre dans le lien html avec un echo PHP de la dite variable, javascript ne pourra plus servir puisque javascript= client donc fonctionne après que PHP(serveur) se soit exécuté.
0
t671 Messages postés 1462 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 décembre 2024 11
5 févr. 2014 à 11:04
Ben j'suis pas sauvé avec ça !
Et je ne peux utiliser le bouton précédent du navigateur, car en sélectionnant le bouton gestion "Gestion", je change de dossier, pour un dossier sécurisé. Et là, je veux afficher la page que j'avais précédemment.
0
Pourtant:

http://php.net/manual/fr/reserved.variables.server.php

$page_prec = $_SERVER['HTTP_REFERER'];

Donc votre lien s'écrit:
echo ('<a href="'.$page_prec.'" >Page précédente</a>');

Comme ce n'est pas une valeur fiable vous pouvez aussi stocker/envoyer par formulaire(hidden) l'url de chaque page du site lors d'un lien; ainsi vous la garder sous le coude pour construire le lien revenir à la page précédente(qui sera donc hors du dossier secure). Sinon je voit pas trop, peut être voir du côté javascript pour faire la même chose que vous vouliez en PHP.
0
t671 Messages postés 1462 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 décembre 2024 11
5 févr. 2014 à 15:03
Non, c'est pas ça ! Mais j'avance un peu !
En sachant que $_SERVER['SCRIPT_URI'] renvoie l'URL de la page actuelle et ses variables, voilà le lien que je veux faire :
<a href="./gestion/$_SERVER['SCRIPT_URI']" onfocus="MontrerMenu('ssmenu6');">Gestion</a>
Mais il reste une erreur !!!! Ponctuation ????
Comment l'écrire ?
0
Bin si c'est ça et ça marche, si vous voulez le faire en PHP.
C'est soit PHP soit javascript mais pas les 2 comme vous essayez de faire déjà.
En PHP soit vous utilisez $SERVER et affichez simplement le lien avec un echo(mais comme vous avez des pages de traitement et sécurisée entre cela ne marchera pas: la page précédente est celle du traitement et non la page que vous venez d'afficher/ pas confondre HTML et PHP déjà) ou alors en PHP vous utilisez dans tout vos liens un formulaire(et non un lien) en indiquant l'URL de la page dans laquelle vous êtes pour pouvoir la récupérer sur la page de traitement:
Pour tous vos liens internes:
<form METHOD='POST' VALUE='adresse_du_lien'>
<input type='HIDDEN' NAME='pageprecedente' value='
<?php echo $_SERVER['SCRIPT_URI'];
?>'
<input type='submit' VALUE='TEXTE DU LIEN'>
</form>


Et donc dans les pages ou vous désirez avoir un lien précédent:

<a href='<?php
echo $_POST['pageprecedente'];
?>'
Précédent
</a>
0
Ou bien sans formulaire mais plus casse gueule par réecriture de l'url en GET votre lien s'écrit comme ceci:

<a href='page_du_lien?pageprecedente=<?php echo $_SERVER['SCRIPT_URI']; ?>' >
TEXTE DU LIEN
</a>

Et puis pour avoir le bouton précédent dans la nouvelle page:

<a href='<?php
echo $_GET['pageprecedente'];
?>'
Précédent
</a>
0
t671 Messages postés 1462 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 décembre 2024 11
5 févr. 2014 à 16:24
Merci Waxtime.
Pour la deuxième proposition, j'écris ceci :
<a href="gestion/page_du_lien?pageprecedente=<?php echo $_SERVER['SCRIPT_URI']; ?>">Gestion</a>
mais le lien de la page affichée est
http://.........../gestion/page_du_lien?pageprecedente=

En fait, le $_SERVER['SCRIPT_URI']; ne s'affiche pas !??
0
Euh non vous avez rien compris...
et comme je viens d'expliquer 3 fois la même chose et vous écrire le code je vous conseille de relire et de tester...
Il faut bien sûr remplacer page_du_lien par le nom du fichier du lien :s

exemple
<a href="machin.php?pageprecedente=<?php echo $_SERVER['SCRIPT_URI']; ?>">Gestion</a>

//-----------------JE PRÉCISE VOTRE PAGE N'EST PEUT ÊTRE PAS machin.php ELLE PEUT AVOIR UN AUTRE NOM, C'EST CE NOM QU'IL FAUT METTRE-----------///

---> Bref une URL

Quand au tableau de $SERVER si je vous ai met un lien vers la doc c'était pour que vous la lisiez et voyez les éventuels problèmes et son utilisation.
Vous pourrez y lir d'ailleurs que ce n'est pas fiable.


Bon un dernier conseil autre que d'essayer de comprendre ce que j'ai écrit 3 fois de manière différente:

Si vous utiliser une variable vous n'avez qu'à la tester pour vérifier sa valeur et ainsi vous n'aurez pas de surprise.

Par exemple: echo $mavariable;
voire print_r($mavariable);

Bien sûr pour plus de renseignements sur les fonctions echo et print_r consultez la bible de toute personne faisant du PHP: le manuel.
0
edit quant je parle de $mavariable je pense plus à celle du tableau $_SERVER çàd:
echo $_SERVER['SCRIPT_URI'];
voire print_r($_SERVER['SCRIPT_URI']);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
t671 Messages postés 1462 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 décembre 2024 11
Modifié par t671 le 6/02/2014 à 10:41
OK ! J'ai très bien compris où tu voulais en venir. C'est peut-être moi qui me suis mal expliqué ..........
Si j'affiche l'URL de ma page avec echo $_SERVER['SCRIPT_URI'];, j'obtiens : /famille/index.php?page=fiche_indiv&id=6&famille=toto
Si j'affiche l'URL de ma page avec echo$_SERVER['PHP_SELF'];, j'obtiens : /famille/index.php
Et moi, j'aimerais avoir une redirection vers :
/famille/gestion/index.php?page=fiche_indiv&id=6&famille=toto
J'avais pensé faire un explode de l'URL :
$adresse = $_SERVER['REQUEST_URI'];
$adresse2 = explode("/", $adresse);
$adresse3 = $adresse2[0]/$adresse2[1]/$adresse2[2]/gestion/$adresse2[3];
Mon LIEN de redirection serait donc $adresse3.
Mais comment se rediriger avec une variables ?
0
t671 Messages postés 1462 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 décembre 2024 11
6 févr. 2014 à 18:49
J'ai trouvé :

<? 
$adresse=$_SERVER['REQUEST_URI'];
$adresse4 = explode("/", $adresse);
$adresse5 = ("$adresse4[1]/gestion/$adresse4[2]");
?>

<a href="http://www.toto.fr/<?php echo $adresse5; ?>" >Gestion</a>

Merci et A ++
0