[RESOLU] Chargement session selon page connexion

Petit nouveau ! | 4 Messages

05 oct. 2012, 23:48

Bonsoir à tous,

titre pas évident à choisir. Je vous expose mon problème :

Mon site est fait de plusieurs pages : index, inscription, recherche, etc.
Sur chaque page, un utilisateur peut se connecter grâce à un bouton qui affiche une div avec champs login/mdp (include d'un php nommé formulaire_connexion).

Lorsque la personne valide le formulaire, je souhaite qu'il soit redirigé sur la page d'origine du formulaire envoyé.
En gros, s'il active la connexion sur la page "inscription", il faut qu'il reste sur cette page quand ça se connecte.

Mon formulaire_connexion renvoie vers connexion.php qui lui même utilise une fonction d'un fichier php contenant mes différentes fonctions.
A priori, c'est relativement aléatoire.. Des fois ça fonctionne, des fois non.. La majorité du temps, je suis renvoyé sur la page index.php...
Voici le code "un peu dégrossi" pour plus de compréhension :



formulaire_connexion.php
<?php
	include('Fonctions.php');
	header('Content-Type: text/html; charset=iso-8859-1');
?>
<div id="connexion">
<?php
	$_SESSION['PAGEPROV'] = substr($_SERVER['REQUEST_URI'],1);
?>
	<div id="visiteur_deconnecte" >
		<div id="espace_connexion" class="hauteur_espace_connexion">
			<div class="contenu_espace_connexion">
				<p class="texte_normal_gras_bleu">Déjà membre ?</p>
				<form action="connexion.php" method="post">
					<input class="input_zone_recherche" name="username" type="text" id="nomutilisateur">
					<input class="input_zone_recherche" name="mdp" type="password" id="motdepasse">
					<input id="validerconnexion" type="submit" value="Connexion" name="valide"/>
				</form>
			</div>
		</div>
	</div>
</div>

connexion.php
<?php
	include('Fonctions.php');
	header('Content-Type: text/html; charset=iso-8859-1');
?>
<?php
if(isset($_POST['valide'])==false)
{
	redirect();
}
else
{
	$_SESSION['pseudo'] = $_POST['username'];
	$result = sqlquery("...............");
	if($result['nbr'] == 1)
	{
		if($_POST['mdp'] == $result['mdp'])
		{
		        $_SESSION['id'] = $result['id'];
			$_SESSION['username'] = $result['username'];
			$_SESSION['mdp'] = $result['mdp'];
			unset($_SESSION['valide']);
			unset($_SESSION['erreur']);
			unset($_SESSION['pseudo']);
			redirect();
			exit();
                }
         }
}
?>
fonction.php
	
<?php
	include('Fonctions.php');
	header('Content-Type: text/html; charset=iso-8859-1');
?>
<?php
function redirect()
{
	if(isset($_SESSION['PAGEPROV']) AND !empty($_SESSION['PAGEPROV']))
	{
		$loc = $_SESSION['PAGEPROV'];
		header("Location: $loc");
		exit();
	}
	else
	{
		header("Location: index.php");
		exit();
	}
}


?>

Eléphant du PHP | 229 Messages

06 oct. 2012, 06:50

Bonjour,
TU as la possibilité d'utiliser AJAX(Javascript) ou de stocker l'URL dans une variable + geturl().
Bonne journée.

Petit nouveau ! | 4 Messages

07 oct. 2012, 10:52

Merci pour ta réponse.
Suite à celle-ci, j'ai changé ma façon de transférer l'info.. Je passe maintenant par mon formulaire et c'est nickel.
Ci-dessous ce que j'ai mis en place :
<input type=hidden name="LocConnec" value="<?php echo(substr($_SERVER['REQUEST_URI'],1)); ?>">