Session et php
Posté : 01 déc. 2008, 16:22
Bonjour,
Je viens recevoir votre aide car ma gestion des connexions des membres ne fonctionne pas, je m'expliques:
J'ai une pages membres.php ou les personnes peuvent se connecter, s'inscrire ou bien encore voir leur espace membre (gestion donc de 2 formulaire et detection de session ouverte). Actuellement les gens peuvent se connecter et s'inscrire en revanche une fois connecté il attérisse dans leur espace membre mais si ils retournent sur l'accueil et reviennent sur la page membre, il leur est redemendé de ce connecter alors qu'il devraient tomber direct dans leur espace membre. Voici le code de ma page je n'arrives pas a trouver ce qui ne vas pas
Merci de votre aide !
Je viens recevoir votre aide car ma gestion des connexions des membres ne fonctionne pas, je m'expliques:
J'ai une pages membres.php ou les personnes peuvent se connecter, s'inscrire ou bien encore voir leur espace membre (gestion donc de 2 formulaire et detection de session ouverte). Actuellement les gens peuvent se connecter et s'inscrire en revanche une fois connecté il attérisse dans leur espace membre mais si ils retournent sur l'accueil et reviennent sur la page membre, il leur est redemendé de ce connecter alors qu'il devraient tomber direct dans leur espace membre. Voici le code de ma page je n'arrives pas a trouver ce qui ne vas pas
Merci de votre aide !
<?php
session_start();
if(isset($_GET['a'])) {
session_unset();
session_destroy();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<link href="styles.css" rel="stylesheet" type="text/css"/>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>Document sans titre</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
</head>
<body>
<table width="983" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td height="127" background="images/header.jpg"> </td>
</tr>
<tr>
<td height="30"><img src="images/menu.jpg" border="0" usemap="#menu" /><map name="menu">
<area alt="accueil" name="accueil" shape="rect" coords="83,12,164,28" href="index.php" />
<area alt="membres" name="membres" shape="rect" coords="179,12,261,28" href="membres.php" />
<area alt="faq" name="faq" shape="rect" coords="273,12,355,28" href="faq.php" />
<area alt="contact" name="contact" shape="rect" coords="366,12,447,28" href="contact.php" />
</map></td>
</tr>
<tr>
<td height="23" background="images/bas_menu.jpg"> </td>
</tr>
<tr>
<td background="images/contenu.jpg"><div id="contenu">
<?php
if(!isset($_SESSION['login']) && !isset($_POST['check_co']) && !isset($_POST['check_insc'])) {
?>
<span class="txt_noir"><strong><u>Vous êtes déjà inscris sur Expressinfos.fr - Connectez vous</u></strong> :</span><br />
<br />
<form id="connexion" name="connexion" method="post" action="membres.php">
<table width="850" border="0" cellpadding="0" cellspacing="0" class="txt_noir">
<tr>
<td width="215"><strong>Login</strong> : </td>
<td width="246"><input name="login" type="text" class="cdt_form" id="login" maxlength="24" /></td>
<td width="405" rowspan="2"><input name="Submit" type="submit" class="bt_form" id="Submit" value="Connexion" /></td>
</tr>
<tr>
<td><strong>Mot de passe</strong> : </td>
<td><input name="mdp" type="password" class="cdt_form" id="mdp" maxlength="16" /></td>
</tr>
</table>
<input type="hidden" name="check_co" />
</form>
<p class="txt_noir">En revanche si vous n'êtes pas encore inscris, bénéficiez dès maintenant des avantages membres d'Expressinfos.fr. Trois principaux avantages s'offrent à vous :</p>
<blockquote>
<p class="txt_noir"><strong>1)</strong> Vos demandes sont prioritaires sur les membres non inscrits, par respect de votre fidélité<br />
<strong>2) </strong>Vous bénéficiez de la possibilité d'utiliser notre site comme support de nos échanges, les non membres eux sont contraints à utiliser leur boite email<br />
<strong>3) </strong>Vous avez la possibilité de vous inscrire à notre bulletin bimensuel, ce dernier traite en bref l'actualité informatique et internet et vous proposes des surprises au fil des mois</p>
</blockquote>
<p class="txt_noir">Si cela vous intéresse, il vous suffit simplement de remplir le formulaire ci-dessous :</p>
<form id="inscription" name="inscription" method="post" action="membres.php">
<fieldset style="border:1px solid #990000; padding:15px 10px 10px 10px;"><legend class="txt_blanc_bold" style="background-color:#990000;">Informations personelles (facultatives)</legend>
<table width="850" border="0" cellspacing="0" cellpadding="0" class="txt_noir">
<tr>
<td width="200">Nom : </td>
<td width="649"><input name="nom" type="text" class="cdt_form" id="nom" /></td>
</tr>
<tr>
<td>Prénom : </td>
<td><input name="prenom" type="text" class="cdt_form" id="prénom" /></td>
</tr>
<tr>
<td>Date de naissance : </td>
<td><input name="ddn" type="text" class="cdt_form" id="ddn" value="jj/mm/aaaa" maxlength="10" /></td>
</tr>
<tr>
<td>Lieu de résidence : </td>
<td><input name="ldr" type="text" class="cdt_form" id="ldr" /></td>
</tr>
</table>
</fieldset><br />
<fieldset style="border:1px solid #990000; padding:15px 10px 10px 10px;">
<legend class="txt_blanc_bold" style="background-color:#990000;">Informations sur Expressinfos.fr (obligatoires)</legend>
<table width="850" cellspacing="0" cellpadding="0" class="txt_noir">
<tr>
<td width="200">Login : </td>
<td width="648">
<input name="login2" type="text" class="cdt_form" id="login2" maxlength="24" /></td>
</tr>
<tr>
<td>Mot de passe : </td>
<td><input name="mdp2" type="password" class="cdt_form" id="mdp3" maxlength="16" /></td>
</tr>
<tr>
<td>Mot de passe (répétition) : </td>
<td><input name="mdp3" type="password" class="cdt_form" id="mdp2" maxlength="16" /></td>
</tr>
<tr>
<td>Adresse email : </td>
<td><input name="email" type="text" class="cdt_form" id="email" maxlength="200" /></td>
</tr>
<tr>
<td colspan="2">Note personnelle (si vous souhaitez nous donner des informations sur vous pour diverses raisons) : </td>
</tr>
<tr>
<td colspan="2"><textarea name="infos" cols="100" rows="6" class="cdt_form" id="infos">Laissez le champ vide si vous n'avez rien a stipuler.</textarea></td>
</tr>
</table>
<p class="txt_noir">* Le login doit faire 24 caractères au maximum.<br />
** Le mot de passe doit faire 16 caractères au maximum.</p>
<p align="center">
<input name="Submit" type="submit" class="bt_form" id="Submit" value="Inscription" />
<input name="Submit" type="reset" class="bt_form" value="Réinitialiser" />
</p>
</fieldset>
<input type="hidden" name="check_insc" />
</form>
<p> </p>
<?php
} elseif(isset($_SESSION['login']) && !isset($_SESSION['login'])) {
// Ouverture de l'espace membre
include_once("e_membres.php");
} elseif(isset($_POST['check_co']) || isset($_POST['check_insc']) && !isset($_SESSION['login'])) {
// Test des formulaires
if(isset($_POST['check_co'])) {
// L'utilisateur veut se connecter
if(!empty($_POST['login']) && !empty($_POST['mdp'])) {
include_once("fonctions.php");
$r = mysql_query("SELECT count(*) FROM membres WHERE login='".$_POST['login']."' AND mdp='".$_POST['mdp']."'");
$t = mysql_fetch_array($r);
mysql_close();
if($t[0] == 1) {
$_SESSION['login'] = $_POST['login'];
include_once("e_membres.php");
} elseif($t[0] == 0) {
echo "Compte inexistant";
}} else {
echo "Au moins un des champs est vide !";
}
} elseif(isset($_POST['check_insc'])) {
// L'utilisateur veut s'inscrire
if(!empty($_POST['login2']) && !empty($_POST['mdp2']) && !empty($_POST['mdp3']) && !empty($_POST['email'])) {
if($_POST['mdp2'] == $_POST['mdp3']) {
// include
include_once("fonctions.php");
// fin include
if(Temail($_POST['email'])) {
$sql = 'SELECT count(*) FROM membres WHERE login="'.($_POST['login2']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if($data[0] == 0) {
$sql = 'INSERT INTO membres VALUES("", "'.$_POST['nom'].'", "'.$_POST['prenom'].'", "'.$_POST['ddn'].'", "'.$_POST['ldr'].'", "'.$_POST['login2'].'", "'.$_POST['mdp3'].'", "'.$_POST['email'].'", "'.$_POST['infos'].'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login2'];
echo "Vous allez être redirigé vers votre éspace membre dans 10 secondes";
echo "<meta http-equiv=\"Refresh\" content=\"10;URL=membres.php\">";
} else {
echo "Un membre possède déjà ce login";
}
} else {
echo "L'adresse email renseignée n'est pas une adresse conforme du type [email protected]";
}
} else {
echo "Les deux mots de passes ne sont pas identiques";
}
} else {
echo "Un des champs notés comme obligatoire (login, mot de passe ou email) est vide, veuillez corriger !";
}
}
}
?>
</div></td>
</tr>
<tr>
<td bgcolor="#3a3a3a" align="center"> <span class="txt_blanc">Copyright © Expressinfos.fr 2008</span></td>
</tr>
</table>
</body>
</html>