2017-03-29 13 views
0

私のlocalhost上でphpに関するいくつかの問題が発生しています。私はブラウザからerr_too_many_redirectsエラーを受け取ります。php | ERR_TOO_MANY_REDIRECTS

ユーザーがWebサーバー上の別の場所から情報にアクセスしないようにするときに、このエラーが発生します。ここで

コードです:それはこれをやっている理由

<?php 
session_start(); 
if(isset($_SESSION['valid'])) { 
    $loggedIn = $_SESSION['name']; 
    if($loggedIn != basename(getcwd())) { 
     echo "You are in the wrong place."; 
     $url = '../../users/' . $loggedIn . '/index.php'; 
     header('Location: ' . $url); 
    } else { 
     echo "Hello"; 
    } 
} else { 
    $url = 'index.php'; 
    header('Location: ' . $url); 
} 
?> 

誰かが私に説明していただけますか?私は、プロセスの順序を並べ替えるなど、複数のことを試みました。

誰かお手伝いできますか?

+0

これはリダイレクトループがあることを意味します。このスクリプトは、何度も繰り返しリダイレクトされています。ある時点で、スクリプトはそれが最大リダイレクションポイントに達するので停止するだけで、コードはindex.phpに直接入りますか? – Nicolas

+0

このコードはどこにありますか?あなたのインデックスに?リダイレクトしようとしている場所のいずれかに、リダイレクトが再度あります。それを確認してください。 – Qirel

+0

ブラウザのデバッグツールで、実行されているリダイレクトは何ですか?通常、これはリダイレクトの「無限ループ」の結果であり、あるページが別のページにリダイレクトされ、そのページ自体が最初のページにリダイレクトされます。このコードだけではそのことを証明することはできません。 – David

答えて

-1

私の悪い、愚かな間違い。私はまっすぐに戻って、ユーザ

コードのINDEXページにそれらを再指示された

:私はif(isset($_SESSION['valid]'))はこちらelse文でURLを更新する必要がありました

<?php 
session_start(); 
if(isset($_SESSION['valid'])) { 
    $loggedIn = $_SESSION['name']; 
    if($loggedIn != basename(getcwd())) { 
     echo "You are in the wrong place."; 
     $url = '../../users/' . $loggedIn . '/index.php'; 
     header('Location: ' . $url); 
    } else { 
     echo "Hello"; 
    } 
} else { 
    $url = 'index.php'; 
    header('Location: ' . $url); 
} 
?> 

ここでは、次のとおりです。

$url = '../../index.php'; 
header('Location: ' . $url); 
+0

[OK]を押し続けると、あなたが間違った場所にいることを意味します。 ";"それを削除し、 '$ url = '../../users/'を変更しなければなりません。 $ loggedIn。 '/index.php'; '' $ url = '../../ index.php'; '?あなたの答えは不明で、詳細は不明です。これは将来の読者のためのものです。 –

+0

あなたが 'echo 'を保存した場合、あなたは間違った場所にいます。 $ url = '../../users/'。 $ loggedIn。 '/index.php';ヘッダー( '場所:'。$ url); 'それは**動作しません**、あなたはそれを知っていましたか?だから、あなたのコードにまだその部分が残っていますか? –

+0

このエコー "あなたは間違った場所にいる";あなたが削除しなければならないものです –

関連する問題