Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2006, 17h17   #1
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
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.
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 18h44   #2
Membre Expert
 
Avatar de Adjanakis
 
Inscription : avril 2004
Messages : 734
Détails du profil
Informations personnelles :
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : avril 2004
Messages : 734
Points : 1 281
Points : 1 281
Je déplace ce sujet dans un forum plus aproprié.

Sinon, il faudrait chercher du coté de la fonction eror_reporting pour voir.
Adjanakis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 19h44   #3
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Montre un bout de code ?

Je pari que tu n'utilises pas isset() ?
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 22h40   #4
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
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 ???

:
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 23h48   #5
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
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.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 00h26   #6
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
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 ?
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 16h05   #7
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
alors c possible OK

mais une question
:

comment faire pour eviter les erreurs du type
Code :
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 ??
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 16h08   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
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.
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 16h18   #9
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
un exemple ::

Code :
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 :
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 ?
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 16h45   #10
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835

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 :
$_GET[prehopcodselected]
par
Code :
$_GET['prehopcodselected']
Et de tester la présence de l'index 'prehopcodselected' dans le tableau $_GET grâce à isset
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 16h53   #11
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
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 ??
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 17h06   #12
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
Avant de manipuler ta variable :
Citation:
<?php
if ( isset ( $ma_variable ) )
{
...
}
else
{
...
}
?>

Phpsyntaxcolor powered by decabodi
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 19h37   #13
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
ok ca a l'air de fonctionner

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

Code :
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.
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 19h45   #14
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
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 :
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 ...


__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 20h08   #15
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
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 ).

jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 20h12   #16
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
en fait j'arrive à enlever les notice mais mon programme ne fontionne plus... ...
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 20h17   #17
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
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
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 21h20   #18
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
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...
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 21h24   #19
Rédacteur

 
Inscription : septembre 2002
Messages : 1 591
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : septembre 2002
Messages : 1 591
Points : 3 108
Points : 3 108
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.
stephane eyskens est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 21h38   #20
Membre régulier
 
Avatar de jacquesh
 
Développeur informatique
Inscription : 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 : 82
Points : 82
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)
jacquesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h27.


 
 
 
 
Partenaires

Hébergement Web