Modification mot de passe PHP
Résolu
shoub-tcy
Messages postés
169
Date d'inscription
Statut
Membre
Dernière intervention
-
shoub-tcy Messages postés 169 Date d'inscription Statut Membre Dernière intervention -
shoub-tcy Messages postés 169 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai essayer de créer un formulaire qui permet aux membres de mon site de modifier leurs information personnelles comme par exemple leur mot de passe. Ce formulaire ammène à une page de traitement des informations rentrées par le membre. Le problème est qu'une erreur s'affiche. Voici mon code :
<!DOCTYPE html>
<?php
// le membre a rentrer son ancien mot de pass ($password)
// il a ensuite rentré son nouveau mot de passe ($new_pw)
// il a confirmé son nouveau mot de passe ($confirm_new_pw)
$password = $_POST['password'];
$new_pw = $_POST['new_pw'];
$confirm_new_pw = $_POST['confirm_new_pw'];
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);
}
// je vérifie si le mot de passe rentré existe.
$req = "SELECT password FROM formulaire WHERE password='".$password."'";
$res = $bdd->query($req);
foreach($res as $row)
{
$password = $row['password'];
}
// si le mot de passe entré existe, je le remplace par le nouveau mot de passe
if ($password != NULL){
$req = $bdd->prepare('UPDATE formulaire SET password = :new_pw WHERE password like :password');
$req->execute(array(
'new_pw' => $new_pw,
'password' => $password,
));
}
?>
L'erreur qui s'affiche à la dernière ligne est la suivante : ( ! ) Parse error: syntax error, unexpected ';', expecting T_CATCH in C:\Program Files\wamp\www\Site\Page6\modif_compte.php on line 34
Si vous remarquez des erreurs, n'hesitez pas à me le faire parvenir.
Cordialement.
J'ai essayer de créer un formulaire qui permet aux membres de mon site de modifier leurs information personnelles comme par exemple leur mot de passe. Ce formulaire ammène à une page de traitement des informations rentrées par le membre. Le problème est qu'une erreur s'affiche. Voici mon code :
<!DOCTYPE html>
<?php
// le membre a rentrer son ancien mot de pass ($password)
// il a ensuite rentré son nouveau mot de passe ($new_pw)
// il a confirmé son nouveau mot de passe ($confirm_new_pw)
$password = $_POST['password'];
$new_pw = $_POST['new_pw'];
$confirm_new_pw = $_POST['confirm_new_pw'];
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);
}
// je vérifie si le mot de passe rentré existe.
$req = "SELECT password FROM formulaire WHERE password='".$password."'";
$res = $bdd->query($req);
foreach($res as $row)
{
$password = $row['password'];
}
// si le mot de passe entré existe, je le remplace par le nouveau mot de passe
if ($password != NULL){
$req = $bdd->prepare('UPDATE formulaire SET password = :new_pw WHERE password like :password');
$req->execute(array(
'new_pw' => $new_pw,
'password' => $password,
));
}
?>
L'erreur qui s'affiche à la dernière ligne est la suivante : ( ! ) Parse error: syntax error, unexpected ';', expecting T_CATCH in C:\Program Files\wamp\www\Site\Page6\modif_compte.php on line 34
Si vous remarquez des erreurs, n'hesitez pas à me le faire parvenir.
Cordialement.
A voir également:
- Modification mot de passe PHP
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Voir mot de passe wifi android - Guide
3 réponses
Fais plutôt comme ceci :
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
// je vérifie si le mot de passe rentré existe.
$req = "SELECT password FROM formulaire WHERE password='".$password."'";
$res = $bdd->query($req);
foreach($res as $row)
{
$password = $row['password'];
}
// si le mot de passe entré existe, je le remplace par le nouveau mot de passe
if ($password != NULL){
$req = $bdd->prepare('UPDATE formulaire SET password = :new_pw WHERE password like :password');
$req->execute(array(
'new_pw' => $new_pw,
'password' => $password,
));
}
?>
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
// je vérifie si le mot de passe rentré existe.
$req = "SELECT password FROM formulaire WHERE password='".$password."'";
$res = $bdd->query($req);
foreach($res as $row)
{
$password = $row['password'];
}
// si le mot de passe entré existe, je le remplace par le nouveau mot de passe
if ($password != NULL){
$req = $bdd->prepare('UPDATE formulaire SET password = :new_pw WHERE password like :password');
$req->execute(array(
'new_pw' => $new_pw,
'password' => $password,
));
}
?>
Rajoute :
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
Merci d'avoir répondu hyperbidule.
J'ai rajouté ce que tu m'as dis mais toujours une erreur, cette fois-ci à la ligne catch (Exception $e) :
-( ! ) Parse error: syntax error, unexpected T_CATCH in C:\Program Files\wamp\www\Site\Page6\modif_compte.php on line 32.
Voici mon code avec ce que tu m'as dis :
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);
}
// je vérifie si le mot de passe rentré existe.
$req = "SELECT password FROM formulaire WHERE password='".$password."'";
$res = $bdd->query($req);
foreach($res as $row)
{
$password = $row['password'];
}
// si le mot de passe entré existe, je le remplace par le nouveau mot de passe
if ($password != NULL){
$req = $bdd->prepare('UPDATE formulaire SET password = :new_pw WHERE password like :password');
$req->execute(array(
'new_pw' => $new_pw,
'password' => $password,
));
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
J'ai rajouté ce que tu m'as dis mais toujours une erreur, cette fois-ci à la ligne catch (Exception $e) :
-( ! ) Parse error: syntax error, unexpected T_CATCH in C:\Program Files\wamp\www\Site\Page6\modif_compte.php on line 32.
Voici mon code avec ce que tu m'as dis :
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);
}
// je vérifie si le mot de passe rentré existe.
$req = "SELECT password FROM formulaire WHERE password='".$password."'";
$res = $bdd->query($req);
foreach($res as $row)
{
$password = $row['password'];
}
// si le mot de passe entré existe, je le remplace par le nouveau mot de passe
if ($password != NULL){
$req = $bdd->prepare('UPDATE formulaire SET password = :new_pw WHERE password like :password');
$req->execute(array(
'new_pw' => $new_pw,
'password' => $password,
));
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
Remplace cette ligne :
Par celle-ci :
Il m'affiche encore la même erreur :s