Zone membre PHP

simonfr Messages postés 172 Statut Membre -  
 __construct -
Bonjour,

Je voudrait créer une zone membre.
J'ai déjà créer 4 fichier pour ma zone membre seulement a chaque fois que je valide le pseudo et mot de passe il revient sur la même page toujours avec le même formulaire

Voici mes fichier :

membres.php

<?php
							if(!isset($_SESSION['account']))
							{
								include ('login.php');
							}
							else
							{
								include ('login_ok.php');
							}	
							?>


login.php


<div id="inscription">
				          PAS ENCORE INSCRIT ?
				          <a href="#">Inscription !</a>
						  <div class="separation"></div>
						  Profitez des nombreux avantages des V.I.P
						  <a href="#">En savoir plus !</a>
				     </div>				
		  	            <form id="login_form" name="login_form" action="pdf_conection2.php" method="post">
						    <div>
		                      <p id="login">PSEUDO :</p>
		                      <input type="text" name="account" onfocus="replace_form_login();" onblur="replace_form_login_empty()" /><br />
		                      <p id="mdp">MOT DE PASSE :</p>
		                      <input type="password" name="pass" onfocus="replace_form_login();" onblur="replace_form_login_empty()" /><br />
		                     <input type="submit" value="Entrer" name="submit" />
							</div>
		  	            </form>


login_ok.php


<?php
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$pseudo = $_SESSION['account'];
$requete = mysql_query ("SELECT * FROM accounts WHERE account='$pseudo'");
$donnees = mysql_fetch_array($requete);
?>

<?php

if (isset($_SESSION['account'])) 
    {
		echo '<br><b>Bonjour </b><u><i><strong><font color="cornflowerblue">'.$_SESSION['account'].'</strong></i></u></font>,<br /><br>';
		echo '<a href="infos.php"><strong>- Mon compte</a><br>';
		echo '<a href="personnages.php"><strong>- Mes personnages</a><br>';
		echo '<a href="boutique.php">- Boutique</a><br>';
		echo '<a href="commandes.php">- Commandes</a><br>';
		if($donnees['level'] >= 4) { include 'ressources/admin.php'; }
		
?>
</br>
<?php
		echo '<a href="support.php">- Envoyer un ticket</a><br>';
		echo '<a href="supportview.php">- Voir mes ticket</a><br>';
?>
</br>

		</br>
		<form action="deconnecter.php" method="post">
		<center><input type="submit" value="Déconnecter"></center>
		</form>
			
<?php			
	}
else
 {
		echo 'Vous n\'êtes pas connecté!';
}

?>


pdf_conection2


<?php require('../config/config.php'); ?>
<?php

$pseudo = $_POST['account']; //On recupère le pseudo et le pass
$pass = $_POST['pass'];

if (!empty($pseudo) && !empty($pass)) //S'ils sont pas vident
{
$sql = mysql_connect($host, $user, $pass);
$db = mysql_select_db('ancestra_other');
	
	$reponse = mysql_query ("SELECT * FROM accounts WHERE account='$pseudo'"); //On recupère les infos à partir du pseudo
	$donnees = mysql_fetch_array ($reponse);
	$verif = $donnees['pass'];
    $id = $donnees['id'];
	$pseudo_sql = $donnees['account'];
	$question_sql = $donnees['question'];
	$gmlevel = $donnees['level'];
	$password = $donnees['Pass'];
	                           
    
	if($pass != $verif) //On verifie que le pass entré est égale à celui de la BDD, si le passe est différent
	{
header ("Location: erreur_mdp.php");
}
	else //Sinon tout est bon
    {
 
  session_start();  
	$_SESSION['account'] = $pseudo_sql ; //On créé une variable session avec le pseudo
	$_SESSION['pass'] = $password_sql ; //On créé une variable session avec le pseudo
	$_SESSION['question'] = $question_sql ; //On créé une variable session avec la question
	$_SESSION['level'] = $gmlevel_sql;
 header("Location: ./membre.php");
}	
	mysql_close($sql); //On ferme la connection
}
?>
  



A voir également:

6 réponses

__construct
 
Bonsoir,
Et dans le fichier erreur_mdp.php n'y aurait-il pas une redirection sur login.php ?
0
simonfr Messages postés 172 Statut Membre 21
 
non il n'y a pas de redirection
0
mizamiza
 
normalement $_SESSION['account'] is not set , teste echo $_SESSION['account']; et dis ce que ça donne?
0
simonfr Messages postés 172 Statut Membre 21
 
Je teste "echo $_SESSION['account']" dans quel fichier ?
0
simonfr Messages postés 172 Statut Membre 21
 
Sa donne une erreur
0
__construct
 
Bonjour,
ça donne quelle erreur? Soit plus explicite dans tes réponses sinon on n'arrivera pas à t'aider...
Vérifie que cette requête SQL :
$reponse = mysql_query ("SELECT * FROM accounts WHERE account='$pseudo'");

Ne renvoie pas une erreur en utilisant un or die() au bout de la requête :
$reponse = mysql_query ("SELECT * FROM accounts WHERE account='$pseudo'")or die('Erreur dans la requête $reponse '.mysql_error());

Ce n'est pas très sécurisé de faire la vérification d'une authentification uniquement sur le pseudo mais recommandé de le faire sur le pseudo ET le mot de passe, donc modifie ta requête dans ce sens.

P.S : évite de créer chaque fois un nouveau topic sur le même problème, ce n'est pas parce que on ne répond pas de suite qu'il faut s'emballer...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
simonfr Messages postés 172 Statut Membre 21
 
Pouvez vous m'aider a reparer mon erreur SVP ?
0
simonfr Messages postés 172 Statut Membre 21
 
Mon code est importer d'un autre site.
Sur l'autre site il marche
0
__construct
 
Dans login_ok.php il n'y a pas de session initialisée par session_start() donc tu ne peux pas utiliser les variables de session telles que :
$pseudo = $_SESSION['account'];
0
simonfr Messages postés 172 Statut Membre 21
 
l'erreur ne peut pas venir de la car de toute façon quand je suis sur membre.php je met mon id et mot de passe et je revient au formulaire de connexion sans erreur.
0
__construct
 
oui c'est normal que tu reviennes au formulaire car tu n'es pas connecté et pour cause tu perds la session dans login_ok.php
D'autre part, dans pdf_conection2, tu rediriges sur membre.php alors que tu nous affiche le script sous le nom de membres.php (avec un s). Où est la vérité?
Mon conseil : reprend tout de A à Z et essaie de regrouper tous ces scripts dans un ou 2 fichiers tu y gagneras en clarté car tous ces fichiers justes pour une connexion membre ça fait un peu beaucoup..
0
simonfr Messages postés 172 Statut Membre 21
 
c'est que normalement ce n'est pas le vrai nom :)
0
__construct
 
Remplace le code de pdf_conection2 par celui-ci, plus clair et plus concis (fais un Copier/Coller pour éviter les erreurs) :
pdf_conection2
<?php
require('../config/config.php');
$pseudo = $_POST['account']; //On recupère le pseudo et le pass
$pass   = $_POST['pass'];

if (!empty($pseudo) && !empty($pass)) {
	$sql = mysql_connect($host, $user, $pass);
	$db = mysql_select_db('ancestra_other');

	//Je pars du principe que le champ du mot de passe se nomme bien Pass (avec un P majuscule!) dans la table account
	$reponse = mysql_query ("SELECT * FROM accounts WHERE account='".$pseudo."' AND Pass='".$pass."'")or die('Erreur dans la requête '.mysql_error());

	if(mysql_num_rows($reponse) != 0) {
		$donnees = mysql_fetch_array($reponse);

		session_start();
		$_SESSION['pseudo']   = $donnes['account'];
		$_SESSION['account']  = $donnees['account'];
		$_SESSION['question'] = $donnees['question'];
		$_SESSION['level']    = $donnees['level'];
		// Je ne mets pas le mot de passe en variable de session, trop dangereux niveau sécurité!!!

		mysql_free_result($reponse);
		header("Location: ./membre.php");
	} else {
		header ("Location: erreur_mdp.php");
	}	
	mysql_close($sql);
}
?>

Et teste à nouveau
0