0

私はPHP開発者ではありません。これは、ホワイトリストに登録されたIPアドレスへのアクセスを制限するためにテーマによって提供されるスクリプトです。ホワイトリストに登録されたIPが存在する場合はWordPressをロードし(現在のように)、IPが配列に存在しない場合はCookieをチェックするように修正したいと考えています。Cookieが存在する場合(passedSecurityTT)はWordPressを表示し、最後に両方が存在しない場合は/login.phpにリダイレクトします。

    <?php
    $whitelist = array('111.222.333.444', '111.222.333.445');
    if (in_array($_SERVER['REMOTE_ADDR'], $whitelist)) {

    define('WP_USE_THEMES', true);

    /** Loads the WordPress Environment and Template */
    require('./wp-blog-header.php');
    } else {
        //Action for all other IP Addresses
        echo 'You are not authorized here.'; 
        echo "<br />IP Address: ".$_SERVER['REMOTE_ADDR'];
        exit;
    }

elseif (!isset($_COOKIE['passedSecurityTT'])) {

    define('WP_USE_THEMES', true);

    /** Loads the WordPress Environment and Template */
    require('./wp-blog-header.php');
    } else {
        //Action for all other IP Addresses
        echo 'You are not authorized here.'; 
        echo "<br />IP Address: ".$_SERVER['REMOTE_ADDR'];
        exit;
    }


else {
header('Location: /login.php');
}

しかし、16行目でエラーが発生しています:解析エラー:構文エラー、16行目の/home/public_html/index.phpに予期しないT_ELSEIFがあります

誰か助けてもらえますか?また、これが繰り返されるので、どういうわけかこれを関数でラップする必要があると考えています...

define('WP_USE_THEMES', true);

    /** Loads the WordPress Environment and Template */
    require('./wp-blog-header.php');
    } else {
        //Action for all other IP Addresses
        echo 'You are not authorized here.'; 
        echo "<br />IP Address: ".$_SERVER['REMOTE_ADDR'];
        exit;
    }
4

2 に答える 2

2
<?php
$whitelist = array('111.222.333.444', '111.222.333.445');
// check if remote address is in whitelist OR if cookie exists(this is not the best security practice! @FIXME
if (in_array($_SERVER['REMOTE_ADDR'], $whitelist) || isset($_COOKIE['passedSecurityTT'])) ) {

    define('WP_USE_THEMES', true);

    /** Loads the WordPress Environment and Template */
    require('./wp-blog-header.php');
} else {
    header('Location: /login.php');
}
于 2013-01-30T14:16:11.953 に答える
0

elseifの後にを付けることはできませんelse:

<?php
$whitelist = array('111.222.333.444', '111.222.333.445');
if (in_array($_SERVER['REMOTE_ADDR'], $whitelist)) {

    define('WP_USE_THEMES', true);

     /** Loads the WordPress Environment and Template */
    require('./wp-blog-header.php');
} else {
    //Action for all other IP Addresses
    echo 'You are not authorized here.'; 
    echo "<br />IP Address: ".$_SERVER['REMOTE_ADDR'];   
    header('Location: /login.php');
    exit;
}
于 2013-01-30T13:55:06.387 に答える