floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007
-
31 mai 2005 à 10:54
floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007
-
1 juin 2005 à 15:03
Salut à tous,
J'ai un petit soucis qui m'interroge fortement....
Voilà, j'ai implémenté un moteur PHP en local sur EasyPHP qui marche très bien. Le problème, c'est quand je le met chez free ou amen. Mes fonctions tombent en rade.
J'ai trouvé le problème : les vérifications par isset($_POST['variable']) ne marchent pas. Il faut que je les remplace par des !empty($_POST['variable']).
Je voulait juste savoir si ca venait d'une configuration d'apache ou si c'était EasyPHP qui était vraiment NAZE !
Merci ed vos réponses.... j'ai rien trouvé sur Nexen ou ici.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 31 mai 2005 à 11:07
hello,
isset() et empty() ne verifient pas tout a fait les memes choses...
isset() verifie si la variable EXISTE. Un unset() fera renvoyer FALSE a
isset() evidemment. Idem si la variable est de "type" NULL.
empty() verifie si la variable peut-etre consideree comme vide. Exemples de php.net :
<var>"" (an empty string)</var>, ----
<var>0 (0 as an integer)</var>, ----
<var>"0" (0 as a string)</var>, ----
<tt>NULL</tt>, ----
<tt>FALSE</tt>, ----
<var>array() (an empty array)</var>, ----
<var>var $var; (a variable declared, but without a value in a class)</var>
tout ca fera renvoye TRUE a empty().
Bref...exemples (merci GRenard pour le lien, encore une fois, lol, de ce quizz horrible...) <?php
$var = false;
if (isset ($var))
echo 'set';
echo '
';
if (!isset ($var))
echo 'pas set';
echo '
';
if (empty($var))
echo 'vide';
echo '
';
if (!empty($var))
echo 'pas vide';
?>
affiche :
set
vide
Et voui...
<?php
$var = 0;
if (isset ($var))
echo 'set';
echo '
';
if (!isset ($var))
echo 'pas set';
echo '
';
if (empty($var))
echo 'vide';
echo '
';
if (!empty($var))
echo 'pas vide';
?>
idem : set, vide.
Plus interessant :
<?php
if (isset ($var))
echo 'set';
echo '
';
if (!isset ($var))
echo 'pas set';
echo '
';
if (empty($var))
echo 'vide';
echo '
';
if (!empty($var))
echo 'pas vide';
?>
pas set
vide
Et voui...
Alors utiliser !empty() en lieu et place de isset() est une tres
mauvaise idee...et a mon avis, il n'y a pas de probleme. Le probleme
vient plutot de la facon de verifier les variables. Maintenant,
pourquoi en local c'est ok et pas chez Amen...aucune idee.
floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007 31 mai 2005 à 11:23
C'est exactement ca le probleme... j'ai bien compris la difference entre isset et !empty.
Mon interogation est : pourquoi en local ca marche et pas sur l'hebergeur ! C'est super étrange...
Mais bon, dans mon cas, c'est pas très grave de remplacer, c'est juste un peu long et fastidieux.
Mais mon interogation perciste.... EasyPHP=?BIZAR.... HUM HUM... a creusé....
Si tu veux, c'est pour vérifier les champs renseignés dans des post et dans des get... J'ai l'impression que chez mon hebergeur, toutes les variables sont initialisees alors qu'en local non...
floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007 1 juin 2005 à 12:35
Petite remise en question...
Je suis en train de me demander si ca ne viendrait pas d'autre part...
J'essaye d'etre le plus clair possible :
- 1 page avec formulaire par POST et texte caché vide par défaut
- 1 page de traitement qui recupère les données (si case cochée, initialisation d'une variable avec pour valeur le champs caché)
Ces 2 variables portent le meme nom : $marque. Est-il possible que par la methode POST, on recupere la variable directement par son nom sans faire $var=$_POST['var'] ???
Ce qui fait qu'en fait $marque est initialisé depuis le formulaire dans la page précédente...