Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
fanny742
# 04 May 2008 - 00:35:22
Citer
56 Posts
Bonjour,

Je fabrique actuellement un formulaire permettant au client de mettre a jour ses coordonnees. Je me trouve confrontée à un probleme, le mot de passe est stocké dans la bdd mysql en md5.
J’aimerais que le champ pass de la bdd soit mis a jour que si ce champ du formulaire est rempli.

Merci d’avance pour l'aide que vous apportez cligne

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE clients SET nom=%s, prenom=%s, adresse=%s, ville=%s,
cp=%s, tel=%s, email=%s, pass=md5(%s), statut=%s WHERE ID=%s",
GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['prenom'], "text"),
GetSQLValueString($_POST['adresse'], "text"),
GetSQLValueString($_POST['ville'], "text"),
GetSQLValueString($_POST['cp'], "text"),
GetSQLValueString($_POST['tel'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['pass'], "text"),
GetSQLValueString($_POST['statut'], "text"),
GetSQLValueString($_POST['ID'], "int"));

mysql_select_db($database_Connexion, $Connexion);
$Result1 = mysql_query($updateSQL, $Connexion) or die(mysql_error());


<form action="<?php echo $editFormAction; ?>" method="POST" ...>
<input name="mail" type="text" class="input" id="mail" value="<?php echo htmlentities($row_rsclient['email'], ENT_COMPAT, 'utf-8'); ?>" />
</form>

Modifié par fanny742 (06 May 2008 - 02:56)

^
dew
# 04 May 2008 - 03:18:03
Citer
Administrateur
653 Posts
il faut réétudier la façon d'écrire la requête.
il s'agit d'un simple if pour tester la présence de $_POST['pass'] et l'intégrer dans la chaîne de caractères.

par exemple
if(isset($_POST['pass']) && strlen($_POST['pass'])>5)) $update_pass=' ,pass=md5(\''.addslashes($_POST['pass']).'\') ';
$updateSQL = 'blabla ... '.$update_pass.' blabla';


^
Heyoan
# 04 May 2008 - 03:18:40
Citer
Un p'tit Kiwiz Coca ?
1664 Posts
Hello Fanny smile ,

ben à priori il suffit de faire 2 requêtes différentes selon que $_POST['pass'] soit ou non alimenté...

Sinon 2 petites remarques :
- en général on fait ressaisir le mot de passe une 2ème fois (puisque le champ est censé être de type password et donc 'invisible') pour être sûr que le visiteur ne s'est pas trompé et qu'il ne se retrouve pas bloqué la prochaine fois qu'il va vouloir se connecter.
- en voyant des variables du genre MM_quelquechose ça me rappelle l'époque (lointaine fut ) où j'utilisais Dreamweaver en mode code. Ce n'était que pour faire des mises en pages à base de tableaux (et de vilain code) mais je crois savoir que la (les ?) dernière(s) version(s) permet(tent) également de 'générer' des requêtes mysql. Tout ça pour dire que je ne comprenais pas grand chose à ce que je faisais et j'espère que ça n'est pas ton cas car les requêtes mysql sont autrement plus sensibles que la mise en page scared ! Ce qui me fait dire ça c'est que d'une part ta question est un basique de php (création d'une requête en fonction des données reçues d'un formulaire) et d'autre part que dans le code que tu donnes il y a la partie $editFormAction qui n'a pas de rapport avec ta question alors qu'il manque la fonction GetSQLValueString qui elle y est directement liée (même si on peut supposer qu'il s'agit d'un test de base sur le type des données et l'ajout éventuel d'un htmlspecialchars). Et donc, peut-être que tu devrais te faire la main encore un peu avant d'avoir des clients langue !

Voili voilou...

A+

Edit: Argh ! J'aurais pas imaginé être grillé à 3h du mat biggol !
Modifié par Heyoan (04 May 2008 - 03:31)

Un être en tant qu'être ne peut-il être autre qu'il n'est s'il n'exprime pas lui même son être ?

http://www.heyoan.com 
^
fanny742
# 06 May 2008 - 02:53:16
Citer
56 Posts
J’ai suivi vos conseils, en fabriquant 2 requêtes conditionnées.
Je n’etais pas sur la bonne voie, je n’avais pas essayé d’en utiliser 2.
Ca fonctionne.

Le script ci-dessus n’est pas definitif, un champ est prevu pour la confirmation du mot de passe et des amelioration seront apportées surtout en securité !
J’ai encore beaucoup des choses à apprendre, les livres n’apportent pas tout, c’est pourquoi j'ai besoin de conseils.

Merci pour tout
Modifié par fanny742 (06 May 2008 - 02:57)

^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.8 beta © dew
Contacter l'administrateur - 8.7 ms - Charte