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

Résolu
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -
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.

6 réponses

Rincewind
 
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 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
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
Rincewind
 
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 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
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
Waxtime
 
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
Waxtime
 
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 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
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
Waxtime
 
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
Waxtime
 
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 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
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 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
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