Discussion:
Notices
(trop ancien pour répondre)
Pascale
2011-02-16 22:01:10 UTC
Permalink
Des « notices » sont apparues sur à peu près tous mes sites aujourd'hui
même. En attendant de comprendre ce que j'ai fait de travers, j'ai mis
php_flag display_errors Off dans mon .htaccess, mais j'aimerais savoir
pourquoi j'obtiens un message du style :

Notice: Undefined index: sujet in /home/lgv/www/... on line 33

Le programme en question est articulé ainsi :

$sujet=$_GET['sujet'];
echo '<p><a href="gal.php?sujet=010">Intitulé du sujet n°10</a></p>';
if ($sujet=='010')
{echo 'Contenu du sujet n°10';}
echo '<p><a href="gal.php?sujet=009">Intitulé du sujet n°9</a></p>';
if ($sujet=='009')
{echo 'Contenu du sujet n°9';}
etc.

J'ai essayé en ne mettant le $_GET qu'après chaque lien cliquable, mais le
résultat est le même.

Par défaut, j'affiche des titres cliquables, et si on clique sur un titre,
le contenu est affiché.

C'est mal, mon truc ?
--
Pascale
http://www.la-grille-verte.net
Olivier Miakinen
2011-02-17 00:36:59 UTC
Permalink
Bonjour,
Des « notices » sont apparues sur à peu près tous mes sites aujourd'hui
même. En attendant de comprendre ce que j'ai fait de travers, j'ai mis
php_flag display_errors Off dans mon .htaccess, mais j'aimerais savoir
Notice: Undefined index: sujet in /home/lgv/www/... on line 33
$sujet=$_GET['sujet'];
Tu ne sembles pas traiter le cas où $_GET['sujet'] n'est pas défini (ce
qui devrait correspondre au tout premier appel de la page).

Faire par exemple :
$sujet = isset($_GET['sujet']) ? $_GET['sujet'] : 'Aucun';
J'ai essayé en ne mettant le $_GET qu'après chaque lien cliquable, mais le
résultat est le même.
Ça... c'est sûr que faire un « echo » ne va pas remplir un élément de
tableau ! (-:

Cordialement,
--
Olivier Miakinen
Mickael Wolff
2011-02-17 13:43:56 UTC
Permalink
Des « notices » sont apparues sur à peu près tous mes sites aujourd'hui
même. En attendant de comprendre ce que j'ai fait de travers, j'ai mis
php_flag display_errors Off dans mon .htaccess, mais j'aimerais savoir
Notice: Undefined index: sujet in /home/lgv/www/... on line 33
Alors Olivier a répondu au problème qui t'intéresse. PHP avec les
versions est devenu un peu plus tatillon.

Ceci dit, je vais aussi faire mon tatillon : sur le serveur de
production, jamais, au grand jamais on affiche les erreurs générées par
PHP. Donc display_error devrait toujours être à Off.
Si tu veux monitorer l'état de ton application, il faut surveiller
les logs d'erreur, et ça c'est dépendant de ta configuration.

Par contre, sur ta machine de développement et de test, tu active
toutes les détections d'erreur et d'alerte, histoire de traquer les
bogues les plus retords.
Pascale
2011-02-17 18:49:09 UTC
Permalink
Post by Mickael Wolff
Alors Olivier a répondu au problème qui t'intéresse. PHP avec les
versions est devenu un peu plus tatillon.
Je pense que ces nouveaux avertissements sont dûs au fait que notre
hébergeur a installé sans rien dire : http://www.hardened-php.net/
J'ai vu un petit avertissement tout minuscule écrit dans PHPMyAdmin et
aussi dans le fichier info de PHP...
Post by Mickael Wolff
Ceci dit, je vais aussi faire mon tatillon : sur le serveur de
production, jamais, au grand jamais on affiche les erreurs générées par
PHP. Donc display_error devrait toujours être à Off.
Si tu veux monitorer l'état de ton application, il faut surveiller
les logs d'erreur, et ça c'est dépendant de ta configuration.
Par contre, sur ta machine de développement et de test, tu active
toutes les détections d'erreur et d'alerte, histoire de traquer les
bogues les plus retords.
Tu as parfaitement raison ! Quand j'écris un site, je mets display_error
sur On, et normalement, je devrais le mettre à Off une fois que c'est
fini... mais il m'arrive d'oublier de le faire, au point que c'est
quasiment de l'oubli systématique )-:
--
Pascale
http://www.la-grille-verte.net
Continuer la lecture sur narkive:
Loading...