Aller au contenu

Formulaire de mise à jour Bdd


Messages recommandés

Salut les INpactiens,

je vous poste un petit message sur un cas particulier auquel je suis confronté : je débute en PHP et je suis en train de faire un formulaire de mise à jour de profile pour un site que j'essaie de monter tout seul comme un grand sans l'aide d'un CMS.

Voici ce que je souhaite faire :

Mettre à jour les données contenu dans un formulaire.

Voici le morceau de php en question

$new_nick = isset($_POST['nickname']);//sélection de l'id user$sql = 'SELECT id FROM profile';$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());$data = mysql_fetch_assoc($req);$id = $data['id'];// on met à jour le formulaire$update = "UPDATE profile SET u_nickname='$new_nick', WHERE id='$id'";exec($update);

Lorsque que je remplace la variable

$new_nick = isset($_POST['nickname']);

par

$new_nick = ' toto ';

je n'ai pas de problème, l'opération se déroule comme il faut, mais quand j'essaie de récupérer la nouvelle valeur dans le formulaire ça efface la donnée qui est présente

voici le formulaire :

<form type="POST" action="editer.php"><fieldset><input type="text" name="nickname" value="<?php echo ''.$data['u_nickname'].''; ?>" /><input type="text" name="email" value="<?php echo ''.$data['u_email'].''; ?>" /><input type="text" name="date-of-birth" value="<?php echo ''.$data['u_birthday'].''; ?>" /><input type="text" name="place" value="<?php echo ''.$data['u_place'].''; ?>" /><input type="text" name="setup" value="<?php echo ''.$data['u_setup'].''; ?>" /><input type="hidden" name="id" value="<? echo ''.$data['id'].''; ?>"><input type="submit" value="editer" /></fieldset></form>

J'ai surement du oublier quelque chose d'important... si vous pouviez m'aiguiller sans forcément me mâcher le travail ça serait cool !

A+

Lien vers le commentaire
Partager sur d’autres sites

Ton isset sur la première ligne de ton code PHP va retourner soit true soit false (Cf. documentation). Bon après, vu ton code ça ressemble plus à une erreur de copier/coller qu'à une vraie mauvaise utilisation de la fonction.

Après, si tu veux du vrai code propre et sécurisé (oh la belle injection SQL...), il te reste un poil de travail. Mais comme tu débutes, ce que tu as mis ici est déjà bien. C'est lisible et clair, ce qui n'est malheureusement pas toujours le cas. :)

Lien vers le commentaire
Partager sur d’autres sites

Effectivement y a une belle injection à faire ici, mais ça se règle facilement ;).

Formulaire:

<form method="post" action="editer.php"><input type="text" name="nickname" value="<?php echo ''.$data['u_nickname'].''; ?>" /><!--blablabla --></form>

BDD:

//Connexion sécurisée://Tes variables:$host = 'ton_host';$login = 'ton_login';$pass = 'ton_pass';$db = 'ta_db';$new_nick = "$_POST['nickname'];//Définition d'option:$options = array();$options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;//La connexion à la DB:$pdo = new PDO("mysql:host=$host;dbname=$db", $login, $pass, $options);$req = $pdo->prepare('UPDATE ta_db SET tes_options');$req->execute(array('u_nickname' => $_POST['nickname']));

Voila ça te donne une idée de ce qu'il y a à faire, et surtout ça te donne une connexion sécurisé, sans possibilité d'injection ;).

Maintenant à toi de le travailler à ta sauce :).

Cordialement,

Mae.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...