Naixn
Messages postés455Date d'inscriptionmardi 17 septembre 2002StatutMembreDernière intervention22 juillet 2007
-
5 avril 2006 à 07:55
bubuze
Messages postés31Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention25 avril 2006
-
5 avril 2006 à 09:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
bubuze
Messages postés31Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention25 avril 2006 5 avril 2006 à 09:23
deux solutions se présentent :
1 - deux requêtes
$req = "INSERT INTO table(id) VALUES ('".$id_val."') ";
$result=mysql_query($req); // et vérification de la requête
$req= "UPDATE table SET";
foreach ($_POST as $Nom_Champ => $Valeur_Champ) {
if ($Nom_Champ!='User_News') {
//faire ici les traitements sur les _POST (quotes,MD5...)
$req.= $Nom_Champ."='".$Valeur_Champ."', ";
}
}
//la requete se termine par une virgule, on profite du chkbox pour la terminer proprement
$User_News = isset($_POST["User_News"]);//1 si coché, 0 sinon
$req.="User_News='".$User_News."' WHERE id='".$id_val."'";
mysql_query($req);//sans oublier de vérifier le résultat de la requête plutôt que or die()
2 - une requête
c'est cette méthode que j'utilise, mais elle m'impose de voir connaître tous les champs du _POST
$req="INSERT INTO base(champ1,champ2...,champn) VALUES('";
après tu vois comment faire..
personnellement, je n'envoie pas un formulaire dans la base aussi brutalement :
a - vérification de la présence de tous les champs _POST
$post_ok=isset($champ1) && isset($champ2) ... isset($champn);//sauf les checkbox
b - vérification et traitement des champs
$req_ok=$post_ok;
if ($post_ok) {
un bloc de code par champ : numéro de téléphone ? valeur numérique ? e-mail ?
chaîne de caractères ? (dans ce cas, je fais quoi avec les guillemets et apostrophes)
...
if (expr.erreur) {$req_ok=false;}
}
c - tout est propre ?
$form_aff=true;//à priori affichage du formulaire
if ($req_ok) {
//construction, exécution et contrôle de la requête
// si tout va bien
$form_aff=false;
}
d - affichages
if ($form_aff) {
//affichage du formulaire, avec éventuellement des alertes suite au traitement des champs
// (ex : le numéro de téléphone n'est pas correct)
} else {
//affichage du résultat de la requête
echo 'bienvenue chez nous ! votre compte a bien été créé, mémorisez votre mot de passe !!!';
}
Naixn
Messages postés455Date d'inscriptionmardi 17 septembre 2002StatutMembreDernière intervention22 juillet 2007 5 avril 2006 à 07:55
Le problème majeur, déjà, c'est que tu postes ça en tant que code source, alors que tu devrais poster ça dans le forum d'aide, dédié à ce genre de questions...
5 avril 2006 à 09:23
1 - deux requêtes
$req = "INSERT INTO table(id) VALUES ('".$id_val."') ";
$result=mysql_query($req); // et vérification de la requête
$req= "UPDATE table SET";
foreach ($_POST as $Nom_Champ => $Valeur_Champ) {
if ($Nom_Champ!='User_News') {
//faire ici les traitements sur les _POST (quotes,MD5...)
$req.= $Nom_Champ."='".$Valeur_Champ."', ";
}
}
//la requete se termine par une virgule, on profite du chkbox pour la terminer proprement
$User_News = isset($_POST["User_News"]);//1 si coché, 0 sinon
$req.="User_News='".$User_News."' WHERE id='".$id_val."'";
mysql_query($req);//sans oublier de vérifier le résultat de la requête plutôt que or die()
2 - une requête
c'est cette méthode que j'utilise, mais elle m'impose de voir connaître tous les champs du _POST
$req="INSERT INTO base(champ1,champ2...,champn) VALUES('";
après tu vois comment faire..
personnellement, je n'envoie pas un formulaire dans la base aussi brutalement :
a - vérification de la présence de tous les champs _POST
$post_ok=isset($champ1) && isset($champ2) ... isset($champn);//sauf les checkbox
b - vérification et traitement des champs
$req_ok=$post_ok;
if ($post_ok) {
un bloc de code par champ : numéro de téléphone ? valeur numérique ? e-mail ?
chaîne de caractères ? (dans ce cas, je fais quoi avec les guillemets et apostrophes)
...
if (expr.erreur) {$req_ok=false;}
}
c - tout est propre ?
$form_aff=true;//à priori affichage du formulaire
if ($req_ok) {
//construction, exécution et contrôle de la requête
// si tout va bien
$form_aff=false;
}
d - affichages
if ($form_aff) {
//affichage du formulaire, avec éventuellement des alertes suite au traitement des champs
// (ex : le numéro de téléphone n'est pas correct)
} else {
//affichage du résultat de la requête
echo 'bienvenue chez nous ! votre compte a bien été créé, mémorisez votre mot de passe !!!';
}
5 avril 2006 à 07:55