Problème avec session_start PHP
Résolu
shoub-tcy
Messages postés
169
Date d'inscription
Statut
Membre
Dernière intervention
-
williamdes -
williamdes -
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.
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:
- Problème avec session_start PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
if(!session_id())
{
session_start();
}