Envoi données formulaire vers BDD ne fonctionne pas... - PHP - Programmation
Marsh Posté le 04-07-2006 à 16:12:48
loulipo a écrit : Or je me suis aperçu tout d'un coup que cela ne fonctionnait plus... |
Si t'as rien modifié dans ton script, alors cela vient de ton serveur.
Il est possible qu'ils soient passés en serveur "sécurisé" où les variables extèrieures à un script (comme venant d'un formulaire par exemple) ne sont plus accessible directement par leur nom.
Je m'explique
Avant, tu crééais un formulaire de ce style
Code :
|
Et dans le script php, tu récupérais directement la variable "$nom" venant du "name=nom" du formulaire.
Cette méthode a été considérée dangereuse car imagine que "toto.php" fasse ce genre de test
Code :
|
Tu peux aisément te rendre compte que c'est une méthode de contrôle bien foireuse mais tout le monde n'est pas forcément pro. Et rien n'empêche d'appeler maintenant "toto.php?ok=true" !!!
Donc il a été recommandé de verrouiller le flag qui autorise un script à recevoir des variables venant directement depuis l'extèrieur. Et il est possible que ton serveur soit passé à "off".
Pour les formulaires, les variables sont maintenant stockées dans un tableau associatif portant le nom de la méthode. Donc si tu veux récupérer une variable "nom" passée par un formulaire en méthode "post", tu fais:
$var=$_POST["nom"]
Si ta variable vient d'un formulaire en méthode "get" ou simplement d'un paramètre URL (style "toto.php?nom=machinTruc" ), tu fais:
var=$_GET["nom"]
Si ta variable doit arriver indifféremment via une méthode "post" ou "get", tu fais:
$var=$_REQUEST["nom"]
En rajoutant en fin de script un petit "phpinfo()", tu verras mieux s'il s'agit bien de cela. Si c'est le cas, toutes les variables dites "globales" auront disparues et remplacées par des tableaux (ex: $REMOTE_ADDR sera devenu $_SERVER["REMOTE_ADDR"]) etc...
Marsh Posté le 04-07-2006 à 17:04:18
Bon à savoir merci ! Je prends note. Je vais me plonger là dedans.
Le soucis c'est que je suis pas sûre de pas y avoir touché avant de m'en apercevoir ! Et ce qui me chiffonne c'est que j'ai un autre formulaire du même style qui lui fonctionne. Celui-là permet aux personnes de rentrer leurs coordonnées. Les données, comme pour l'autre arrivent sur la BDD puis sur le site...
Ca me dépasse...
Marsh Posté le 04-07-2006 à 17:12:11
Oulah en fait je crois que tu as complètement raison ! Les deux formulaires sont bien différents ! Et celui qui fonctionne utilise la méthode "post"... Je me mets là dedans demain matin ! Merci beaucoup !
Marsh Posté le 04-07-2006 à 18:14:04
loulipo a écrit : ...et celui qui fonctionne utilise la méthode "post"... |
Ce n'est pas la méthode utilisée par le formulaire qui compte, c'est la façon de récupérer les valeurs associées qux champs
Avec un formulaire en méthode "post", tu peux récupérer ta valeur par:
$var=$_POST["nom_du_champ"] ou bien $var=$_REQUEST["nom_du_champ"]
Avec un formulaire en méthode "get" (ou bien un script appelé avec des valeurs tapées dans l'URL), tu peux récupérer ta valeur par:
$var=$_GET["nom_du_champ"] ou bien $var=$_REQUEST["nom_du_champ"]
Marsh Posté le 05-07-2006 à 09:19:28
Ok. En tout cas je me suis renseignée auprès de notre hébergeur et le serveur est bien "sécurisé". Ils m'ont demandé de leur envoyer le script pour vérifier sa compatibilité avec la config... Merci beaucoup en tout cas ! Tes renseignements me permettent d'avancer !
Marsh Posté le 06-07-2006 à 18:52:13
loulipo a écrit : Ok. En tout cas je me suis renseignée auprès de notre hébergeur et le serveur est bien "sécurisé". Ils m'ont demandé de leur envoyer le script pour vérifier sa compatibilité avec la config... |
Ce n'était pas la peine. Il te suffisait de faire un petit formulaire tel que je l'ai écrit dans mon premier post associé à un petit script "toto.php()" qui fait juste des echo de "$nom", "$_POST["nom"]", "$_GET["nom"]" et "$_REQUEST["nom"]".
Tu verras bien quels sont les echo que tu récupères...
Marsh Posté le 04-07-2006 à 15:49:05
Bonjour,
Voilà mon problème : J'ai un formulaire qui permet aux utilisateurs de créer leur propre page sur notre site. En gros chacun a 10 pages qu'il peut alimenter où non par le biais d'un formulaire. Les données sont ensuite envoyées dans une base de données MySQL et les pages sont ainsi modifées automatiquement sur le site. Or je me suis aperçu tout d'un coup que cela ne fonctionnait plus... Je vous joins le code...peut-être allez vous pouvoir m'aider... Merci d'avance...