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.
A voir également:

1 réponse

Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 144
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 144
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 144
19 mars 2012 à 21:09
De rien !
0
merci infiniment
0