Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/07/2011, 15h16   #1
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
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 :
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 :
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 :
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>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 17h19   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
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
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 22h48   #3
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ 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 :
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 :
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);
}
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 23h31   #4
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
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
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 08h35   #5
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour,

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

Code :
$_SESSION['referer'] = $_SERVER['REQUEST_URI'];
Suite à cela, je passe dans mon formulaire un champ caché :

Code :
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 :
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);
			}	
		}
	}
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 08h42   #6
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Désolé Retrokiller069 mais je suis un peu long à la détente...
je n'ai pas compris
Que dois-je faire comme modification ?
Merci...
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 09h04   #7
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

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

Donc ce que tu veux:

Citation:
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
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 09h25   #8
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
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 :
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 :
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>';
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h42.


 
 
 
 
Partenaires

Hébergement Web