[php-sql] Modifier plusieurs champs d'une bdd
timon44
Messages postés
56
Statut
Membre
-
ApeKing -
ApeKing -
Bonjour, j'ai créé un site web, avec accés sécurisé, donc avec pseudo et mot de passe dans une base de données.
Je souhaiterai faire une page qui permette de modifier ses information (pseudo, mot de passe, nom, prenom etc...)
Donc j'ai commencé à faire ça : (ça marche impec)
Mais je me vois pas, enfin j'ai plutot la flegme ( ! ^^) de faire ça pour chaque champ, c'est à dire, tester si le prenom a changé, si oui etc ... aprés tester si le nom a changé ...
Connaissez vous un meilleur moyen ?
Ou une petite critique de mon code ?
sinon autre petite question, dont je n'ai pas trouvé la réponse ...
Vous voyez ici que j'utilise extract, et comment faire pour l'utiliser tout en protégeant ma base (avec htmlentities par exemple)
Merci beaucoup !
Je souhaiterai faire une page qui permette de modifier ses information (pseudo, mot de passe, nom, prenom etc...)
Donc j'ai commencé à faire ça : (ça marche impec)
<?php
include('verif.php');
extract($_POST); //permet de convertir les POST directement en variable : $pseudo
// partie changement de pseudo
if ($pseudo2 != $login) {
$req = "Select pseudo from membres where pseudo='$pseudo2'";
$reponse = mysql_query($req);
$bool=mysql_fetch_array($reponse);
if (!$bool){
$ajout= mysql_query("UPDATE membres SET pseudo='$pseudo2' WHERE id_membre=$id");
//on test si il n'y a pas eu d'erreur pour la requete $ajout
if($ajout==false){
echo mysql_error();
}
else {
echo ('<b>Modification réussie, redirection ...</b>');
header("Refresh: 1; URL=../index.php?page=compte" );
}
} //fin si le pseudo/email nexiste pas
else {
echo ('<b> Email ou pseudo déjà éxistant !</b>');
header("Refresh: 3; URL=../index.php?page=compte" );
} //fin bool
} // fin pseudo2 login
else { header("Refresh: 0; URL=../index.php?page=compte" );}
// fin partie changement de pseudo
?>
Mais je me vois pas, enfin j'ai plutot la flegme ( ! ^^) de faire ça pour chaque champ, c'est à dire, tester si le prenom a changé, si oui etc ... aprés tester si le nom a changé ...
Connaissez vous un meilleur moyen ?
Ou une petite critique de mon code ?
sinon autre petite question, dont je n'ai pas trouvé la réponse ...
Vous voyez ici que j'utilise extract, et comment faire pour l'utiliser tout en protégeant ma base (avec htmlentities par exemple)
Merci beaucoup !
A voir également:
- [php-sql] Modifier plusieurs champs d'une bdd
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Comment modifier une story sur facebook - Guide
- Modifier extension fichier - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
5 réponses
Bonsoir,
Je n'ai pas regardé tout votre code mais je suppose que ce que je vais vous dire vous aidera...
Lors de votre condition, vous mettez ceci:
Et si vous faisiez comme ceci ?
Cela vous évitera de faire trente-six mille condition... Ensuite, dans les champs formulaire, pourquoi ne pas les pré-remplir avec les infos déjà présentes ? Si la personne change quelque chose, tant mieux, sinon on fait quand même un update avec les anciennes infos ?
Luan.
Je n'ai pas regardé tout votre code mais je suppose que ce que je vais vous dire vous aidera...
Lors de votre condition, vous mettez ceci:
if ($pseudo2 != $login)
Et si vous faisiez comme ceci ?
if ($pseudo2 != $login or $passe2 != $passe or $nouveautruc != $trucactuel)
Cela vous évitera de faire trente-six mille condition... Ensuite, dans les champs formulaire, pourquoi ne pas les pré-remplir avec les infos déjà présentes ? Si la personne change quelque chose, tant mieux, sinon on fait quand même un update avec les anciennes infos ?
Luan.
Tu ferais bien de virer cet affreux extract().
Si on modifie ton formulaire, crois moi que ton site ne va pas faire long feu lorsqu'il sera en ligne.
Si on modifie ton formulaire, crois moi que ton site ne va pas faire long feu lorsqu'il sera en ligne.
oui, pas bête ! ^^
fatigué de la journée, je pense pas toujours aux meilleures soluces !
En plus j'avais déjà prérempli le formulaire ^^
Merci !
Pas d'idée pour le extract ?
fatigué de la journée, je pense pas toujours aux meilleures soluces !
En plus j'avais déjà prérempli le formulaire ^^
Merci !
Pas d'idée pour le extract ?
Donc voila ce que j'ai fait :
Donc pour le extract, je l'ai remplacé par ce que je fais d'habitude, c'est ce que tu voulais dire P@t@ch0n ?
Le fait que extract ne protége pas ta base ?
merci !
<?php
include('verif.php');
$pseudo2 = mysql_real_escape_string(htmlentities($_POST['pseudo2'], ENT_QUOTES));
$email2 = mysql_real_escape_string(htmlentities($_POST['email2'], ENT_QUOTES));
$prenom2 = mysql_real_escape_string(htmlentities($_POST['prenom2'], ENT_QUOTES));
$nom2 = mysql_real_escape_string(htmlentities($_POST['nom2'], ENT_QUOTES));
$numtel2 = mysql_real_escape_string(htmlentities($_POST['numtel2'], ENT_QUOTES));
$autre2 = mysql_real_escape_string(htmlentities($_POST['autre2'], ENT_QUOTES));
// partie changement de pseudo
if ($pseudo2 != $login ) {
$req = "Select pseudo from membres where pseudo='$pseudo2'";
$reponse = mysql_query($req);
$bool=mysql_fetch_array($reponse);
if (!$bool){
$ajout= mysql_query("UPDATE membres SET pseudo='$pseudo2' WHERE id_membre=$id");
//on test si il n'y a pas eu d'erreur pour la requete $ajout
if($ajout==false){
echo mysql_error();
}
else {
echo ('<b>Votre changement de pseudo a été effectué avec succés</b>');
}
} //fin si le pseudo/email nexiste pas
else {
echo ('<b> Pseudo déjà éxistant !</b>');
} //fin bool
} // fin pseudo2 login
// fin partie changement de pseudo
$sql = "SELECT * FROM membres WHERE id_membre='$id'";
$req = mysql_query($sql);
$info = mysql_fetch_array($req);
if( ($email2 != $info['email']) || ($prenom2 != $info['prenom']) || ($numtel2 != $info['numtel']) || ($autre2 != $info['autre'])){
$test="SELECT * FROM membres WHERE id_membre=$id";
$rep=mysql_query($test);
$bool=mysql_fetch_array($rep);
$ajout= mysql_query("UPDATE membres
SET email='$email2',prenom='$prenom2',nom='$nom2',numtel='$numtel2',autre='$autre2'
WHERE id_membre=$id");
//on test si il n'y a pas eu d'erreur pour la requete $ajout
if($ajout==false){
echo mysql_error();
}
else {
echo ('<p><b>Modification réussie, redirection ...</b></p>');
header("Refresh: 1; URL=../index.php?page=compte" );
}
} // fin si ya eu une modif
else { //si ya pas de modif
header("Refresh: 0; URL=../index.php?page=compte" );
}
?>
Donc pour le extract, je l'ai remplacé par ce que je fais d'habitude, c'est ce que tu voulais dire P@t@ch0n ?
Le fait que extract ne protége pas ta base ?
merci !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour, j'ai un problème légèrement similaire: j'ai crée une base de données qui répertories des voitures de lgendes pour un projet scolaire. ma bdd contient trois table:
_la table CAR (code_car, nom_car, constructeur_car...etc
_la table CONSTRUCTEUR
_la table DESIGNER
J'ai inséré un nouveau champs 'pays_car' dans la table CAR, dans la table (+champs) 'CONSTRUCTEUR.code_const', j'ai mis par exemple la donnée 'AM1' qui correspond au constructeur ford.
Dans la table (+champs) 'CAR.code_car', je mets par exemple 'AM11' qui correspond à la 'mustang gt 500', et 'AM12' qui correspond à la 'mustang bullitt'.
Mon problème c'est pour le champs suivant: 'CAR.pays_car', j'aimerais insérer la données 'etats unis' pour les deux voitures en une seule commande.
Sachant que je travaille avec easyphp, et que je fais mets manipulations via une console cmd, je fais la synthax suivante:
update CAR
set pays_car='etats unis'
where code_car='AM1*;
J'aimerais savoir où se trouve mon erreur, car j'ai longtemps cherché, mais en vain. Merci beaucoup
_la table CAR (code_car, nom_car, constructeur_car...etc
_la table CONSTRUCTEUR
_la table DESIGNER
J'ai inséré un nouveau champs 'pays_car' dans la table CAR, dans la table (+champs) 'CONSTRUCTEUR.code_const', j'ai mis par exemple la donnée 'AM1' qui correspond au constructeur ford.
Dans la table (+champs) 'CAR.code_car', je mets par exemple 'AM11' qui correspond à la 'mustang gt 500', et 'AM12' qui correspond à la 'mustang bullitt'.
Mon problème c'est pour le champs suivant: 'CAR.pays_car', j'aimerais insérer la données 'etats unis' pour les deux voitures en une seule commande.
Sachant que je travaille avec easyphp, et que je fais mets manipulations via une console cmd, je fais la synthax suivante:
update CAR
set pays_car='etats unis'
where code_car='AM1*;
J'aimerais savoir où se trouve mon erreur, car j'ai longtemps cherché, mais en vain. Merci beaucoup