Problème avec session_start PHP

Résolu/Fermé
shoub-tcy
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
- 19 mars 2012 à 16:06
 williamdes - 22 mars 2014 à 18:20
Bonjour,

J'ai créé un formulaire ou les membres de mon site peuvent modifier leurs informations personnelles, comme par exemple leur mot de passe. Seulement les membres de mon site peuvent accéder à cette page donc j'ai mis ce code qui fonctionne très bien au début de la page de mon formulaire :

<?php
session_start();

if (!isset($_SESSION['pseudo']) || empty($_SESSION['pseudo']))
{
exit(header('Location: ../page3/page3.php'));
}
?>

Cette page ammène à une page de traitement du formulaire, voici le code de cette page :

<?php
session_start();

$pseudo = $_SESSION['pseudo'];

$password = $_POST['password'];
$new_pw = $_POST['new_pw'];
$confirm_new_pw = $_POST['confirm_new_pw'];

if (!empty($_POST['new_pw'])) {

try {
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);
} catch (Exeption $e) {
die('Erreur : ' . $e->getMessage());
}

$sql = "SELECT password FROM formulaire WHERE password='".$password."' AND pseudo='".$pseudo."'";
$req = $bdd->query($sql);
$req->setFetchMode(PDO::FETCH_OBJ);

if ($ligne = $req->fetch()){

if ($new_pw != $confirm_new_pw)
{
$erreur=1;
include('page6.php');
exit();
}
?>

Ce code marche parfaitement si les informations rentrées par le membre ne contiennent pas d'erreurs, mais si par exemple le nouveau mot de passe rentré et sa confirmation ne sont pas identiques, la variable $erreur=1; est bien prise en compte, mais une erreur apparait :

( ! ) Notice: A session had already been started - ignoring session_start() in C:\Program Files\wamp\www\Site\Page6\page6.php on line 2.

J'ai donc essayé d'enlever le session_start dans la page du formulaire, mais le problème est que j'en ai besoin pour savoir si le membre est bien identifié.
J'ai ensuite essayé de l'enlevé dans la page de traitement mais le problème est que j'en ai aussi besoin pour que le variable $pseudo = $_SESSION['pseudo']; soit reconu.

Donc je ne sais pas du tout comment traiter ce problème. Si vous avez une idée n'esitez pas à me le faire parvenir :)

Cordialement.

1 réponse

Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
147
19 mars 2012 à 19:15
Salut,

page6.php se réfère au bout de code plus haut ?
1
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
147
19 mars 2012 à 19:16
Essaie de faire :

if(!session_id())
{
session_start();
}
0
shoub-tcy
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
19 mars 2012 à 20:55
Merci c'était effectivement la solution, tu as résolu mon problème :)
0
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
147
19 mars 2012 à 21:09
De rien !
0
merci infiniment
0