masquer les warnings (help!) - PHP - Programmation
Marsh Posté le 02-08-2002 à 17:22:43
rajoute un "@" devant tes fonctions.
exemple : @mysql_connect(...)
Marsh Posté le 02-08-2002 à 18:06:00
edit ton php.ini et reporte toi a la section :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
tu choisis le niveau de report
le mien comporte cette ligne :
error_reporting = E_ALL & ~(E_NOTICE | E_USER_NOTICE | E_WARNING | E_COMPILE_WARNING | E_CORE_WARNING | E_USER_WARNING) ; display all errors
et je n'ai que les erreur, pas les warnings
Marsh Posté le 02-08-2002 à 20:38:45
C grave pour ton application le fait que tu ne sache pas comment changer le report d'erreur. En effet, si tu ne sais pas, c'est que tu n'as pas programmé ton application en E_ALL puisque par défaut c'est en E_ALL & ~E_NOTICE.
Or il faut TOUJOURS programmer en E_ALL.
Une fois sur le Web tu mets alors le error_reporting sur 0.
Marsh Posté le 02-08-2002 à 20:57:18
Je l'ai dit pour tt le monde... Développez tjrs en E_ALL.
Marsh Posté le 02-08-2002 à 21:11:46
Sinon c'est mal programmé... Car il reste des erreurs. Des fois ça aide aussi pour aller + vite, si par exemple tu fais une faute dans le nom d'une variable tu t'en rendras compte immédiatement en E_ALL.
Marsh Posté le 02-08-2002 à 21:13:35
Ex l'autre jour j'avais une variable $newProject. A un moment j'ai fait :
Code :
|
Eh bien PHP ne m'a pas raté /--> Undefined variable $newPoject...
Sinon je ne me serais pas rendu compte de l'erreur aussi vite.
Marsh Posté le 03-08-2002 à 16:28:45
Snipe Foo a écrit a écrit : ouais mais moi j'ai plein de notice, c'est chiant... |
C parce que c'est mal programmé D.
C'est pas mission impossible... Je le fais et d'autre le font (Je@nb je crois aussi fait de la pub pour le E_ALL).
Marsh Posté le 04-08-2002 à 01:59:27
oué, E_ALL rulezzzz, c un puissant debuggeur et qd on est perfectionniste comme moi, c vraiment la classe.
Règle n°1 : E_ALL
Règle n°2 : register global sur off
Règle n°3 (si c hébergé sur un serveur où on peut changer le php.ini) : magic quote gpc off
Marsh Posté le 04-08-2002 à 12:54:03
voila pourquoi j'ai des notice (exemple) je fais un $lang=$_GET['lang']; mais il est possible que la page est été appelée sans l'extention ?lang=fr donc j'ai une notice qui me dit que $_GET['lang'] existe pas, logique. Y'a une technique pour éviter ça sans rajouter trop de code ?
Marsh Posté le 04-08-2002 à 12:54:54
comme g la flemme de chercher, c koi magic quote, c'est un truc qui met des quote ou t'as oublié ?
Marsh Posté le 04-08-2002 à 13:05:07
Snipe Foo a écrit a écrit : voila pourquoi j'ai des notice (exemple) je fais un $lang=$_GET['lang']; mais il est possible que la page est été appelée sans l'extention ?lang=fr donc j'ai une notice qui me dit que $_GET['lang'] existe pas, logique. Y'a une technique pour éviter ça sans rajouter trop de code ? |
tu teste si la variable existe :
Code :
|
Marsh Posté le 04-08-2002 à 13:09:23
ok c'est plus clean, mais ça ajoute du code, quelles sont les conséquences d'un notice ?
Marsh Posté le 04-08-2002 à 19:43:26
une faille dans ton code
sinon magic quote, regarde il i a 2 article sur phpinfo : une sur les magic quote et un sur les spécifications du nouvo php (php 4.1.0 normalement)
Marsh Posté le 04-08-2002 à 19:47:30
une faille dans mon code, c'est a dire ? Cette variable n'est pas du tout importante...
merci pour phpinfo
Marsh Posté le 04-08-2002 à 20:11:51
Snipe Foo a écrit a écrit : une faille dans mon code, c'est a dire ? Cette variable n'est pas du tout importante... merci pour phpinfo |
dans ce cas, c bon, mais évite d'en avoir trop.
Aussi, pk utilise tu $lang o lieu de $_GET['lang'] ?, ça te fait une affectation supplémentaire et d'autres je pense si tu le fait pour tout.
Enfin, c pas mon script, moi je suis trop perfectionniste
Marsh Posté le 04-08-2002 à 20:24:34
merci de ces conseils
a propos des magiques quotes, tu as fait ta propre methode pour les addslashes, ou tu force le magiquequote au debut du script ?
Marsh Posté le 04-08-2002 à 20:38:29
hébergeant sur mon serveur perso @home, g magicquote sur off donc je fait les addslashes qd besoin est
Marsh Posté le 16-08-2002 à 13:47:10
Toutes les variables à récupérer doivent être récupérées comme ça :
Code :
|
Marsh Posté le 16-08-2002 à 13:49:07
Je@nb a écrit a écrit : hébergeant sur mon serveur perso @home, g magicquote sur off donc je fait les addslashes qd besoin est |
Fais attention avec ça ... Moi je laisse l'auto-addslashes parce que quand je mets mes scripts sur un serveur qui les ajoute auto j'ai des pb.
Mais je fais tjrs un stripslashes() au début.
Marsh Posté le 02-08-2002 à 17:11:42
Salut à tous,
je cherche un moyen pour masquer les éventuels Warnings pour éviter d'afficher des infos qui ne regarde pas l'utilisateur.
exemple :
(Je travail en local avec easyphp)
J'affiche une page avec des requetes, pas de probléme la page s'affiche normalement.
Maintenant j'arréte easyphp pour simuler une panne de serveur.
J'actualise la page, et il m'affiche ces 2 Warnings :
Warning: Can't connect to MySQL server on 'localhost' (10061) in c:\arborescence\page.php on line 9
Warning: MySQL Connection Failed: Can't connect to MySQL server on 'localhost' (10061) in c:\arborescence\page.php on line 9
Can't connect to MySQL server on 'localhost' (10061)
Ici l'erreur vient de la connection a la base, je rajoute donc un test avec message d'erreur:
mysql_connect($hostname, $username, $password) or die("mon message d'erreur" );
En cas d'erreur, il m'affiche bien le message mais il laisse les 2 warnings (!) :
Warning: Can't connect to MySQL server on 'localhost' (10061) in c:\arborescence\page.php on line 9
Warning: MySQL Connection Failed: Can't connect to MySQL server on 'localhost' (10061) in c:\arborescence\page.php on line 9
mon message d'erreur
Je cherche donc un moyen pour empecher l'affichage de TOUS les messages en les remplaçant par mes propres messages d'erreurs.
Merci pour votre aide.
@+
Dead.metheny