IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] [php.ini] - E_ALL


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut [Sécurité] [php.ini] - E_ALL
    bonjour,

    je souhaiterai savoir comment peut on supprimer les 'NOTICE' proprement càd sans mettre E_ALL & ~E_NOTICE dans les php.ini

    Comment déclarer proprement les variables necessaires au bon fonctionnement de l'appli sans NOTICE afficher.

    Mon appli actuel me renvoi plus de trente page de NOTICE

    une solution ?? :

    merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Je déplace ce sujet dans un forum plus aproprié.

    Sinon, il faudrait chercher du coté de la fonction eror_reporting pour voir.
    Pensez au tag

  3. #3
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Montre un bout de code ?

    Je pari que tu n'utilises pas isset() ?
    Consultant idéaliste.

  4. #4
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    bien sur que je m'en sert mais c'est juste pour tester qu'une variable est affecter pas pour la déclarer.

    mais je me demande si on peut vraiment eviter les NOTICE ; en effet d'après la doc PHP il se peut que NOTICE indique un evenement normal dans la vie du script...c que l'on peut peut etre pas tous les enlever... c'est pas très clair tous ca ???

    :

  5. #5
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Je ne me permettrais jamais de transférer un script de mon serveur de développement vers le serveur de recettage avec des notices qui apparaissent à un moment de l'execution du script. Mon client ne le tolèrerait jamais... Et il aurait raison.

    Les notices ne sont pas là pour dire "ya un PB mais la vie continue", il faut en tenir compte et coder ou recoder en ce sens.
    Consultant idéaliste.

  6. #6
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    pareil, je n'ai jamais désactivé l'affichage des NOTICES, à toi à faire en sorte qu'elle n'aient pas besoin d'être affichées.

    pour rappel, une variable doit toujours être initialisée... c'est bien souvent ça non ?

  7. #7
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    alors c possible OK

    mais une question
    :

    comment faire pour eviter les erreurs du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Use of undefined constant xxx
    j'ai plus de 15 pages d'erreurs de ce type.

    il faut savoir que j'utilse des noms de variables dynamiques comment gérer cela proprement ??

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Et oui les avantages d'un langage deviennent des inconvénients si on y fait pas gaffe. Il te suffit de pré-initialisé tes variables. Donne un exemple de ton code pour voir.

  9. #9
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    un exemple ::

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     session_start();
     ob_start() ;
     
     define("DEBUG", "0"); // 1 Active sinon 0
     define("VERSION", "1.0");
     define("CONF","../../conf/") ;
     define("MODULE_XXXXXXXXX","./") ;
     
     if (DEBUG) echo "<br>Load DB.php" ;
     require_once 'DB.php';
     if (DEBUG) echo "<br>Load tnsnames.php" ;
     require_once(CONF."tnsnames.php") ;
     if (DEBUG) echo "<br>Load adminop.php" ;
     require_once(MODULE_XXXXXXXXX."adminop.php") ;
     if (DEBUG) echo "<br>Load miscfunctions.php" ;
     require_once(MODULE_XXXXXXXXX."miscfunctions.php") ; 
     if (DEBUG) echo "<br>Load allsql.php" ;
     require(MODULE_XXXXXXXXX."allsql.php") ;
     
    $_SESSION[hopcod] = $_GET[prehopcodselected] ;
     $_SESSION[hopcod] = $_SESSION[hopcod] ? $_SESSION[hopcod] : '00087' ;
    et g des fichiers de conf du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		//======= BRANCARDAGE 
    		$tns_branc_00087[dsn] = "oci8://OPS\$BASE1:USER@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(COMMUNITY=ABC)(PROTOCOL=TCP)(HOST=HPUX11)(PORT=1595)))(CONNECT_DATA=(SID=ABCDEF)))" ;
    		$tns_branc_00087[lbl] = "Base 1" ;
    c pour le statique ;
    faut que je met un 'var VARIABLE' avant chaque valeur ?
    la je code en PHP5 mais le serveur de prod et (pour le moment en php4)

    comment faire en 4 et en 5 pour eviter toutes ces erreurs ?

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut

    Je te conseilles vivement de coder developper sur la meme configuration que ton serveur de prod, sinon tu risque d'avoir de mauvaises surprises.

    Sinon, tu peux d'office remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_GET[prehopcodselected]
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_GET['prehopcodselected']
    Et de tester la présence de l'index 'prehopcodselected' dans le tableau $_GET grâce à isset

  11. #11
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    pour le test de la valeur avec isset() ok mais dans le cas où il renvoi false je fait quoi pour par avoir l'injure notice... un var ??

  12. #12
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Avant de manipuler ta variable :
    <?php
    if&#160;(&#160;isset&#160;(&#160;$ma_variable&#160;)&#160
    {
    ...
    }
    else
    {
    ...
    }
    ?>

    Phpsyntaxcolor powered by decabodi
    Consultant idéaliste.

  13. #13
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    ok ca a l'air de fonctionner

    par contre un blocage lorsque c dynamique... Voila un exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    	switch($_GET['dest']){
    		case "sbase":
    				$i=0 ;
    				while ($xml->database[$i]){
     
    					if (!isset($dbname)) $dbname 	= $xml->database[$i][name] ;
    					$dbalias 	= $xml->database[$i][alias] ;
     
    					$data .= <<<EOF
    									<span style="border: 1px solid #ffffee; display: block; color: #2b2b2b; background-color: transparent;" class="nameSpan" id="$dbname" onclick="loadData('GET','loaddata.php?dest=stable&selected=$dbname','stable',true);">
    										<div id="null" ><img src="./images/report.gif" />$dbalias</div>
    									</span>
    EOF;
    					$i++ ;
    				}
     
    		break ;
    ...
    j'ai les erreurs suivantes :

    Notice: Use of undefined constant name - assumed 'name' in loaddata.php on line 25

    Notice: Use of undefined constant alias - assumed 'alias' in loaddata.php on line 26

    merci pour l'aide.

  14. #14
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    c'est quand même clair là pourtant

    tu utilises dans tes tableaux dynamiques des noms sans quotes ou signe $ si c'est des variables, donc php les interprète comme des constantes...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    switch($_GET['dest']){
          case "sbase":
                $i=0 ;
                while ($xml->database[$i]){
     
                   if (!isset($dbname)) $dbname    = $xml->database[$i]['name'] ;
                   $dbalias    = $xml->database[$i]['alias'] ;
     
                   $data .= <<<EOF
                               <span style="border: 1px solid #ffffee; display: block; color: #2b2b2b; background-color: transparent;" class="nameSpan" id="$dbname" onclick="loadData('GET','loaddata.php?dest=stable&selected=$dbname','stable',true);">
                                  <div id="null" ><img src="./images/report.gif" />$dbalias</div>
                               </span>
    EOF;
                   $i++ ;
                }
     
          break ;
    ...
    tu vois que ça peut être utile un avertissement de type NOTICE ...



  15. #15
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    en effet ca peut être très utile

    ya un truc que tu m'a pas dis... comment eviter ce notice ?? (un simple isset() ne suffit pas ).


  16. #16
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    en fait j'arrive à enlever les notice mais mon programme ne fontionne plus... ...

  17. #17
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    c bon en fait tous les notices venais des guillements

    le manque de typage me fait vraiment bloquer sur des bétises... où est mon ADA95 chérie....


    merci bien

  18. #18
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    c'est bon, maintenant que tu en as compris l'intérêt, je peux te donner ce que tu me demandais

    il faut gérererror_reporting() voila...

  19. #19
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Citation Envoyé par ska_root
    c'est bon, maintenant que tu en as compris l'intérêt, je peux te donner ce que tu me demandais

    il faut gérererror_reporting() voila...
    Oui et en prod, il est conseillé de virer les notices. Ou éventuellement garder le error_reporting au maxium et mettre le display_errors à off. Au choix. Il est aussi possible d'attribuer un fichier dans lequel PHP doit logger ses erreurs et consulter ce fichier si un problème survenait en production.

  20. #20
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par stephane eyskens
    Il est aussi possible d'attribuer un fichier dans lequel PHP doit logger ses erreurs et consulter ce fichier si un problème survenait en production.
    on fait comment ca m'interresse... 8)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Utiliser plusieurs php.ini
    Par Wookai dans le forum Apache
    Réponses: 2
    Dernier message: 21/03/2008, 05h10
  2. [Sécurité] fichier php.ini
    Par iomega dans le forum Langage
    Réponses: 2
    Dernier message: 28/09/2005, 15h27
  3. Un PHP.ini par vhost ?
    Par Hikage dans le forum Apache
    Réponses: 2
    Dernier message: 22/05/2005, 20h28
  4. Install de php sur une mdk 9.1: pas de php.ini
    Par xjinh dans le forum Mandriva / Mageia
    Réponses: 12
    Dernier message: 01/09/2004, 12h07
  5. où se trouve le fichier php.ini ?
    Par teko dans le forum Apache
    Réponses: 5
    Dernier message: 28/07/2004, 12h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo