IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variable SESSION subtitue pour les POST ?


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Par défaut Variable SESSION subtitue pour les POST ?
    Bonjour,

    Je débute dans la programmation web et j'aimerais avoir des variables de $_SESSION qui se substituent aux $_POST pour que quand un utilisateur à partir d'une page constituée d'une liste d'annonces (ces annonces sont générées avec un formulaire en POST). Lorsqu'une personne va voir une annonce, puis clique sur "précédent" dans son navigateur, pour retourner à la liste d'annonce, qu'il ne se retrouve pas confronté à une page ne se chargeant pas par manque de requête POST.

    J'espère avoir été clair.. pas simple de rechercher cela sur google..

    J'ai fait comme ça:

    Sur ma page qui liste une première fois la liste d'annonce, l'utilisateur vient de valider un formulaire, donc la requete POST est présente, et les variable de SESSION doivent être créent:

    liste.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    if (isset($_POST['var1']) AND isset($_POST['var2']) ...){
     
    //utilisation des POST...
    echo mysql_real_escape_string($_POST['var1']);
     
    //...
    // Les variables de SESSION seront initialisées, on se basera sur les POST qui ont été générées .
     
    $_SESSION['var1']=$_POST['var1'];
    $_SESSION['var2']=$_POST['var2'];
     
    } else if (isset($_SESSION['var1'] AND $_SESSION['var2'])){
     
    // ici pas de POST, l'utilisateur doit revenir d'une annonce.. donc on utilise les variables de session..
     
    echo mysql_real_escape_string($_SESSION['var1']);
     
    }
    Sauf que cela ne fonctionne pas.. lorsque je clique dans précédent pour revenir sur cette page, elle ne se génère pas, on ne passe pas dans le else if ..

    Est-ce que ma solution est la bonne ?
    Y a t il quelque chose de spécial à savoir (si ce n'est ouvrir la session avant toute chose dans la page)
    La page devrait-elle se charger seule et utiliser mes variables de SESSION ?

    Merci beaucoup

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    // sessions si existantes (ou initialisation)
    $_SESSION['var1'] = (isset($_SESSION['var1']))? $_SESSION['var1'] : '';
    $_SESSION['var2'] = (isset($_SESSION['var2']))? $_SESSION['var2'] : '';
    // on remplace les sessions par les valeurs postées (ou on garde les anciennes valeurs)
    $_SESSION['var1'] = (isset($_POST['var1']))? $_POST['var1'] : $_SESSION['var1'];
    $_SESSION['var2'] = (isset($_POST['var2']))? $_POST['var2'] : $_SESSION['var2'];
    ?>
    Avec la forme :
    $variable = (condition)? 'valeur si vrai' : 'valeur si faux';

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Par défaut
    Salut Jreaux, merci pour ta répoonse. Ma question repose sur le fond et non la forme, mon if était pour présenter les choses, je fais pas mal de chose avec mes variables, et là n'est pas le souci.

    Pour faire simple:
    Est-ce que les variables $_SESSION sont la bonne méthode pour éviter à l'utilisateur de recharger sa page et faire regénérer au navigateur une ancienne requête POST ?

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 368
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 368
    Billets dans le blog
    17
    Par défaut
    annonces sont générées avec un formulaire en POST
    Y'a t-il une raison valable à cela ? A priori mieux vaudrait passer par du GET. Non seulement le bouton précédent ne poserait plus de problème mais en plus l'utilisateur pourrait copier/coller l'URL et l'envoyer à un ami ou enregistrer la page/recherche en favori.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 66
    Par défaut
    Voilà une question justifiée, j'ai cherché à utiliser GET, et je l'ai fait d'ailleurs jusqu'ici, sauf que je veux pouvoir réécrire mes urls (avec des RewriteRules dans mon htaccess). La réécriture me limite à 9 variables.. je ne peux donc pas tout passer, j'en ai une bonne 15ène, du coup je suis obligé de trouver une alternative..

Discussions similaires

  1. [WS 2008] impossible de joindre un domaine pour les poste sous W7
    Par aityahia dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 30/04/2010, 23h21
  2. variable session depuis toutes les pages
    Par faamugol dans le forum Langage
    Réponses: 13
    Dernier message: 20/04/2008, 16h05
  3. Réponses: 10
    Dernier message: 21/02/2008, 17h59
  4. [XSL-FO] Variable de style pour les textes.
    Par Little_flower dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/05/2007, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo