PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-07-2010 09:58:14

helvetdulac
Membre
Inscription : 18-07-2010
Messages : 8

retour à la page d'origine

Bonjour à tous,
Je cumule 2 tares :
j'ai 71 ans et le peu que je maitrise d'internet, je l'ai appris d'une matière empirique.
je veux toujours des "trucs pas possible" pour agrémenter mes pages perso.

malgré cela, je persévère et voici mon dernier problème.
sur mon site (en réaménagement perpétuel) http://www.cisalpin.com/index_new.html j'ai différents albums-photos qui sont consultables soit depuis un bouton générique, soit depuis une page spécifique de présentation.

pour l'instant, quand on ferme un album-photo, on revient sur la page générique des albums-photos quelque soit la page d'origine.
Il parait qu'il est possible d'incorporer une routine en PHP permettant après avoir parcouru un album-photo de revenir à la page d'origine de la visite.

Un "PHPiste" pourrait-t-il me confirmer que :
c'est possible à réaliser
les variables à utiliser pour que je puisse faire une recherche sur les exemples d'utilisation des dites variables et trouver comment ça fonctionne.
(j'ai le bouquin PHP/MySQL avec Dreamweaver 8) de J.M. Defrance, mais je n'ai pas trouvé de rubrique spécifique à mon problème)

Merci d'avance de vos remarques

Hors ligne

#2 18-07-2010 11:28:37

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : retour à la page d'origine

Pourrais-tu nous expliquer le cheminement que tu voudrai voir fonctionner ?
J'ai parcouru ton site afin de comprendre ce que tu voulais mais je n'ai pas eu le tilt.

Sinon quelques informations en vrac :
Pour stocker une variable tout au long d'un cheminement il existe la super-globale $_SESSION qui est de type array().
Et dans la super-globale $_SERVER tu retrouveras tout un tas d'informations dont la page courante, le script ou bien l'url avec les arguments.

Hors ligne

#3 18-07-2010 12:17:22

helvetdulac
Membre
Inscription : 18-07-2010
Messages : 8

Re : retour à la page d'origine

merci xTG de ta prompte réponse
quand j'ouvre un dossier (bricolage en l'occurrence), j'ai le choix avec 5 boutons, le dernier bouton "Albums-photos" présente tous les albums de la rubrique bricolage. Les autres bouton renvoient à un dossier spécifique.
si je choisi le dossier étage et que je clique sur une photo, j'ouvre une nouvelle page qui décrit les travaux effectués et j'ai la possibilité de visionner l'album correspondant à la pièce concernée.
après avoir visionné l'album, si je clique sur le bouton en haut à gauche de l'album, je reviens dans la page générique des albums-photos.
je me demande si, lorsque l'on consulte un album à partir d'une page spécifique, il est possible d'avoir une routine qui se souvient de la page d'origine.
exp: déclarer dans la page d'origine une variable qui indiquerait l'adresse de retour après visualisation de l'album-photo.

C'est peut-être farfelu, mais pourquoi pas poser la question ?

Hors ligne

#4 18-07-2010 14:07:30

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : retour à la page d'origine

Si je comprends bien tu voudrais que ton bouton de retour ne te renvoie pas à l'index des albums mais à l'affichage de la page Etage ?

PS: au passage j'ai trouvé un lien ne menant nulle part, dans la page "Aménagements intérieurs à l'étage" lorsque l'on clique sur la photo du velux.

Je n'avais pas regardé le code avant de te répondre. Utiliser les sessions serait s'embêter (du fait que la page où tu souhaites revenir est générée par du javascript).
Cependant la méthode que je vais te proposer ne fonctionne pas à tous les coups car cela dépend du navigateur de ton visiteur.

La variable $_SERVER['HTTP_REFERER'] contient la page de provenance du visiteur, tous les navigateurs ne la renseignent pas !
Le but est donc en fonction du contenu de cette variable d'afficher la bonne "popup".

Pour un soucis de facilité d'écriture du code on utilise un array() :

<?php
// initialisation des variables
$id_popup = "";
// Array contenant nos pages d'où peut provenir l'utilisateur et l'id de la popup qu'on doit lui afficher
$aPage = array( array( 'url' => 'url de la page',
                                   'id' => 'id de la popup correspondante'),
                         array( 'url' => 'url de la page',
                                   'id' => 'id de la popup correspondante')
 );
// On boucle pour trouver la page d'où provient le visiteur
foreach( $aPage as $value)
{
  // On teste si l'url correspond
  if( $value['url'] == $_SERVER['HTTP_REFERER'] )
  {
    // On possède la provenance du visiteur dans notre tableau, il vient donc d'une de nos galerie.
    $id_popup = $value['id']; // On récupère l'id de la popup
    // On sort de la boucle
    break;
  }
}
// On vérifie qu'on a récupéré une id de popup
if( !empty($id_popup) )
{
  // On doit afficher la popup à l'utilisateur, on change donc sa visibilité grâce à un code javascript
  echo '<script type="text/javascript">
             document.getElementById("'
. $id_popup . '").style.display = "block";
           </script>'
;
}
?>
 

C'est une des solutions faisables.
Il en existe d'autres peut être plus propre mais c'est la seule qui me venait à l'idée à l'instant.
Il est à noter que ta page choix_bricole.html doit être renommée en .php pour pouvoir accueillir ce code. Sinon tu auras un bête affichage du code en tant que texte.

Dernière modification par xTG (18-07-2010 14:09:07)

Hors ligne

#5 18-07-2010 17:43:58

helvetdulac
Membre
Inscription : 18-07-2010
Messages : 8

Re : retour à la page d'origine

Excuse moi, xTG, mais j'ai présumé de ma compétence car ton script me bloque complètement, n'ayant pas une once de maitrise du PHP.

Je me suis surement mal expliqué, (on me fait souvent ce reproche) mais je me demande si je ne complique pas trop.
un album-photo peut-être lu seulement à partir de 2 pages distinctes:
la page générique listant TOUS les albums
une page spécifique affichant un SEUL album.

est-il possible de déclarer une variable contenant un hyperlien spécifique dans chaque page donnant accès aux albums et une routine qui lit la variable avec le lien dans chaque album pour revenir à la page originale ?

Ce n'est peut-être pas très orthodoxe, mais pour un béotien, c'est déjà beaucoup si ça marche.

voilà, c'est une dernière tentative avant abandon

Hors ligne

#6 18-07-2010 18:21:15

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : retour à la page d'origine

Ah oui je comprends mieux...
Dans ce cas cela simplifie énormément le problème.

D'une part il te faut changer l'extension de la page où tu auras le lien de retour en .php afin de pouvoir interpréter le code.
Ensuite dans tes liens menant à cette page il te faut les manier de la sorte :

<a href="chemin/suite_du_chemin/ma_page_d_album.php?une_variable_d_url=une_valeur

Quand nous serons sur la page d'arrivée tu retrouveras la variable dans la super-globale $_GET.
Il ne nous reste donc plus qu'à faire des conditions au niveau du lien de retour grâce au PHP :

<?php
// Test de la présence de la variable dans l'url
if( !empty($_GET['une_variable_d_url']) )
{
  // Ensuite nous affichons le lien en fonction de la valeur de la variable
  switch($_GET['une_variable_d_url'])
  {
    case 'une_valeur' : echo '<a href="../mapage.html">Mon lien de retour</a>';
        break;
    case 'une_autre_valeur' : echo '<a href="../dossier/une_autre_page.html">Mon lien de retour</a>';
        break;
    default : echo '<a href="../index.html">Mon lien de retour</a>'; // Cas qui sera exécuté si le contenu de la variable ne correspond à aucun des autres cas
        break;
  }
}
?>

Voilà, une autre tentative de répondre à ton problème et je serai prêt à y répondre une fois de plus encore si ce n'est toujours pas cela. smile

Hors ligne

#7 18-07-2010 21:30:05

helvetdulac
Membre
Inscription : 18-07-2010
Messages : 8

Re : retour à la page d'origine

Je pense que ton code est bon, mais j'ai du mal à l'incorporer dans mes pages actuelles.

dans le fichier origine
album_construction-etage.php
j'ai placé la ligne
<a href="../album_construction-etage.php?une_variable_d_url=une_valeur

par contre dans le fichier album
chambre-nord.html
qu'elle est l'utilité de faire un test puisque il n'y à qu'une possibilité de retour et comment je peut intégrer le code PHP en remplacement du code
<td style="width:31px;">
  <a href="../album_construction.html" target="_parent">
    <img style="border:0;" src="res/up.gif" onmouseover="this.src=up1.src" onmouseout="this.src=up0.src" width="31" height="31" title=" Remonter d'un niveau " alt="Up" id="up" /></a></td>

excuse si mes remarques te semblent puériles mais je n'arrive pas à coordonner le processus.

Dernière modification par helvetdulac (18-07-2010 21:30:57)

Hors ligne

#8 18-07-2010 21:38:21

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : retour à la page d'origine

Je n'ai pas compris cette partie de ton explication alors :

un album-photo peut-être lu seulement à partir de 2 pages distinctes:
la page générique listant TOUS les albums
une page spécifique affichant un SEUL album.

Si tu n'as qu'une seule page en provenance quelle est l'utilité d'un script te donnant un lien ? Il ne peut être que statique ce lien vu que tu ne peux accéder à la page que par un seul moyen.

Hors ligne

#9 18-07-2010 23:34:20

helvetdulac
Membre
Inscription : 18-07-2010
Messages : 8

Re : retour à la page d'origine

il y a 2 possibilités de retour à partir d'un album-photo.
la lecture à été faite en partant de la page générique du dossier (le bouton Albums-photos du fichier choix_bricole.html avec retour à cette page.
la lecture a été faite en partant d'un sous-dossier (album_construction-etage ou album _construction-rez ou album_construction-ext ou album_construction-xxx avec retour dans l'une de ces pages.
c'est pour avoir un retour logique en cas de lecture et ne pas devoir faire plusieurs manipulations pour retrouver le sous-dossier d'origine.

Dernière modification par helvetdulac (18-07-2010 23:36:02)

Hors ligne

#10 19-07-2010 06:30:02

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : retour à la page d'origine

Oui donc j'avais bien compris.

Pour ton bout de code :

<td style="width:31px;">
<?php
// Test de la présence de la variable dans l'url
if( !empty($_GET['une_variable_d_url']) )
{
  // Ensuite nous affichons le lien en fonction de la valeur de la variable
  switch($_GET['une_variable_d_url'])
  {
    case 'une_valeur' : echo '<a href="../album_construction.html" target="_parent">';
        break;
    case 'une_autre_valeur' : echo '<a href="../dossier/une_autre_page.html" target="_parent">';
        break;
    default : echo '<a href="../album_construction.html" target="_parent">'; // Cas qui sera exécuté si le contenu de la variable ne correspond à aucun des autres cas
        break;
  }
}
?>
    <img style="border:0;" src="res/up.gif" onmouseover="this.src=up1.src" onmouseout="this.src=up0.src" width="31" height="31" title=" Remonter d'un niveau " alt="Up" id="up" /></a></td>

Dernière modification par xTG (19-07-2010 06:31:00)

Hors ligne

#11 19-07-2010 13:01:57

helvetdulac
Membre
Inscription : 18-07-2010
Messages : 8

Re : retour à la page d'origine

Bonjour,
j'ai fait les modifs en espérant ne pas avoir fait d'erreurs, j'ai vérifié plusieurs fois.


dans la page spécifique d'origine (album_construction-etage.php, j'ai entré directement après la balise </head>
</head>
<a href="../album_construction-etage.html?une_variable_d_url=une_valeur

(remarque: mes lignes de séparations
<!-- ############################################################################# -->
qui étaient affichées en couleur grise sont affichées maintenant en bleu. Est-ce normal)

dans la page album (chambre-nord.php), j'ai entré les lignes
<td style="width:31px;">
      <?php

      // Test de la présence de la variable dans l'url

      if( !empty($_GET['une_variable_d_url']) )
      {
        // Ensuite nous affichons le lien en fonction de la valeur de la variable
        switch($_GET['une_variable_d_url'])
        {
          case 'une_valeur' : echo '<a href="../album_construction.html" target="_parent">';
              break;
          case 'une_autre_valeur' : echo '<a href="../dossier/une_autre_page.html" target="_parent">';
              break;
          default : echo '<a href="../album_construction.html" target="_parent" target="_parent">'; // Cas qui sera exécuté si le contenu de la variable ne correspond à aucun des autres cas
              break;
        }
      }
       ?>
          <img style="border:0;" src="res/up.gif" onmouseover="this.src=up1.src" onmouseout="this.src=up0.src" width="31" height="31" title=" Remonter d'un niveau " alt="Up" id="up" /></a></td>

<td style="width:20px;">


quand je test à partir du serveur, si j'entre dans un album, j'ai systématiquement un message d'erreur pour le retour

Not Found
The requested URL / pages/bricolage/album_construction/g_cree-chambre-nord/album_construction.html was not found on this server

ce qui ne me surprend pas, le fichier cherché n'étant pas dans ce dossier, mais je n'ai pas trouvé ou était l'erreur dans la déclaration.

Hors ligne

#12 19-07-2010 14:35:08

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : retour à la page d'origine

Oulala !!!
Bon mettons nous au travail à propos du HTML.

Le code affiché de ta page doit se trouver dans la balise <body> et non directement après la fin de la balise d'entête.
Ensuite le lien que tu nous mets n'est pas fini.
Une balise <a> doit être de la sorte :

<a href="le lien">un texte ou un contenu d'affichage</a>

La balise n'étant pas fermée de là provient le changement de coloration syntaxique.

Et sinon tu ne postes pas le bon code pour ton erreur.
Car le bouton (image de retour) fonctionne bien actuellement sur ton site.
J'ai repéré l'erreur sur le lien se trouvant à côté mais il me faudrait voir le code que tu as mis pour obtenir ce problème de redirection.

Et sinon une petite correction du code que je t'ai proposé suite à une chose qui n'était pas prise en compte.

<td style="width:31px;">
<?php
// Test de la présence de la variable dans l'url
if( !empty($_GET['une_variable_d_url']) )
{
  // Ensuite nous affichons le lien en fonction de la valeur de la variable
  switch($_GET['une_variable_d_url'])
  {
    case 'une_valeur' : echo '<a href="../album_construction.html" target="_parent">';
        break;
    case 'une_autre_valeur' : echo '<a href="../dossier/une_autre_page.html" target="_parent">';
        break;
    default : echo '<a href="../album_construction.html" target="_parent">'; // Cas qui sera exécuté si le contenu de la variable ne correspond à aucun des autres cas
        break;
  }
}
else
{
  // Cas où la variable n'est pas renseignée dans l'url
  echo '<a href="../album_construction.html" target="_parent">';
}
?>
    <img style="border:0;" src="res/up.gif" onmouseover="this.src=up1.src" onmouseout="this.src=up0.src" width="31" height="31" title=" Remonter d'un niveau " alt="Up" id="up" /></a></td>

Dernière modification par xTG (19-07-2010 14:35:54)

Hors ligne

#13 19-07-2010 19:04:06

helvetdulac
Membre
Inscription : 18-07-2010
Messages : 8

Re : retour à la page d'origine

La vie n'est pas un long fleuve tranquille  !!!!
j'ai effectué les modifications mais sans résultat, je ne sais pas ou est le problème ?

suite des manipulation effectues
page d'accueil                                      presser bricolage
page bricolage                                     presser etage
                                                          presser sur la première photo
page album_construction-etage             presser sur la première photo
page chambre-nord                              presser sur up       le menu géneral des albums s'affiche au lieu de la page album_construction-etage

autre séquence
page chambre-nord                             presser sur une photo             l'album s'affiche et peut être consulté
                                                         presser sur le bouton retour    le message d'erreur s'affiche

petite question : en principe, la fonction "echo" affiche le contenu de la variable, or je ne vois rien s'afficher

Dernière modification par helvetdulac (19-07-2010 19:05:59)

Hors ligne

#14 19-07-2010 19:09:42

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : retour à la page d'origine

Dans notre cas la fonction echo n'affiche pas la variable mais le lien en fonction de la variable.

Et pour tout ce que tu demandes c'est juste de la configuration de ce que je t'ai donné. hmm
Il semblerait donc que tu n'ai aucunement compris le fonctionnement du script. Je te l'avais donné pour un seul exemple, il est donc normal que cela ne fonctionne pas pour tout ce que tu testes.

Le but était de personnaliser le lien de retour en fonction de la valeur de la variable.
Donc pour chaque lien tu dois donner une valeur particulière et dans la page d'arrivée donner le lien correspondant dans le switch en fonction de cette valeur.

Dernière modification par xTG (19-07-2010 19:13:55)

Hors ligne

#15 04-08-2010 18:40:04

helvetdulac
Membre
Inscription : 18-07-2010
Messages : 8

Re : retour à la page d'origine

Bonjour à tous,
je m'excuse de ce long silence, mais j'ai du m'absenter.
actuellement, je ne suis toujours pas très avancé !!!
j'ai, grâce à la ligne
<td class="ligne"><a href="album_construction/album_construction-etage.php?retour=choix_bricole.html">  <img src="../../images/origine-1.jpg" alt="..."  width="300" height="200"></a>
pu faire passer dans la page concernée l'adresse de la page de retour après visionnage des photos
j'affiche sans problèmes l'adresse de l'url de retour (variable retour), mais je n'arrive pas à comprendre comment insérer le code pour que la variable "retour" remplace l'adresse "../choix_bricole.html"

Je n'ai pas réussi avec les exemples qui m'ont été proposé, en potassant, je suis arrivé à cette 1/2 mesure mais je coince pour avancer.

merci de m'indiquer ou je fais fausse route.

Dernière modification par helvetdulac (04-08-2010 18:41:37)

Hors ligne

Pied de page des forums