Page 1 sur 1

Problème de session

Posté : 30 déc. 2012, 14:05
par Theophile
Bonjour,
Débutant en PHP, je me suis mis en quête de faire un site forum pour mettre en pratique ce que j'ai appris !
Malheureusement je rencontre un problème !
Je vous mets mes scriptes :
la formulaire de connexion :
<form method="post" action="traitement_connexion.php" />
						Pseudo: <input type="text" name="pseudo" />
						Mot de passe: <input type="password" name="mot_de_passe" />
						<input type="submit" value="Valider" />
le traitement de la connexion :
<?php
$_POST['pseudo']=htmlspecialchars($_POST['pseudo']);
$_POST['mot_de_passe']=htmlspecialchars($_POST['mot_de_passe']);
$_POST['mot_de_passe']=sha1($_POST['mot_de_passe']);
try
{
	$bdd=new  PDO('mysql:host=localhost;dbname=rm','root','');
}
catch(Exception $e)
{
	die('Erreur :'.$e->getMessage());
}

$reponse=$bdd->prepare('SELECT ID FROM compte WHERE pseudo= :pseudo AND mot_de_passe= :mot_de_passe');
$reponse->execute(array(
'pseudo' => $_POST['pseudo'],
'mot_de_passe' => $_POST['mot_de_passe']));
 
$donnees=$reponse->fetch();
if  (!$donnees)
{
	$verification_connexion=false;
	include ("accueil2.php");
}
else
{
	$verification_connexion=true;
	include("accueil2.php");
	session_start();
	$_SESSION['ID'] = $donnees['ID']; 
	$_SESSION['pseudo'] = $_POST['pseudo'];
	
}



?>

Là ou renvoie la connexion :

<div id="connexion">
					<form method="post" action="traitement_connexion.php" />
						<?php
						
						if ($verification_connexion==false)
						
						{
							?>
							<p> Votre Pseudo ou votre Mot de passe sont incorrect !</p>
							Pseudo: <input type="text" name="pseudo" />
							Mot de passe: <input type="password" name="mot_de_passe" />
							<input type="submit" name value="Valider" />
							<?php
						}
						else
						{
							?>
							Vous êtes maintenant connecté!
							<?php
						}
			?>
			<a href="deconnexion.php"> Deconnexion</a>
				
				
				
Et j'ai le message lorsque je veux me connecter ( en ayant entrer au préalable les données dans la table) il me mets le message :

Notice: A session had already been started - ignoring session_start() in /opt/lampp/htdocs/rm/traitement_connexion.php on line 29

Alors j'essaie de traduire et je pense que c'est par ce qu'une session est déjà ouverte donc je fais une page déconnexion :
<?php
session_start();

$_SESSION = array();
session_destroy();

// suppresion de cookie si il y a

include("accueil.php");
Mais rien n'y fais et j'ai toujours le même problème même si j'ai cliquer sur deconnexions et que j'essaie de me connecter sa ne marche toujours pas ... et je cherche depuis longtemps ....
Que faire ?
Pouvez vous m'aidez s'il vous plaît ?

À très bientôt !

Re: Problème de session

Posté : 30 déc. 2012, 14:40
par yann18
bonjour,
session_start() doit être toujours la 1ère instruction de la page ayant accès aux données de session. Dans tons cas tu places session_start() au début du fichier traitement_connexion.php .

autre possibilité: pour être sûr qu'une session n'ait pas été initialisée avant il faut faire cette vérification en début de la page traitement_connexion.php:
//dans la page traitement_connexion.php 
if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 

Re: Problème de session

Posté : 30 déc. 2012, 16:32
par Theophile
Ok, merci beaucoup cela marche maintenant !