مشكل بسيط في بي اتش بي ارجو المساعدة

لدي هذا الكود 

اريد فقط ان يتحقق ايضا شرط ثاني هو البحث وتحقق ايضا من ip في نفس فوكشن array_search

يعني يجب ان يتحقق شرط الاول وثاني بعدها يطبع allowed

<?php

$parent_domain = $_SERVER['HTTP_REFERER'];

$domains = array(

    'domain1.com',

    'domain2.com',

    'domain3.com',

    );

$ipaddress = getenv("REMOTE_ADDR");

$ip = array(

    '78.58.25.4',

    '75.85.76.33',

    '57.7.47.58',

    );

if( array_search($parent_domain,$domains) ){ 

 echo "allowed";

}

?>


جرب هذا :

<?php

if ( isset($_SERVER['HTTP_REFERER']) ) {

    $referer = explode('.', parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST));
    
    $parent_domain = $referer[count($referer)-2].'.'.$referer[count($referer)-1];
    
    $domains = array(
        'domain1.com',
        'domain2.com',
        'domain3.com',
    );
    
    $ipaddress = getenv("REMOTE_ADDR");
    
    $ip = array(
        '78.58.25.4',
        '75.85.76.33',
        '57.7.47.58',
    );
    
    if( in_array($parent_domain, $domains) && in_array($ipaddress, $ip) ) {
    
     echo "allowed";
    
    }

}

?>
  • الـ HTTP_REFERER يعطي رابط الموقع بالكامل وليس الدومين فقط (مثل: https://www.google.com ) لذلك عدلت الكود لكي يُرجع الدومين.
  • قمت أيضا بتغيير الدالة array_search إلى الدالة in_array

نعم لاحظت ذالك اخي جزاك الله الف خير ويوفق في مسيرتك انشاء الله

إن شاء الله