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

PHP & Base de données Discussion :

Redirection sécurisée page voulue [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut Redirection sécurisée page voulue
    Bonjour,

    voilà le code (merci à jreaux62) qui permet de protéger des pages réservées à des personnes inscrites :

    _protection_page.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')
    {   // redirection vers page authentification (mettre le nom correct !!)
       header("location: ./accueil_membre.php");
       exit; }
    // IDENTIFICATION OK => on continue ...
    ?>
    Ce que je souhaite :
    si l'utilisateur clique sur un lien vers une page sécurisée (ici contact_ev.php), une fois l'utilisateur connecté via la page de connection (pdf_connexion2.php), il soit redirigé vers la page qu'il souhaitait (ici contact_ev.php) bref la page qui était avant la page de connexion...

    j'ai essayé avec javascript:history.back(1) ou $_SERVER['HTTP_REFERER'] mais çela ne fonctionne pas...
    avez-vous des idées ? Merci beaucoup.

    contact_ev.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php session_start();
    require ('./_protection_page.php'); 
    require ("configuration.php"); //accès à la base de données
    $sql = connect_sql();
    $pseudo_membre2 = $_SESSION['pseudo'];
    $requete = mysql_query("SELECT * FROM pdf_membre WHERE `pseudo`='$pseudo_membre2'"); 
    $result = mysql_fetch_array ($requete);
    $id = $result['id'];
    $pseudo = $result['pseudo'];
    $mail = $result['mail'];
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
    <div id="mainContent">
    <br />
    <fieldset>
    <legend> &nbsp; Envoyer un fichier avec plusieurs &eacutev&egrave;nements &nbsp; </legend>
    <form name="formulaire" action="<? echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
    <br />
    <label for="message">Message &nbsp; : &nbsp</label>
    <br />
    <textarea id="message" name="Message" class="ev" tabindex="1" onfocus="this.className='textarea_focus';" 
    onblur="this.className='textarea';valide(this, 'err_nom');" >
    </textarea>
    <br />
    <br />
    ..........................
    <label for="fichier">Pi&egrave;ce jointe &nbsp; : &nbsp</label>
    <br />
    <input type="hidden" name="MAX_FILE_SIZE" value="<? echo $taillemax?>" />
    <input type="file" id="fichier" name="Fichier" tabindex="2" onfocus="this.className='ev_focus';" onblur="this.className='ev';valide(this, 'err_nom');" />
    <br />
    <p><b>Attention : taille du fichier inf&eacute;rieure &agrave; 2 Mo</b></p>
    <br />
    <input id="submit" tabindex="3" type="submit" value="Envoyer" />
    <br />
    </fieldset>
    </form>
    <br />
    <a href="Evenement.ods"]">Fichier au format libre .ods (Libre Office)</a>
    <br />
    <br />
    <a href="Evenement_Excel.xls"]">Fichier au format propri&eacute;taire .xls (Microsoft Office)</a>
    <br />
    <br />
    <p>Pour utiliser le format libre "Libre Office", vous pouvez télécharger ce logiciel libre
    <a href="http://fr.libreoffice.org/telecharger/"]">&nbsp; ici &nbsp;</a>
    </p>
    </div>
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
    </body>
    </html>
    pdf_connexion2.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?
    session_start(); // Pour la suite
    require ("configuration.php"); //accès à la base de données
     
    $pseudo = $_POST['pseudo']; //On recupère le pseudo et le pass
    $pass = $_POST['password'];
     
    if (!empty($pseudo) && !empty($pass)) //S'ils ne sont pas vides
    {
    	$sql = connect_sql(); //On se connecte à MySQL
    	$reponse = mysql_query ("SELECT * FROM pdf_membre WHERE pseudo='$pseudo'"); //On recupère les infos à partir du pseudo
    	$donnees = mysql_fetch_array ($reponse);
    	$verif = $donnees['pass'];
        $id = $donnees['id'];
    	$pseudo_sql = $donnees['pseudo'];
    	$confirm = $donnees['confirm'];
     
    	if($pass != $verif) //On verifie que le mot de passe est égal à celui de la Base de Données, si le passe est différent
    	{
        $reponse = 'Excusez-nous &nbsp; &nbsp;'.'<b>'.$pseudo.'</b>'.' &nbsp; &nbsp; mais v&ocirc;tre identifiant ou v&ocirc;tre code secret est incorrect !';
    	$reponse .= '<p>'.'</p>';
    	$redirection = 'accueil_membre.php'; //On va rediriger vers le formulaire de connexion
    	sleep(6500);
        }
    	elseif(!empty($confirm)) //Si le compte n'est pas activé
    	{
    	$reponse = 'Votre compte n\'est pas encore activ&eacute;';
    	$redirection = 'accueil_membre.php'; //On va rediriger vers le formulaire de connexion
    	sleep(2500);
    	}  
    	else //Sinon tout est bon
        {
    	//$redirection = '<a href="javascript:history.back(1)">Retour au formulaire</a>';
    	$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
    	$redirection = header('Location: '.$_SERVER['HTTP_REFERER']); //On redirige vers l'espace membre
    	$reponse = 'Connexion r&eacute;ussie vous allez &ecirc;tre redirig&eacute;'.'<br>'.
    	'<a href="javascript:history.back(1)">Rejoindre directement la page</a>';
    	sleep(2500);
        }
    	mysql_close($sql); //On ferme la connexion
    }
     
    else
    {
    	$reponse = 'Vous n\'avez rien saisi !';
    	$redirection = 'accueil_membre.php'; //On va rediriger vers le formulaire de connexion
    	sleep(2500);
    }
     
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <meta http-equiv="refresh" content="1;URL=<? echo $redirection; //La redirection ?>">
    </head>
    <body>
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
    <div id="mainContent">
    <? echo $reponse; ?><!-- La reponse au script -->
    </div>
    </body>
    </html>

  2. #2
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    Bonjour,

    si tu mets un $_session['maPage'] au debut de chaque page et que cette variable récupère l'url. Tu pourrais ainsi avoir la dernière page connu lorsque tu te connectes et ainsi pouvoir le redirigé la dessus.

    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  3. #3
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    @ Retrokiller069, je ne suis pas sûr d'avoir bien compris ?
    car... j'arrive sur la page "Vous n'avez rien saisi..." où est mon erreur ? je ne vois pas...
    Merci.


    voici ce que j'ai mis en haut de contact_ev.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php session_start();
    $session_utilisateur = $_session['maPage'];
    require ('./_protection_page.php'); 
    require ("configuration.php"); //accès à la base de données
    $sql = connect_sql();
    .......
    et dans pdf_connexion2.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
    else //Sinon tout est bon
        {
    	$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
    	$redirection = $session_utilisateur; //On redirige vers l'espace membre
    	$reponse = 'Connexion r&eacute;ussie vous allez &ecirc;tre redirig&eacute;'.'<br>'.
    	'accueil_membre_ok.php'.'Rejoindre directement la page</a>';
    	sleep(2500);
        }
    	mysql_close($sql); //On ferme la connexion
    }
    
    else
    {
    	$reponse = 'Vous n\'avez rien saisi !';
    	$redirection = 'accueil_membre.php'; //On va rediriger vers le formulaire de connexion
    	sleep(2500);
    }

  4. #4
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    Non c'est pas ca que je voulais dire. Je te donne un exemple:

    Je suis un utilisateur et je suis sur la page accuiel.php. Dans cette page, j'ai ma variable $_session['mapage']="accueil.php". je vais sur une autre page, news.php du coup $_session['mapage']="news.php".

    Ainsi si je vais me connecté, mon redirection se fera avec la valeur de ma $_session['mapage'].

    je peux pas être plus claire ^^

    Ps:cette valeur te sera utile pour ton header
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Bonjour,

    de mon côté, j'ai une variable session qui prend un variable serveur dans chacune de mes pages :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['referer'] = $_SERVER['REQUEST_URI'];
    Suite à cela, je passe dans mon formulaire un champ caché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo'<input type="hidden" name="referer" value="'.$_SESSION['referer'].'" />';
    que je traite dans une page connexion avant de rediriger l'utilisateur là où il s'est connecté :

    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
    20
    21
    22
     function redirige($url){
         die('<meta http-equiv="refresh" content="0;URL='.$url.'">');
    	}
     
    	if(!empty($_POST['referer']))
    	{
    		$ancienne_page = $_POST['referer'];
     
    		if (Http::method() == Http::POST)
    		{
    			$username = Http::request('pseudo', 'post');
    			$password = Http::request('pass', 'post');
     
    			$is_connected = $fsb->login(utf8_encode($username), $password);
     
    			if($is_connected)
    			{ 
    				echo'Connexion réussie, bienvenue '.$username; 
    				redirige($ancienne_page);
    			}	
    		}
    	}

  6. #6
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    Désolé Retrokiller069 mais je suis un peu long à la détente...
    je n'ai pas compris
    Que dois-je faire comme modification ?
    Merci...

  7. #7
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    Bonjour,

    c'est pas grave ca veux dire que j'explique mal.

    Donc ce que tu veux:

    si l'utilisateur clique sur un lien vers une page sécurisée (ici contact_ev.php), une fois l'utilisateur connecté via la page de connection (pdf_connexion2.php), il soit redirigé vers la page qu'il souhaitait (ici contact_ev.php) bref la page qui était avant la page de connexion...
    La question est comment mémorisé cette page? Je te propose comme idée que tu utilises un $_session['mapage'] qui mémorise la dernière page que l'utilisateur a regardé.

    Pour ca il faut que sur chaque page (sauf celle où tu te connectes) tu es une variable $_session['mapage'] qui a comme paramètre le nom de la page.

    exemple: je suis sur une page qui s'appelle news.php, du coup ma variable $_session['mapage'] aura pour valeur news.php. Lorsque je vais me connecté, tu vas utiliser cette valeur pour ton header afin de me rediriger vers la page précédente news.php.

    as tu compris? (je t'avoue que je ne vois pas comment je pourrais t'expliquer autrement ).

    Sinon la méthode de heretik25 est bonne aussi
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  8. #8
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    Merci !

    C'est bon çela fonctionne, voici ce que j'ai indiqué :

    dans les pages d'origine : RIEN (exemple : contact_ev.php ci-dessous)...

    dans _protection_page.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if (!isset($_SESSION['pseudo']) || $_SESSION['pseudo']=='')
    {
       // redirection vers page authentification (mettre le nom correct !!)
       $_SESSION['page_origine'] = $_SERVER['REQUEST_URI'];
       header("location: ./accueil_membre.php");
       exit;
    }
    // IDENTIFICATION OK => on continue ...
    ?>
    dans la connexion (pdf_connexion2.php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    else //Sinon tout est bon
        {
    	$_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
    	$redirection = $_SESSION['page_origine']; //On redirige vers l'espace membre
    	$reponse = 'Connexion r&eacute;ussie vous allez &ecirc;tre redirig&eacute;'.'<br>'.
    	'<a href="'.$redirection.'">Rejoindre directement la page'.'</a>';

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 30/01/2006, 13h35
  2. redirection de pages html vers une page locale? (modif dns?)
    Par johan_b dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 20/01/2006, 16h51
  3. redirection vers page web
    Par Remedy dans le forum Langage
    Réponses: 11
    Dernier message: 12/01/2006, 15h36
  4. [web]Redirection de page
    Par Ethylene dans le forum Web
    Réponses: 3
    Dernier message: 01/07/2005, 15h47
  5. Pb de redirection vers page principale
    Par croco83 dans le forum ASP
    Réponses: 2
    Dernier message: 06/05/2004, 14h10

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