[Réglé] Comment détecter si ini_set() est dispo ou pas ?

Comment détecter si ini_set() est dispo ou pas ? [Réglé] - PHP - Programmation

Marsh Posté le 26-09-2003 à 02:30:17    

Encore un pb avec Free :roll:  
 
J'ai besoin que le paramètre 'arg_separator.output' soit sur '&' pour l'utilisation de variables de session.
Or chez Free, il est sur '&'.
 
J'ai donc placé des...

Code :
  1. ini_set('arg_separator.output', '&');


...avant mes...

Code :
  1. session_start();


Sauf que forcement...  :(  

Citation :

Warning: ini_set() has been disabled for security reasons in page_header.php on line 38


Donc comment savoir à l'avance si ini_set() est désactivé ou pas, pour éventuellement par un "if" ne pas l'employer ?
Où alors peut-on utiliser une astuce pour que s'il y a erreur elle ne soit pas affichée à la limite - car les conséquences sont minimes ?  :sarcastic:  
 
Merci d'avance :)


Message édité par -ET- le 26-09-2003 à 11:35:16
Reply

Marsh Posté le 26-09-2003 à 02:30:17   

Reply

Marsh Posté le 26-09-2003 à 08:25:29    

faire un truc du genre:
 

Code :
  1. if (!function_exists("exif_imagetype" )) die ("The exif module is not installed!" );


 
En fait je ne sais pas si PHP fait ou non une différence entre désactivé et non-disponible (l'exemple teste la disponibilité) :/


Message édité par drasche le 26-09-2003 à 08:26:40
Reply

Marsh Posté le 26-09-2003 à 11:34:25    

Merci du tuyau :)  
 
En fait effectivement ça ne correespond pas à ce dont j'ai besoin, mais grace à ton aide j'ai trouvé la solution sur le site php.net...

Citation :

function_exists --  Indique si une fonction est définie.
(...)
Notez qu'une fonction peut exister, même si elle est indisponible, à cause de la configuration ou des options de compilation.


Citation :

If you know a function exists but want to see if it is available you should execute it and compare it's return value to false.
 
eg: The getmxrr() function on a Windows platform exists but is not available (as of 4.2.0).  To check:
 
$result = @getmxrr("me@hotmail.com" );
if ( false === $result ) {
  # do unavailable function handling
}
 
The @ silences the unavailable function warning.


http://fr2.php.net/manual/fr/funct [...] exists.php
 
Merci encore ! :jap:

Reply

Marsh Posté le 26-09-2003 à 11:50:51    

d'après ma doc, getmxrr est une fonction réseau liée aux DNS :heink:

Reply

Marsh Posté le 26-09-2003 à 12:23:09    

Vi mais c'est pas ce qui est dit ici.
Traduction :
"Si vous savez qu'une fonction existe mais voulez voir si elle est active vous devez l'exécuter et comparer la valeur retournée à "false".
 
Exemple : la fonction getmxrr() existe sur une plateforme Windows mais n'est pas disponible. Pour le vérifier :  
 
$result = @getmxrr("me@hotmail.com" );  
if ( false === $result ) {  
 # do unavailable function handling  
}  
 
Le @ sert à ne pas faire afficher le message d'alerte d'indisponibilité de la fonction."
 
Donc ma réponse est bien dans ce commentaire.
getmxrr() n'est là qu'à titre d'exemple ;)

Reply

Marsh Posté le 26-09-2003 à 13:32:50    

oups j'ai mal lu [:ddr555]
 
désolé :sweat:

Reply

Marsh Posté le 30-09-2003 à 20:22:32    

Et si la fonction qui risque d'être indisponible retourne naturellement un booléen, tu fais comment? ;)

Reply

Marsh Posté le 30-09-2003 à 20:30:02    

Et ben tu le test avec le "if".
Comprends pas ce que tu veux dire :)

Reply

Marsh Posté le 03-10-2003 à 18:27:53    

ce que je veux dire, c'est que si la fonction retourne un booléen, le fait qu'on obtienne false ne veut pas forcément dire que la fonction est indisponible.:p

Reply

Marsh Posté le 06-10-2003 à 17:01:19    

Compris ;)
Sur le fond tu as raison.
En pratique, pour mon pb précis ça ne me pose pas de pb :)

Reply

Sujets relatifs:

Leave a Replay

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