Initialisation de variables en PHP
15 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Initialisation de variables en PHP
J ai besoin d initialiser une liste de variables en PHP, mais seulement une fois!
Car si elles ne sont pas initialisees j ai une erreur.
Donc en fait en debut de programme j ai mis
$_GET['page']=""; $_GET['idmenu']=""; $_GET['id']="";
mais si je le laisse comme ca, je n ai plus d erreurs mais mes variables sont toujours vide.
J ai besoin qu elles soient initialisees qu une fois.
Une solution pour ca
Car si elles ne sont pas initialisees j ai une erreur.
Donc en fait en debut de programme j ai mis
$_GET['page']=""; $_GET['idmenu']=""; $_GET['id']="";
mais si je le laisse comme ca, je n ai plus d erreurs mais mes variables sont toujours vide.
J ai besoin qu elles soient initialisees qu une fois.
Une solution pour ca
J'ai pas bien compris ce que tu voulais mais ca peut etre ceci :
if (!isset($_GET["xxxx"])) {
$_GET["xxxx"] = '';
}
Je te conseillerai plutot de faire :
if (!isset($_GET["xxxx"])) {
$xxxx = '';
} else {
$xxxx = $_GET["xxxx"];
}
Amicalement
Sebastien
if (!isset($_GET["xxxx"])) {
$_GET["xxxx"] = '';
}
Je te conseillerai plutot de faire :
if (!isset($_GET["xxxx"])) {
$xxxx = '';
} else {
$xxxx = $_GET["xxxx"];
}
Amicalement
Sebastien
Moi aussi je fais toujours ça avec toutes mes variables passées en GET ou en POST et justement je me demande si il y a pas une autre façon de faire parce que c'est lourd.
Petite astuce (ou pas) :
On peut reduire le truc avec l'opérateur ternaire
au lieu de :
if (!isset($_GET["xxxx"])) {
$xxxx = '';
} else {
$xxxx = $_GET["xxxx"];
}
On peut faire :
$xxxx = (isset($_GET["xxxx"])) ? $_GET["xxxx"] : "";
Petite astuce (ou pas) :
On peut reduire le truc avec l'opérateur ternaire
au lieu de :
if (!isset($_GET["xxxx"])) {
$xxxx = '';
} else {
$xxxx = $_GET["xxxx"];
}
On peut faire :
$xxxx = (isset($_GET["xxxx"])) ? $_GET["xxxx"] : "";
e-kiwi a écrit:soit tu desactive tes erreurs de type "notice" en modificant error_reporting, soit tu fais toujours if (isset(...)) qui reste le plus propre
ce n'est pas la bonne solution.
s'il y a un warning ou une erreur, c'est que le code est mal employé.
e-kiwi a écrit:c'est la solution de rapidité, car les "notices" d'infuent pas sur le bon fonctionnement du site. ça laisse le temps de tout recoder proprement en local si le site doit être mis en ligne
on est d'accord.
le fait de préciser que ce n'est qu'une solution temporaire est important.
lol
@sureau
pas d'accord, si global est a on tu es en flagrand délit de php injection de variable
@e-kiwi
désolé aussi mais si tu fais ça sur un site de grosse frequentation les logs apache risquent de grossir violament (bien sur tu pourrais aussi régler le systeme de logging)
rog
pas d'accord, si global est a on tu es en flagrand délit de php injection de variable
@e-kiwi
désolé aussi mais si tu fais ça sur un site de grosse frequentation les logs apache risquent de grossir violament (bien sur tu pourrais aussi régler le systeme de logging)
rog
- Code: Tout sélectionner
@sureau
pas d'accord, si global est a on tu es en flagrand délit de php injection de variable
Comment ça?
Il définit ses variables autorisées avant.
Je ne vois pas en quoi ça peut être dangereux.
register_global a off, celà va de soit
lol
content de voir que tu le prend bien,
dans un hebergement mutualisé tu n'as pas le controle de globals
pour la declaration :
$ListeVar = array('id','url', 'autre');
foreach($ListeVar as $val){
$_GET[$val] = (isset($_GET[$val])) ? $_GET[$val] : "";
}
http://site-vulnerable/page.php?ListeVar[inject]=variable_injectée
me semble plus que possible avec global a on
rog
dans un hebergement mutualisé tu n'as pas le controle de globals
pour la declaration :
$ListeVar = array('id','url', 'autre');
foreach($ListeVar as $val){
$_GET[$val] = (isset($_GET[$val])) ? $_GET[$val] : "";
}
http://site-vulnerable/page.php?ListeVar[inject]=variable_injectée
me semble plus que possible avec global a on
rog
- Code: Tout sélectionner
$ListeVar = array('id','url', 'autre');
foreach($ListeVar as $val){
$_GET[$val] = (isset($_GET[$val])) ? $_GET[$val] : "";
}
http://site-vulnerable/page.php?ListeVar[inject]=variable_injectée
Celà ne marcherait pas, car ListeVar est initalisée ( $ListeVar = array('id','url', 'autre'); ) donc meme si tu la passe par url, cette variable passée par url sera écrasée
Oui et non... Une notive d'une variable non initialisée c'est potentiellement un endroit où l'on peut injecter une valeur dans le script...e-kiwi a écrit:c'est la solution de rapidité, car les "notices" d'infuent pas sur le bon fonctionnement du site. ça laisse le temps de tout recoder proprement en local si le site doit être mis en ligne
En règle générale:
Serveur de développement:
error_reporting: E_ALL
Serveur prod:
error_reporting: E_ALL ~E_NOTICE
Mieux vaut développer convenablement qu'ignorer les erreurs...
@++
R@f
thierry8 a écrit:e-kiwi a écrit:soit tu desactive tes erreurs de type "notice" en modificant error_reporting, soit tu fais toujours if (isset(...)) qui reste le plus propre
ce n'est pas la bonne solution.
s'il y a un warning ou une erreur, c'est que le code est mal employé.
thierry8 a écrit:e-kiwi a écrit:c'est la solution de rapidité, car les "notices" d'infuent pas sur le bon fonctionnement du site. ça laisse le temps de tout recoder proprement en local si le site doit être mis en ligne
on est d'accord.
le fait de préciser que ce n'est qu'une solution temporaire est important.
15 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Mise à jour Php v4.0.X vers Php v4.2.X et Variables Globales
- Boucle PHP et variables
- Probleme de variables php
- variables dynamique en php
- [PHP] Variables de session
- Effacer des variables en php ?
- PHP, JavaScript + AJAX et variables
- Variables entre PHP et FLASH
- Variables Pré-définies PHP
- Problème variables php, URGENT
- Petit probleme de variables php
- [PHP] problème valeur de variables
- TTL des variables de session PHP
- [réglé]creer en PHP des variables
- 301 en php avec variables multiples
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités










le forum