masquer les warnings (help!)

masquer les warnings (help!) - PHP - Programmation

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

Reply

Marsh Posté le 02-08-2002 à 17:11:42   

Reply

Marsh Posté le 02-08-2002 à 17:22:43    

rajoute un "@" devant tes fonctions.
exemple : @mysql_connect(...)


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

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

Reply

Marsh Posté le 02-08-2002 à 20:38:45    

:ouch:
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.


Message édité par Dost67 le 02-08-2002 à 20:39:21
Reply

Marsh Posté le 02-08-2002 à 20:53:26    

Euh, c'est pour qui que tu dis ça ?

Reply

Marsh Posté le 02-08-2002 à 20:57:18    

Je l'ai dit pour tt le monde... Développez tjrs en E_ALL.

Reply

Marsh Posté le 02-08-2002 à 20:57:56    

quel est le risque sinon ?

Reply

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.

Reply

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 :
  1. echo $newPoject


Eh bien PHP ne m'a pas raté /--> Undefined variable $newPoject...
Sinon je ne me serais pas rendu compte de l'erreur aussi vite.


Message édité par Dost67 le 02-08-2002 à 21:13:41
Reply

Marsh Posté le 02-08-2002 à 21:22:47    

ouais mais moi j'ai plein de notice, c'est chiant...

Reply

Marsh Posté le 02-08-2002 à 21:22:47   

Reply

Marsh Posté le 02-08-2002 à 21:52:39    

Ok, c'était bien le @.
Merci.
 
@+
 
Dead.metheny

Reply

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: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).

Reply

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

Reply

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 ?

Reply

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é ?

Reply

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 :
  1. if (isset($_GET['lang'])
  2. {
  3. ...
  4. }

Reply

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 ?

Reply

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)

Reply

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 :jap:

Reply

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 :jap:  




 
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

Reply

Marsh Posté le 04-08-2002 à 20:24:34    

merci de ces conseils :jap:  
 
a propos des magiques quotes, tu as fait ta propre methode pour les addslashes, ou tu force le magiquequote au debut du script ?

Reply

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

Reply

Marsh Posté le 16-08-2002 à 13:47:10    

Toutes les variables à récupérer doivent être récupérées comme ça :

Code :
  1. empty($_GET['lang']) ? $lang = '' : $lang = trim(urldecode(stripslashes($_GET['lang'])));


Message édité par Dost67 le 16-08-2002 à 13:47:22
Reply

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.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed