Voila le code que j'utilise pour mettre à jour ma base de données :
if (isset($_POST['submit']))
{
$sql="";
foreach ($_POST as $indice => $valeur)
{
if ($indice!="submit") {$sql=$sql."
".$indice."='".htmlentities($valeur)."',";}
}
$sql=substr($sql, 0, -1);
echo $sql;
$req="UPDATE $table SET $sql WHERE $filtre";
mysql_query($req) or die (mysql_error()." : ".$req);
}
Ce script a été mis en place pour mettre à jour n'importe quelle page
de mon site. Mon problème est que dans mon formulaire à envoyer, j'ai
plusieurs champs de type checkbox. Lorsque les cases à cocher ne le
sont pas, les POST['checkbox'] ne sont pas initialisés, et les champs
correspondants dans la base mysql ne peuvent se mettre à jour avec la
valeur "0". Par contre quand la case est cochée le POST renvoie bien la
valeur "1").
Avez-vous une astuce pour régler ce problème, sans perdre l'idée que le
script de mise à jour est un include qui doit fonctionner avec
n'importe quelle page de mon site ?
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à devoir désactiver le javascript. À une époque, certaines entreprises avaient même interdit les images, car des buffer overflow dus à un bogue de MSIE permettaient la diffusion de virus.
La fonction de vérification en question n'est pas du javascript. C'est juste un redirect html inséré dans la balise <script></noscript>
Ce qui n'est pas valide <http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus :-D
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à
devoir désactiver le javascript. À une époque, certaines entreprises
avaient même interdit les images, car des buffer overflow dus à un bogue
de MSIE permettaient la diffusion de virus.
La fonction de vérification en question n'est pas du javascript. C'est
juste un redirect html inséré dans la balise <script></noscript>
Ce qui n'est pas valide
<http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus
:-D
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à devoir désactiver le javascript. À une époque, certaines entreprises avaient même interdit les images, car des buffer overflow dus à un bogue de MSIE permettaient la diffusion de virus.
La fonction de vérification en question n'est pas du javascript. C'est juste un redirect html inséré dans la balise <script></noscript>
Ce qui n'est pas valide <http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus :-D
La fonction de vérification en question n'est pas du javascript. C'est juste un redirect html inséré dans la balise <script></noscript>
Je suppose qu'il faut lire <noscript></noscript>
Ce qui n'est pas valide <http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus :-D
En effet. L'élément NOSCRIPT est un %block; (donc il ne peut pas se trouver dans le HEAD) et il ne peut contenir rien d'autre qu'un ou plusieurs %block;.
Le 01/07/2008 12:20, Mickael Wolff a écrit :
La fonction de vérification en question n'est pas du javascript. C'est
juste un redirect html inséré dans la balise <script></noscript>
Je suppose qu'il faut lire <noscript></noscript>
Ce qui n'est pas valide
<http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus
:-D
En effet. L'élément NOSCRIPT est un %block; (donc il ne peut pas se
trouver dans le HEAD) et il ne peut contenir rien d'autre qu'un ou
plusieurs %block;.
La fonction de vérification en question n'est pas du javascript. C'est juste un redirect html inséré dans la balise <script></noscript>
Je suppose qu'il faut lire <noscript></noscript>
Ce qui n'est pas valide <http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus :-D
En effet. L'élément NOSCRIPT est un %block; (donc il ne peut pas se trouver dans le HEAD) et il ne peut contenir rien d'autre qu'un ou plusieurs %block;.
Denis Beauregard
Le 29 Jun 2008 17:51:08 GMT, Freegate écrivait dans fr.comp.lang.php:
Mickael Wolff a écrit :
Pour savoir si une checkbox n'est pas cochée, il n'y a pas de secret, il faut chercher la clé dans $_POST. Son absence indique que la case est décochée. Tu ne peux pas faire autrement.
Ce qui veut qu'il faut que j'adape ce code à chaque page car il ne peut savoir à l'avance si un $_POST[checkbox] est absent ou pas !!!
Mince !!!
Pourquoi ?
Disons que la page1 contient la variable a1 et la page2, la variable a2. Tu valides les deux variables dans les deux cas, donc même code inclus.
Ce que tu dois prévoir, c'est la liste de toutes les variables et aussi, des moyens simples de valider toutes les variables. Pour les chaînes de caractères, il faut aussi prévoir la possibilité de code injecté dans la chaîne, donc interdire la présence de certains caractères (je suppose que " et ; seront suffisants comme caractères interdits) ou recoder la chaîne avant de l'insérer dans la base de données avec mysql_escape par exemple.
Denis
Le 29 Jun 2008 17:51:08 GMT, Freegate <freegate@free.fr> écrivait dans
fr.comp.lang.php:
Mickael Wolff a écrit :
Pour savoir si une checkbox n'est pas cochée, il n'y a pas de secret,
il faut chercher la clé dans $_POST. Son absence indique que la case est
décochée. Tu ne peux pas faire autrement.
Ce qui veut qu'il faut que j'adape ce code à chaque page car il ne peut
savoir à l'avance si un $_POST[checkbox] est absent ou pas !!!
Mince !!!
Pourquoi ?
Disons que la page1 contient la variable a1 et la page2, la variable
a2. Tu valides les deux variables dans les deux cas, donc même code
inclus.
Ce que tu dois prévoir, c'est la liste de toutes les variables et
aussi, des moyens simples de valider toutes les variables. Pour les
chaînes de caractères, il faut aussi prévoir la possibilité de code
injecté dans la chaîne, donc interdire la présence de certains
caractères (je suppose que " et ; seront suffisants comme caractères
interdits) ou recoder la chaîne avant de l'insérer dans la base de
données avec mysql_escape par exemple.
Le 29 Jun 2008 17:51:08 GMT, Freegate écrivait dans fr.comp.lang.php:
Mickael Wolff a écrit :
Pour savoir si une checkbox n'est pas cochée, il n'y a pas de secret, il faut chercher la clé dans $_POST. Son absence indique que la case est décochée. Tu ne peux pas faire autrement.
Ce qui veut qu'il faut que j'adape ce code à chaque page car il ne peut savoir à l'avance si un $_POST[checkbox] est absent ou pas !!!
Mince !!!
Pourquoi ?
Disons que la page1 contient la variable a1 et la page2, la variable a2. Tu valides les deux variables dans les deux cas, donc même code inclus.
Ce que tu dois prévoir, c'est la liste de toutes les variables et aussi, des moyens simples de valider toutes les variables. Pour les chaînes de caractères, il faut aussi prévoir la possibilité de code injecté dans la chaîne, donc interdire la présence de certains caractères (je suppose que " et ; seront suffisants comme caractères interdits) ou recoder la chaîne avant de l'insérer dans la base de données avec mysql_escape par exemple.
Denis
Freegate
Mickael Wolff vient de nous annoncer :
Freegate a écrit :
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à devoir désactiver le javascript. À une époque, certaines entreprises avaient même interdit les images, car des buffer overflow dus à un bogue de MSIE permettaient la diffusion de virus.
La fonction de vérification en question n'est pas du javascript. C'est juste un redirect html inséré dans la balise <script></noscript>
Ce qui n'est pas valide <http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus :-D
En tout cas merci pour les conseils, vos interpellations sur la sécurité m'ont fait réflechir, il faut que j'y accorde plus de temps.
Mickael Wolff vient de nous annoncer :
Freegate a écrit :
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à
devoir désactiver le javascript. À une époque, certaines entreprises
avaient même interdit les images, car des buffer overflow dus à un bogue
de MSIE permettaient la diffusion de virus.
La fonction de vérification en question n'est pas du javascript. C'est
juste un redirect html inséré dans la balise <script></noscript>
Ce qui n'est pas valide
<http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus
:-D
En tout cas merci pour les conseils, vos interpellations sur la
sécurité m'ont fait réflechir, il faut que j'y accorde plus de temps.
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à devoir désactiver le javascript. À une époque, certaines entreprises avaient même interdit les images, car des buffer overflow dus à un bogue de MSIE permettaient la diffusion de virus.
La fonction de vérification en question n'est pas du javascript. C'est juste un redirect html inséré dans la balise <script></noscript>
Ce qui n'est pas valide <http://www.w3.org/TR/html4/interact/scripts.html#edef-NOSCRIPT> en plus :-D
En tout cas merci pour les conseils, vos interpellations sur la sécurité m'ont fait réflechir, il faut que j'y accorde plus de temps.
SAM
Mickael Wolff a écrit :
Freegate a écrit :
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à devoir désactiver le javascript.
Je serais intéressé par des urls concernant ce sujet. Merci.
À une époque, certaines entreprises avaient même interdit les images, car des buffer overflow dus à un bogue de MSIE permettaient la diffusion de virus.
suivi vers JavaScript news:fr.comp.lang.javascript
-- sm
Mickael Wolff a écrit :
Freegate a écrit :
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à
devoir désactiver le javascript.
Je serais intéressé par des urls concernant ce sujet.
Merci.
À une époque, certaines entreprises
avaient même interdit les images, car des buffer overflow dus à un bogue
de MSIE permettaient la diffusion de virus.
suivi vers JavaScript news:fr.comp.lang.javascript
A quoi penses tu ? J'ai du mal à voir où tu veux en venir !!
Tout simplement qu'un problème grave de sécurité peut te contraindre à devoir désactiver le javascript.
Je serais intéressé par des urls concernant ce sujet. Merci.
À une époque, certaines entreprises avaient même interdit les images, car des buffer overflow dus à un bogue de MSIE permettaient la diffusion de virus.
suivi vers JavaScript news:fr.comp.lang.javascript