Petit problème

Gothem

Gothem Le 18 juillet 2016 à 08:18 (Édité le 25 janvier 2019 à 17:51)

Salut salut ! Je cherche un peu d'aide, et merci d'avance. 😀
On ne cesse de me dire qu'il y a un unexpected "{" à la ligne 29. Je note donc la ligne 29 ci-dessous pour que vous puissiez le voir plus facilement. A noter que Prime a effectué le même codage pour son tuto sur la création de l'espace membre (partie 3, édition du profil) ou peut-être qu'un petit détail m'a echappé.
<?php
session_start();
$bdd = new PDO('mysql:host=localhost;dbname=espace_membre', 'root', '');
if(isset($_SESSION['id']))
{
$requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$user = $requser->fetch();
if(isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo'])
{
$newpseudo = htmlspecialchars($_POST['newpseudo']);
$insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
$insertpseudo->execute(array($newpseudo, $_SESSION['id']));
header('Location: profil.php?id='.$_SESSION['id']);
}
if(isset($_POST['newmail']) AND !empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail'])
{
$newmail = htmlspecialchars($_POST['newmail']);
$insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
$insertmail->execute(array($newmail, $_SESSION['id']));
header('Location: profil.php?id='.$_SESSION['id']);
}
if(isset($_POST['newmdp1']) AND !empty($_POST['newmdp1'] AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2']))
(Ligne 29) {
$mpd1 = sha1($_POST['newmdp1']);
$mdp2 = sha1($_POST['newmdp2']);
if($mdp1 == $mdp2)
{
$indertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
#insertmdp->execute(array($mdp1, $_SESSION['id'));
header('Location: profil.php?id='.$_SESSION['id']);
}
else
{
$msg = "Vos deux mdp ne correspondent pas.";
}
}
?>
<html>
<head>
<title>Tuto PHP</title>
<meta charset=utf-8">
</head>
<body>
<div align="center">
<h2>Edition de mon profil</h2>
<div align="left">
<form method="POST" action="">
<label>Pseudo :</label>
<Input type="text" name="newpseudo" placeholder="Pseudo" value="<?php echo $user['pseudo']; ?>" /><br /><br />
<label>Mail :</label>
<Input type="text" name="newmail" placeholder="Mail" value="<?php echo $user['mail']; ?>" /><br /><br />
<label>Mot de passe :</label>
<Input type="password" name="newmdp1" placeholder="Mot de passe"/><br /><br />
<label>Confirmation - mot de passe :</label>
<Input type="password" name="newmdp2" placeholder="Confirmation du mot de passe"/><br /><br />
<Input type="submit" name="Mettre à mon jour mon profil" />
</form>
<?php if(isset($msg)) { echo $msg; }
</div>
</div>
</body>
</html>
<?php
}
else
{
header("Location: connexion.php");
}
?>  
lecteursdb

lecteursdb Le 18 juillet 2016 à 10:14

salut 'Gothem'

il y a un '#' qui apparaît au moment où tu exécutes ta requête juste avant d'afficher 'Vos deux mots de passe ne correspondent pas l'as tu regardé aussi ? :)
Nobodief

Nobodief Le 18 juillet 2016 à 11:12

Salut, plusieurs erreur sont nettement visible :

  • Ton submit ne sert à rien, il n'à aucune action, le name ne sert pas à afficher du texte, il à la même utilité que tes autres input.
  • Comme la dit lecteursdb il y à une erreur à cette ligne: #insertmdp->execute(array($mdp1, $_SESSION['id'));  enlève le dièse.
  • Tu utilise un seul formulaire et dans ton code tu sépare l'update de tes données, c'est pas logique, soit utilise un formulaire groupé, soit utilise des formulaires indépendant.
Balatharas

Balatharas Le 19 juillet 2016 à 11:07

Déjà les balises code sont la pour être utilisée, clique sur [CODE] et met le code que tu veux nous montrer. Ensuite si tu veux corriger ton submit, il suffit de remplacer name="Mettre a jour mon profil" par value="Mettre à jour mon profil" ensuite tu rajoute un name.
justemilieu

justemilieu Le 19 juillet 2016 à 19:54

{ 
$indertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?"); // plutôt $insertmdp=...
#insertmdp->execute(array($mdp1, $_SESSION['id'));    // insertmdp-> ... sans le #
header('Location: profil.php?id='.$_SESSION['id']); 
} 
Blast0Kd

Blast0Kd Le 19 juillet 2016 à 20:46

ouai c'ets juste ce morceau de code
silvio85

silvio85 Le 22 juillet 2016 à 18:09

excuser moi mais j'ai ce code erreur 

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\wamp67\www\New folder\traitement.php on line 3


PDOException: could not find driver in C:\wamp67\www\New folder\traitement.php on line 3

je crois que je ne peut pas me connecter a ma base mais je comprend pas esque ce code est bon:

$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membres','root', ''); 

merci d,avance
TheOldNoob

TheOldNoob Le 22 juillet 2016 à 22:40

Salut jeune Primdawan,

Pour ma part, j'utilise ça pour appelé ma bdd. c'est un peu plus compliquer niveau visitilité, il faut pas être mauvais en concaténation, mais je trouve que pour gérer les identifient de connection c'est plus mieux que si c'était moins bien 😉

<?php 
//Informations de connexion à la bdd

$sqlHost     = 'localhost';         
$sqlUser     = 'root';            
$sqlPassword = '';                
$dbName      = 'espace_membre';      

    $bdd = new PDO('mysql:host='.$sqlHost.';dbname='.$dbName.';charset=utf8',$sqlUser,$sqlPassword) or die($pdo->errorInfo());



?>
silvio85

silvio85 Le 22 juillet 2016 à 23:18

Merci et jolie jeu de mots mais j'ai trouver le problème grâce à une très gentille personne et ont à trouve que en desintallant wamp sa revenait normal c'était un défaut d'installation qui m'a pris 5 heures quand même ???????? mais merci quand même maître pridei ????
Nobodief

Nobodief Le 25 juillet 2016 à 03:49 (Édité le 25 juillet 2016 à 03:49)

Ah le wamp, dès que ton pc crash subitement, c'est mortel, tant que le logo wamp n'est pas affiché en vert aucune connexion avec la base de donnée ne peu s'effectué.

La seule solution est de le désinstaller.
Blast0Kd

Blast0Kd Le 25 juillet 2016 à 17:16

perso j'utilise ça pour me co à ma db :
<?php
$db = new PDO('mysql:dbname=data;host=localhost', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte