2009-09-23 6 views
0

Je l'habitude d'utiliser la fonction ci-dessous pour un tableau ou adresses IP, mais maintenant je modifie le tableau IP de ceci:Comment puis-je utiliser ce tableau PHP?

$bannedIPs = array('127.0.0.0','72.189.218.85'); // Banned IPs array 

ipban($bannedIPs); 

function ipban($bannedIPs) { 
    if (in_array($_SERVER['REMOTE_ADDR'], $bannedIPs)) { 
     include ("site_banip.php"); 
     session_destroy(); 
     exit; 
    } 
} 

à ceci:

$config_item['bannedIPs'] = array('127.0.0.0','72.189.218.85'); // Banned IPs array 

ipban($config_item['bannedIPs']); 

function ipban($bannedIPs) { 
    if (in_array($_SERVER['REMOTE_ADDR'], $bannedIPs)) { 
     include ("site_banip.php"); 
     session_destroy(); 
     exit; 
    } 
} 

Maintenant, je ne peux pas le faire fonctionner bien ,

Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\webserver\htdocs\includes\functions.inc.php on line 948 

Est-il possible de faire ce que j'essaie de faire?

+1

Votre commentaire est mal orthographié. ;) – MitMaro

+0

oui, c'est le code que j'utilise ci-dessus – JasonDavis

+0

Le code fonctionne bien pour moi. – MitMaro

Répondre

1

changez le second argument en $ config_item ['bannedIPs'] et passez le $ config_item à la fonction.

+0

Êtes-vous * sûr * que vous passez dans un tableau dans votre * real * page? –

+0

Ahh Je viens de changer beaucoup de code pour utiliser différentes classes et ai rendu la page particulière avec ce tableau var n'est pas inclus, désolé et merci – JasonDavis

0

Utilisez quelque chose comme ceci, il sera très flexible dans le futur si vous avez besoin d'ajouter plus d'adresses IP.

$whitelist = array(
    // ".*.32.255.255", // Sample 
    // "63.76.53.255", // Sample 
    // "46..*..*..*", // Sample 
    // "46.32..*..*", // Sample 
    // "46.32.255..*", // Sample 
    // "46..**.255.255", // Sample 
); 

foreach($whitelist as $ip) 
{ 
    if (ereg($ip, $_SERVER['REMOTE_ADDR'])) 
    { 
     include ("site_banip.php"); 
     session_destroy(); 
     exit; 
    } 
} 
+0

Veuillez ne pas utiliser les fonctions ereg * (POSIX). Depuis PHP 5.3.0, cette extension est obsolète - utilisez plutôt les fonctions preg _ * - (PCRE). –