Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2336 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  avec ou sans @

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

avec ou sans @

n°918714
pilou88
r.a.s.
Posté le 09-12-2004 à 12:35:55  profilanswer
 

bonjour,
je me pose depuis quelques temps une question, quelle est la difference par example entre mysql_connect(); et @mysql_connect(); ?
en fait ma question est : a quoi sert l'arobase que l'on peut trouver dans certains tutoriels/scripts ?
merci d'avence de votre reponse.


---------------
Pilouweb.info et Pilou Web Blog
mood
Publicité
Posté le 09-12-2004 à 12:35:55  profilanswer
 

n°918715
simogeo
j'ai jamais tué de chats, ...
Posté le 09-12-2004 à 12:37:00  profilanswer
 

suppression de l'affichage des warnings


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°918716
AlphaZone
Posté le 09-12-2004 à 12:45:43  profilanswer
 

Comme le dit simogeo, ca t'enlève les messages d'erreurs

n°918745
pilou88
r.a.s.
Posté le 09-12-2004 à 13:35:00  profilanswer
 

mais ca ne fait rien d'autre ?
faut il le mettre a chaque fois? sur quels lignes de codes faut il le mettre ?


---------------
Pilouweb.info et Pilou Web Blog
n°918747
simogeo
j'ai jamais tué de chats, ...
Posté le 09-12-2004 à 13:40:05  profilanswer
 

au contraire, il vaut mieux éviter de s'en servir!
 
Un script bien codé ne devrait pas généré de warning. Si un script génére des warnings, alors c'est au développeur de revoir son code.


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°918768
esox_ch
Posté le 09-12-2004 à 14:00:50  profilanswer
 

simogeo a écrit :

au contraire, il vaut mieux éviter de s'en servir!
 
Un script bien codé ne devrait pas généré de warning. Si un script génére des warnings, alors c'est au développeur de revoir son code.


 
Au contraire, l'enlever voudrais dire que si un hacker arrive a faire générer un plantage a mysql(surcharge ou autre) il pourra recuperer des info qu'il aurait mieux valu ne pas lui donner.
Personnellement j'utilise qqch du genre :
 

Code :
  1. @mysql_query or kill('Erreur MySQL',mysql_error());


 
La fonction kill etant composée d'une partie affichant le "Erreur MySQL", et une autre ecrivant l'erreur mysql dans un ficher accessible uniquement en ecriture, apres ceci, un die(); est lancé.
De la sorte, si qqch plante l'utilisateur n'a pas moyen de savoir quoi que ce soit, alors que moi je peux savoir pourquoi ca plante et corriger le coup

n°918775
Xav_
The only one...
Posté le 09-12-2004 à 14:09:51  profilanswer
 

+1 à vous 2
 
- en général, on évite de masquer le erreurs, car le mieux pour qu'elle n'arrive pas, c'est d'avoir un code nickel.
 
- il existe cependant des erreur dont on est pas vraiment responsable (bon exemple pour MySQL, ou alors lecture d'un fichier distant sur un serveur qui vient de se planter), dans ce cas on masque l'erreur à la vue du visiteur (ou hacker), et on fait une gestion propre de l'erreur.
 
Sur le site de mon asso, je récupère des infos sur le serveur d'un partenaire, mais si son site est indsiponible, gros warning --> j'utilise @ devant le fopen, et au cas ou le fichier n'est pas trouvé (je teste la longueur de la chaine récupéreé pour voir si elle vaut 0), et ben j'affiche "stats indisponibles..."
Pas de message d'erreur pour l'utilisateur, et une gestion propre de l'erreur derriere ;)
 
------
 
En résumé, vous avez raison tous les 2 (enfin pour moi), faire au maximum sans le @, mais il reste utile (voir indsipensable) parfois :D


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°918776
simogeo
j'ai jamais tué de chats, ...
Posté le 09-12-2004 à 14:11:04  profilanswer
 

esox_ch > ma gestion d'erreur s'opère dans la globalité.
 
en environnement de  dév :

Code :
  1. display_errors = on // php.ini ou via ini_set
  2. error_reporting(E_ALL);


 
en prod :

Code :
  1. display_errors = off // php.ini ou via ini_set


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°918808
esox_ch
Posté le 09-12-2004 à 14:43:32  profilanswer
 

Oui je vois bien simo mais meme en prod il peut y avoir des choses non planifiées, et c'est quand meme mieux d'avoir un petit message d'erreur te disant que qqch a planté plutot que rien non?

n°918819
ratibus
Posté le 09-12-2004 à 14:53:49  profilanswer
 

simogeo a écrit :

esox_ch > ma gestion d'erreur s'opère dans la globalité.
 
en environnement de  dév :

Code :
  1. display_errors = on // php.ini ou via ini_set
  2. error_reporting(E_ALL);


 
en prod :

Code :
  1. display_errors = off // php.ini ou via ini_set



+1

mood
Publicité
Posté le 09-12-2004 à 14:53:49  profilanswer
 

n°918822
ratibus
Posté le 09-12-2004 à 14:55:22  profilanswer
 

esox_ch a écrit :

Oui je vois bien simo mais meme en prod il peut y avoir des choses non planifiées, et c'est quand meme mieux d'avoir un petit message d'erreur te disant que qqch a planté plutot que rien non?

Pour ça il faut utiliser les fonctions de gestion d'erreurs intégrées à PHP (cf http://fr.php.net/manual/en/ref.errorfunc.php).
 
Si tu fais ta gestion d'erreurs proprement, tu n'a pas besoin du @.

n°918829
simogeo
j'ai jamais tué de chats, ...
Posté le 09-12-2004 à 15:02:47  profilanswer
 

ratibus a écrit :

Pour ça il faut utiliser les fonctions de gestion d'erreurs intégrées à PHP (cf http://fr.php.net/manual/en/ref.errorfunc.php).
 
Si tu fais ta gestion d'erreurs proprement, tu n'a pas besoin du @.


 
+1
 
esox_ch > Pour reprendre ton exemple avec les requêtes SQL. J'ai développé une classe dans laquelle mes méthodes effectuant les requêtes gèrent les erreurs si elles en rencontrent.
(via : http://fr2.php.net/manual/fr/function.error-log.php )


Message édité par simogeo le 09-12-2004 à 15:03:09

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°918830
esox_ch
Posté le 09-12-2004 à 15:02:55  profilanswer
 

En effet la config error_log couplée a un display_errors = off devrait pouvoir remplacer mon systeme ... Pas mal pas mal :)

n°918842
ratibus
Posté le 09-12-2004 à 15:10:17  profilanswer
 
n°918860
esox_ch
Posté le 09-12-2004 à 15:21:12  profilanswer
 

Merci beaucoup :) J'ai appris qqch :)

n°918884
ratibus
Posté le 09-12-2004 à 15:29:56  profilanswer
 

Avec plaisir :)
 
Peu de gens, je pense, connaissent ces fonctions (et c'est pas les seules fonctions méconnues).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  avec ou sans @

 

Sujets relatifs
Plus de sujets relatifs à : avec ou sans @


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)