Page 1 sur 1

Fonction -> éxécution

Posté : 25 août 2009, 15:43
par Dr@ke
Bonjour,
J'ai une petite question:

Par exemple dans ma fonction detect_proxy() :
function detect_proxy() {
$p_ip = array($_SERVER["HTTP_X_FORWARDED_FOR"], $_SERVER["HTTP_X_FORWARDED"], $_SERVER["HTTP_VIA"], $_SERVER["HTTP_CLIENT_IP"]);
$p1_ip = $autre1;
$p2_ip = $autre2;
$c_ip = $_SERVER['REMOTE_ADDR'];
$proxy = ''; 

 if (empty($p1_ip) || empty($p2_ip)) {
     $proxy = 'Oui';
 }
 while ((list(, $value) = each($p_ip))) {
    if(!empty($value)){
          if($value != $c_ip){
             $proxy = $value;
             break; // un break ici pour que $p_ip ne soit pas ré-écrasé par une valeur égale à l'ip
            }
            else {
             $proxy = 'Oui';
             }
     }
 }
 return $proxy;
}
$resultat = detect_proxy();
if (!empty($resultat)) { // Si $proxy a une valeur
echo '<p><span class="soul">Adresse Ip:</span> <span class="moyen-g">' . $cl_ip . '</span></p>
<span class="soul">Proxy possible:</span> <span class="moyen-g">' . htmlentities(utf8_decode($resultat)) . '</span>';
}
else { //Sinon
echo '<p><span class="soul">Adresse Ip:</span> <span class="moyen-g">' . $cl_ip . '</span></p>';
}
Une fois que $resultat = detect_proxy();
Ensuite if (!empty($resultat)) et htmlentities(utf8_decode($resultat)) vont ré-exécuter la fonction deux fois de plus ou la valeur de $resultat est déjà définit?
Si la fonction est ré-exécutée à chaque fois, comment faire pour l'éviter?

Merci par avance

Re: Fonction -> éxécution

Posté : 25 août 2009, 15:53
par Calimero
Une fois que $resultat = detect_proxy();
Ensuite if (!empty($resultat)) et htmlentities(utf8_decode($resultat)) vont ré-exécuter la fonctions deux fois de plus ou la valeur de $resultat est déjà définit?
Si la fonction est ré-exécutée à chaque fois, comment faire pour l'éviter?

Merci par avance
Tout comme ça se lit (et comme tu le dis toi-même) ta fonction n'est éxécutée qu'une seule fois, quand tu le demandes explicitement.

Re: Fonction -> éxécution

Posté : 25 août 2009, 15:57
par Dr@ke
Oufff ok merci.
Oui c'était le plus logique, mais je voulais être certain avant de mettre à jour ma page de cette façon.

Encore Merci, et c'est cool -> résolut