[RESOLU] Problème de session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème de session

Re: Problème de session

par Theophile » 30 déc. 2012, 16:32

Ok, merci beaucoup cela marche maintenant !

Re: Problème de session

par yann18 » 30 déc. 2012, 14:40

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(); 
    } 

Problème de session

par Theophile » 30 déc. 2012, 14:05

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 !