Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ecriture direct de variable $_POST ou $_SESSION dans une table.

5 réponses
Avatar
Debellez
Bonjour,

J'aimerai pouvoir écrire directent dans une table sql soit par des
variables provenant directement d'un formulaire, soit des variables de
session.

L'un comme l'autre ne fonctionne pas.

voici mes requettes (c'est un extrait) infructueuses:


mysql_query("INSERT INTO fournisseurs (fourn_nom) VALUES ('$_POST
['FOURN_Nom']')");

ou

mysql_query("INSERT INTO fournisseurs (fourn_nom) VALUES ('".$_SESSION
['FOURN_Nom']."')");


Dans le premier cas, voici le message d'erreur :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting
T_STRING or T_VARIABLE or T_NUM_STRING in ecrit-fournisseur.php on line 324

Dans le deuxième cas, je n'ai aucun message d'erreur, par contre, il n'y a
pas d'écriture dans la base.


Je ne souhaite pas repasser par des variables temporaires, car mon
formulaire contient plus de 110 zones.


Quelqu'un connait il la bonne syntaxe ?


Merci d'avance.

5 réponses

Avatar
Olivier Miakinen

mysql_query("INSERT INTO fournisseurs (fourn_nom) VALUES ('$_POST
['FOURN_Nom']')");


RTFM ;-)

http://www.php.net/manual/fr/language.types.string.php

echo "Une banane est $fruits[banane].";
--> "INSERT INTO ... VALUES ('$_POST[FOURN_Nom]')"

echo "Une banane est {$fruits['banane']}.";
--> "INSERT INTO ... VALUES ('{$_POST['FOURN_Nom']}')"

echo "Une banane est " . $fruits['banane'] . ".";
--> "INSERT INTO ... VALUES ('" . $_POST['FOURN_Nom'] . "')"

mysql_query("INSERT INTO fournisseurs (fourn_nom) VALUES ('".$_SESSION
['FOURN_Nom']."')");


Là je ne comprends pas, cela devrait fonctionner.
Que vaut $_SESSION['FOURN_Nom'] ?

Dans le premier cas, voici le message d'erreur :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting
T_STRING or T_VARIABLE or T_NUM_STRING in ecrit-fournisseur.php on line 324


Oui, oui, RTFM...

Dans le deuxième cas, je n'ai aucun message d'erreur, par contre, il n'y a
pas d'écriture dans la base.


Et si tu passes par une variable temporaire, ça marche ?

Je ne souhaite pas repasser par des variables temporaires, car mon
formulaire contient plus de 110 zones.


J'espère que tu vérifies quand même tes 110 zones avant de les passer à
la moulinette mysql...

Quelqu'un connait il la bonne syntaxe ?


Elle*s* *sont* dans le manuel.

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)

Avatar
Debellez
Merci Olivier pour ta réponse.

RTFM ;-)


???

http://www.php.net/manual/fr/language.types.string.php


Effectivement ca aide ;o)

Là je ne comprends pas, cela devrait fonctionner.
Que vaut $_SESSION['FOURN_Nom'] ?


Le contenu de la zone est bon, j'ai vérifier avec un echo !

Et si tu passes par une variable temporaire, ça marche ?


Euh, et bien non ...

Je cherche ailleurs !

J'espère que tu vérifies quand même tes 110 zones avant de les passer
à la moulinette mysql...


Si toutes les zones ne sont pas obligatoires à la saisie, dois je les
tester quand même ?


Elle*s* *sont* dans le manuel.
;o)


merci bien.

Avatar
Olivier Miakinen

RTFM ;-)


???


Dans l'une des versions francophones les plus polies, c'est « Regarde
Ton Fantastique Manuel », tandis que la version originale, en anglais et
pas polie du tout, est « Read The Fucking Manual » !

http://www.php.net/manual/fr/language.types.string.php


Effectivement ca aide ;o)


N'est-ce pas ? ;o)

Surtout en français quand on n'est pas très doué en anglais, mais si les
langues étrangères ne te font pas peur il est souvent bon de revenir à
la version originale, qui contient en général moins d'erreurs :
<http://fr.php.net/manual/en/>.

Il y a aussi <http://faqfclphp.free.fr/> qui peut souvent être utile.

Le contenu de la zone est bon, j'ai vérifier avec un echo !

Et si tu passes par une variable temporaire, ça marche ?


Euh, et bien non ...
Je cherche ailleurs !


Si jamais l'erreur venait de la requête SQL, sache que ces questions
peuvent être en charte dans <news:fr.comp.applications.sgbd>.

J'espère que tu vérifies quand même tes 110 zones avant de les passer
à la moulinette mysql...


Si toutes les zones ne sont pas obligatoires à la saisie, dois je les
tester quand même ?


Tu dois au moins vérifier qu'elles ne peuvent rien casser dans ta base
de données si elles sont présentes mais remplies de façon malicieuse.
Sache qu'un utilisateur malintentionné peut appeler ton script avec ce
qu'il veut dans les variables du type de $_POST, même si ce n'est pas
prévu dans ta page HTML.

Cordialement,
--
Olivier Miakinen


Avatar
Debellez
Re-bonjour,

Dans l'une des versions francophones les plus polies, c'est « Regarde
Ton Fantastique Manuel », tandis que la version originale, en anglais et
pas polie du tout, est « Read The Fucking Manual » !


C'est pas mal ! ;o)


Surtout en français quand on n'est pas très doué en anglais, mais si les
langues étrangères ne te font pas peur il est souvent bon de revenir à
la version originale, qui contient en général moins d'erreurs :
<http://fr.php.net/manual/en/>.

Il y a aussi <http://faqfclphp.free.fr/> qui peut souvent être utile.


Je favorise, merci.

Si toutes les zones ne sont pas obligatoires à la saisie, dois je les
tester quand même ?


Tu dois au moins vérifier qu'elles ne peuvent rien casser dans ta base
de données si elles sont présentes mais remplies de façon malicieuse.
Sache qu'un utilisateur malintentionné peut appeler ton script avec ce
qu'il veut dans les variables du type de $_POST, même si ce n'est pas
prévu dans ta page HTML.


Tout mon formulaire sera dans une zone à accès restreind. Ca limite pas mal
de chose, je pense. Mais c'est bon à savoir.


Bon, on a réussi à localiser le problème : J'avais des noms de zones dans
ma base qui exedaient 25 caractères. La requete INSERT INTO se crachait.


Voila .


Cordialement,
Merci bien.



Avatar
Florian Sinatra
*Debellez* @ 18/07/2006 13:55 :
Si toutes les zones ne sont pas obligatoires à la saisie, dois je les
tester quand même ?
Tu dois au moins vérifier qu'elles ne peuvent rien casser dans ta base

de données si elles sont présentes mais remplies de façon malicieuse.
Sache qu'un utilisateur malintentionné peut appeler ton script avec ce
qu'il veut dans les variables du type de $_POST, même si ce n'est pas
prévu dans ta page HTML.


Tout mon formulaire sera dans une zone à accès restreind. Ca limite pas mal
de chose, je pense. Mais c'est bon à savoir.


Je te suggère de prendre quelques heures pour bien lire et comprendre :
<http://saphirtech.com/securite_web_dynamique.pdf>