0

私はまだphpに慣れていないので、まだ実験中です。変数の未定義のインデックスを取得しています:

$httpreferer = $_SERVER['HTTP_REFERER'];

ページのコード全体は次のとおりです。

<?php

ob_start();
session_start();
$current_file = $_SERVER['SCRIPT_NAME'];
$httpreferer = $_SERVER['HTTP_REFERER'];

function loggedin(){
    if(isset($_SESSION['user_id'])&&!empty($_SESSION['user_id'])){
        return true;
    }
    else
    {
        return false;
    }
}

?>

これが下手な質問である場合は申し訳ありません。私はまだ初心者です。

前もって感謝します。

4

2 に答える 2

2

ブラウザー (クライアント) は、好きな HTTP ヘッダーを自由に送信できます。あなたはそれらを信頼することはできません!

クライアントが以下を使用して提供したかどうかを確認しますisset()

if (isset($_SERVER['HTTP_REFERER'])) {
  // do something
}

これはデータ自体について何も伝えないことに注意してください。それは何でもかまいません。

于 2013-10-03T19:12:38.127 に答える
0

訪問者がリファラーを持っていない場合 (ページに直接アクセスしている、別の Web サイトのリンクをクリックしていない、HTTPS リンクから来ているなど、さまざまな理由で参照していない可能性があります)、この変数は存在しません。

できることはこれ

$httpreferer = empty($_SERVER['HTTP_REFERER']) ? '' : $_SERVER['HTTP_REFERER'];

これは三項演算子です。 http://php.net/manual/en/language.operators.comparison.php

于 2013-10-03T19:19:55.823 に答える