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 :

retour à page initiale après connexion


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut retour à page initiale après connexion
    Bonjour,

    je refais une discussion car je croyais avoir résolu mon problème de la discussion précédente, mais j'ai trouvé un cas où ça ne marche pas.

    Cette fois, je vais essayer de donner des détails.

    D'abord, j'ai écrit un formulaire de connexion :
    login.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <form   action="<?php echo SITE_URL_HTTP;?>/pagesave/authenticate.php" method="post">
    …
    </form>

    avec son action authenticate.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php //action de login.php
    session_start();
    function authentification()
    {
    
    $_SESSION['auth']=$auth;  // mise de $auth en session
    return($auth);   // la valeur de retour de la fonction authentification est $auth
    }
     $auth=authentification(); //l'action  exécute la fonction authentification() dont la valeur de retour est mise dans la variable $auth
    if ($auth) { ?> <script> history.go(-1);</script> <?php }// si connexion réussie, on va à la page précédente (en js) et sinon, on retourne dans le formulaire de connexion (login.php)
    	else  { header ('Location: '."../".'login.php' ); }

    J'inclus le fichier login.php dans mes différentes pages. Ici le fichier index.php pour la mise au point :
    index.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    session_start();
    header( 'content-type: text/html; charset=utf-8' );
    $_SESSION['ici']=__FILE__; //on mémorise en session l'URL de ce fichier (plus utilisé !)
    if (!(isset($_SESSION['auth'])) || !$_SESSION['auth']) include_once('login.php');  //si pas connecté, on va dans le formulaire de connexion (login.php) et sinon "connexion OK"
    else echo "connexion OK<br/>";?>

    Le retour à la page précedente en js de la ligne 10 de authenticate.php fonctionne bien si dès le départ, on entre des paramètres de connexion corrects, mais si on commence par entrer des paramètres incorrects, on revient au formulaire de connexion (login.php)(normal) ; si cette fois, on entre des paramètres corrects, la ligne 10 de authenticate.php nous redonne login.php au lieu de index.php, donc comment serait une bonne façon de procéder ?

  2. #2
    Membre expérimenté
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 385
    Par défaut
    Bonjour,
    Pourquoi ne pas utiliser <meta http-equiv="refresh" content="0; URL='http://link.com'" />?
    Inconvénient tu ne reviens pas forcément à la page précédente
    avantage tu es sur que le refresh c'est bien déroulé.

    Le soucis ici sauf erreur de ma part c'est que lorsque tu envoie un formulaire erroné tu rafraichis la page. Donc au niveau JS je suppose qu'il prends cela comme une nouvelle page donc quand le formulaire est bon (à la 2e fois) il retourne d'un crans en arrière comme demandé. tu te retrouves donc à l'envoie précédent.
    Je verrais donc 2 options:
    - Soit tu gardes en mémoire la page précédente.
    - Soit l'envoie du formulaire, la gestion,... tu gère le tout via de l'ajax ce qui évite que ta page soit rafraichie.
    Dans le 2e cas la gestion php se déroule via l'ajax et non via le submit par défaut de html (ne pas oublier de désactiver l'action par défaut du submit via js) quand même et tu peux faire un retour en arrière.

    Bonne journée

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse ; l'Ajax, je préfère éviter, vu que je ne maîtrise pas.

    Mémoriser la page précédente, j'y ai pensé et utiliser une variable de session, mais je garde quoi en mémoire (__FILE__, $_SERVER['HTTP_REFERER'], autre) et après, je fais comment la redirection ?

  4. #4
    Membre expérimenté
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 385
    Par défaut
    Tu ne peux pas mémoriser la page précédente coté serveur étant donné que tu dois récupérer l'historique de l'utiliateur
    donc il faut voir si tu sais le faire coté user je dirais donc via cookie ou via (il y a quelques chose coté user comme les $sessions mais je n'ai des cours de js que depuis 2 semaines je ne peux du coup pas t'aider plus que ça) http://prntscr.com/nbtuv2
    Pour être honnête je pense que via l'Ajax ce serrait le plus propre.
    Maintenant je suis encore débutant

    Edit visiblement il serrait possible via php de récupérer la page précédente de l'utilisateur: https://stackoverflow.com/questions/...-url-using-php
    Quand à la redirection je dirais d'utiliser la meta j'ai toujours fais comme cela et ne sais pas s'il y à une manière plus propre.

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Finalement, après quelques recherches, je suis arrivé à une solution assez éloignée de tes conseils.

    Dans index.php :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['ici']=$_SERVER['REQUEST_URI'];

    Dans authenticate.php (l'action du formulaire de connexion) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if ($auth) {header ('Location: http://'.$_SERVER['SERVER_NAME'].$_SESSION['ici'] ); exit();}
     else  { header ('Location: '."../".'login.php' ); exit(); }

    Merci d'avoir essayé de m'aider.

  6. #6
    Membre expérimenté
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 385
    Par défaut
    Si ça marche pas de soucis
    C'était avec plaisir et visiblement bien plus court que ce que j'envisageais donc que du positif

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rediriger un utilisateur sur une page perso après connexion
    Par manu_manu95 dans le forum Langage
    Réponses: 8
    Dernier message: 18/11/2015, 20h46
  2. redirection vers la page précédente après connexion
    Par amine2208 dans le forum Langage
    Réponses: 5
    Dernier message: 26/03/2013, 02h10
  3. Revenir à la page précédente après connexion
    Par DiverSIG dans le forum Langage
    Réponses: 3
    Dernier message: 16/10/2009, 19h12
  4. Retour page précedente après une alert javascript
    Par kanabzh29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/11/2008, 15h11
  5. Refresh de page initiale après saisie dans une popup
    Par muppetshow dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/03/2005, 13h21

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