champs[1]

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : champs[1]

par dunbar » 29 juil. 2006, 15:44

$_POST['nom'][3]
car tu récupère le 3ème élément du tableau 'nom', lui même passé en POST :)
Bon ......
Mais juste pour être certain de comprendre!!!!
Exemple:
mes champs nommé nom_1,nom_2 etc se récupére
INSERT nom_1,nom_2 etc....

Mes champs nommé nom[1], nom[2], etc.... se récupére
INSERT POST_$nom[], et là il récupére les nom[1] et nom[2] j'ai bien comprid :?:
a+
[/php]

par @rthur » 24 juil. 2006, 23:57

$_POST['nom'][3]
car tu récupère le 3ème élément du tableau 'nom', lui même passé en POST :)

par dunbar » 24 juil. 2006, 22:21

$_POST $nom[3] 
C'est bien ça ?
Oui, en faisant un petit effort sur la syntaxe :shock: , mais je pense que tu as effectivement compris le principe ;)
Un petit seulement ? tu est sympa :lol:
Le principe oui je pense avoir compris, MAIS je ne trouve cependant pas la différence avec :
($_POST['nom_1'] 
Sorry hein :?:

Merci pour la patience :roll:

par @rthur » 24 juil. 2006, 22:18

$_POST $nom[3] 
C'est bien ça ?
Oui, en faisant un petit effort sur la syntaxe :shock: , mais je pense que tu as effectivement compris le principe ;)

par dunbar » 24 juil. 2006, 12:56

Salut,

Génial et merci, juste une question :oops: :oops: pourquoi dire tableau concernant [] ????
Et pour être certain d'avoir compris, j'ai un formulaire avec les champs
nom_1 nom_2 nom_3
Et pour bien faire je devrais les nommé
 $nom[1], $nom[2], $nom[3]
et pour ma requête INSERT
$sql="INSERT INTO test (nom,xxxxx,xxxxx,xxxxx,) VALUES ('".mysql_escape_string($_POST $nom[1])."','".mysql_escape_string($_POST $nom[2])."','".mysql_escape_string($_POST $nom[3] etc......
C'est bien ça ?

par HanX » 24 juil. 2006, 11:07

Bonjour,
.mysql_escape_string($_POST(nom[]),
Au lieu de :
mysql_escape_string($_POST['nom_1'] "','" .mysql_escape_string($_POST['nom_2'] "','" etc....
C'est bien ça ? :shock:

NOOOOOOOOON surtout pas !

$nom[] << défini signifie l'élément suivant du tableau

exemple :
$nom[1]='arbre';
$nom[2]='fleur';
$nom[3]='champignon';
$nom[]='fruit'; //se place en $nom[4]
si tu veux faire une manipulation totale sur un tableau, utilises $nom... il faut voir la doc de la fonction si elle permet de traiter des tableaux. Mais si tu ne veux pas avoir de problêmes, tu fais un foreach...
foreach($_POST as $key => $value) {
$_POST[$key]=mysql_escape_string($value);
}

par Ryle » 24 juil. 2006, 09:54

Non, cela ne te dispense pas de traiter chaque chaine.. l'avantage, c'est juste de récupérer les données sous la forme d'un tableau (éventuellement indexé) plutôt que dans chaque valeur dans une variable.

Typiquement dans le cas de cases à cocher comme l'a signalé Hanx, plutôt que de tester chaque variable $_POST['var_1'], $_POST['var_2'] ... $_POST['var_74'], on se contente de récupérer $_POST['var'] (si chaque case a pour nom "var[]"), sachant que cette variable est un tableau contenant les valeurs des cases qui ont été cochées.

On peut ainsi grandement simplifier le code en faisant une boucle sur les éléments du tableau sans avoir à se soucier de savoir combien il y a de cases, de tester si $_POST['var_26'] est défini ou non pour récupérer sa valeur, etc.

par dunbar » 24 juil. 2006, 08:37

Bonjour,

Merci pour vos réponse, donc imaginont qe je suis malin et que j'ai compris cela donnerais:
exemple je nomme mes champs (nom[1]) , (nom[2]) , (nom[3]) , etc...
Et il me suffirais de faire un truc du genre
.mysql_escape_string($_POST(nom[]),
Au lieu de :
mysql_escape_string($_POST['nom_1'] "','" .mysql_escape_string($_POST['nom_2'] "','" etc....
C'est bien ça ? :shock:

par HanX » 24 juil. 2006, 02:42

dans un formulaire c'est bien d'utiliser un tableau avec l'utilisation des checkbox... tu stockes tout, un coup de foreach et voilà le résultat... ça sert à économiser pas mal de lignes de code

genre
fonction($var1);
fonction($var2);
fonction($var3);
...
fonction($varX);
par
foreach($var as $key => $value) {
fonction($value);
}

par @rthur » 24 juil. 2006, 00:10

Bonsoir,

Les crochets indiquent l'utilisation d'un tableau d'éléments. En l'occurence, toto[1] désigne le 2ième élément "toto" (car un tableau commence à 0).
Après à toi de voir le nom qui te parrait le plus simple/logique dans ton cas.
Si tu as +ieus éléments similaires, un tableau peut être relativement pratique sinon ça n'a que peu d'intérêt

champs[1]

par dunbar » 23 juil. 2006, 23:22

Bonsoir,

La meilleurs manière de nommé des champs de formulaire est laquelle?
Je vois souvant ceci "nom_du_champs[]" je me demande pourquoi le []??
Quelle est l'avantage pour la récupération des donnée?
Pourquoi champs[1] et mieux que champ_1 ?

Merci