LA NOUVELLE FACON D'UTILISER DES VALEURS DANS LES FORMULAIRES - LES VARIABLES GL

Signaler
Messages postés
629
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
9 octobre 2006
-
Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/13058-la-nouvelle-facon-d-utiliser-des-valeurs-dans-les-formulaires-les-variables-globals-sont-maintenant-a-off

Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013

Non il n'y a pas de formulaire avant, on démarre directement le fichier install: c'est pour cette raison que je pensais que _GET ou _POST servait à récupérer les variables d'un formulaire alors que la, c'est le démarrage d'un script.
Là j'ai écris:
$install = 1;
et je n'ai plus de message pour $install mais pour $pass_admin.
Messages postés
271
Date d'inscription
samedi 29 novembre 2003
Statut
Membre
Dernière intervention
11 juillet 2007

Ben, je sais pas trop à koi correspond ton code, mais la variable $install est une condition : si elle est définit, si il y a quelque chose dedans, donc ici si tu as passer un champs "install" dans ton formulaire, il executera le code :

$install_completed = true;
if(!($pass_admin) || !($login_admin) || !($pass_admin_confirm))
{
$fields_required_failed = true;
$install_completed = false;
}

if(strcmp($pass_admin,$pass_admin_confirm))
{
$fields_pass_failed = true;
$install_completed = false;
}
else
{
....
Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013

Je suis vraiment nulle, comment est-ce que je peut trouver à quoi correspond $install dans mon exemple?
<?
include("fonctions.php");
$install=$_POST['install'];
if($install)
{
$install_completed = true;
if(!($pass_admin) || !($login_admin) || !($pass_admin_confirm))
{
$fields_required_failed = true;
$install_completed = false;
}
if(strcmp($pass_admin,$pass_admin_confirm))
{
$fields_pass_failed = true;
$install_completed = false;
}
else
{
Messages postés
271
Date d'inscription
samedi 29 novembre 2003
Statut
Membre
Dernière intervention
11 juillet 2007

Oui, mais justement, le moteur php te dit : La variable $install n'est pas définit.
Donc à toi de faire en sorte de définir la variable $install avant la condition : if($install).
En utlisant _GET, _POST ou tout autre.

Note : Ton script s'excutera en entier quand même, l'erreur s'affiche juste pour information, tu peut modifier ca dans le fichier php.ini (error_reporting).
Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013

Mais je pensais que _GET ou _POST servais à récupérer les variables d'un formulaire alors que la, c'est le démarrage d'un script.
Messages postés
271
Date d'inscription
samedi 29 novembre 2003
Statut
Membre
Dernière intervention
11 juillet 2007

Oui, biensur la variable $install n'est pas défini, a toi de rajouter :

$install=$_GET['nom de la variable'];
$install=$_POST['nom de la variable'];


Tu peut aussi rajouter un @ devant ta condition si tu ne veut pas voir l'erreur.
Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013

Bonjour, j'ai un script qui commence comme ça:
<?
include("fonctions.php");
if($install)

Au lancement j'ai un message d'erreur, Notice: Undefined variable...
Je n'arrive pas à utiliser vos méthodes, pouvez-vous m'expliquer comment faire.
Merci d'avance.
Messages postés
328
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
8 mars 2007

Merci,
tu m'apportes beaucoup d'aide!
pour mon nouveau site internet, j'en ai besoins(pour la sécuité.)
j'aurais besoins d'aide alors prend en notre ceci si tu a msn messenger:
coolsalex666@hotmail.com
ajoute moi a tes contacts si tu a msn messenger.
merci!
Messages postés
271
Date d'inscription
samedi 29 novembre 2003
Statut
Membre
Dernière intervention
11 juillet 2007

Bonjour,
J'utilise la fonction $variable = $_GET['variable']; pour recuperer une variable dans l'url, elle marche super, mais voia, quand il n'y a pas de variable de specifier dans l'url de la page, php me retourne une erreur qui est tout a fait normale donc, puisqu'il ne peut pas charger la variable.

Notice: Undefined variable: indice in d:\index.php on line 1

Et j'aimerais savoir comment ne plus afficher ce message.
Messages postés
109
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
26 octobre 2007

il y a aussi un truc dont on m'a parlé qui est fait pour récupéré une variable d'ou qu'elle vienne par exemple par post ou par get.
il s'agit de $_REQUEST
ça peut s'avérer utile.
Messages postés
9
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
9 août 2004

oui, mais dans ce cas là, la sécurité qu'apporte registers_global est annulé : à l'origine, cette fonction évite de passer n'importe quel nom de variable en paramètres
Messages postés
1
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
6 janvier 2003

Bonjour,
il existe solution bien plus simple et générique :
Utiliser la fonction extract() qui reprend chaque clé d'un tableau comme nom de variable et affecte la valeur associée (cf la doc officielle)
Exemple:
if(!empty($_POST)){ //ou $_GET, $_SERVER, ...
extract($_POST);
}
qui va transformer le tableau des variables de formulaire en variables distinctes ($_POST['truc'] en $truc)

Une autre version (maison) :

foreach($_POST as $k=> $v){
$$k=$v;
}
qui crée une variable ayant pour nom la valeur de la clé et lui affecte la valeur associée dans le tableau de départ, cela donne le même résultat que le code précédent.
Il suffit ensuite de faire un include dans chaque page (par exemple).

Ciao.
Messages postés
110
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 septembre 2004

eh...je vois pas de différence entre la première méthode et la deuxième parce que moi la mienne je la marque une seul fois au debut du script et ça marche.
Messages postés
629
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
9 octobre 2006

hé grand maître, ça serait bien de donner aussi une solution pour aider ceux ki vont modifier leurs sources
alors pour corriger les sources, ne vous prenez pas la tête à modifier de partout.
Dans chaque page, recencez les variables utilisée qui peuvent provenir d'un cookie, des paramètres (get) de la page, ou d'un formulaire (post).
Supposons que votre page utilise la variable $debut ki est transmise dans l'url, au lieu de remplacer tous les $debut par $_GET["debut"];
mettez ceci en haut de la page :
$debut = $_GET["debut"];
bon ça m'a permis de faire la mise à jour d'un site entier (10 pages) en 10 minutes.

wala, j'espère que ça vous aidera