0

ユーザーがログインしているかどうかを確認するコードがあります。これは、userlog.php を呼び出すコードです。

    <?php
if (!isset($_SESSION['idx'])) { 
if (!isset($_COOKIE['idCookie'])) {
$logOptions = '<a href="register.php">Register Account</a>
&nbsp;&nbsp; | &nbsp;&nbsp; 
<a href="login.php">Log In</a>';
echo $logOptions;
}
}
else{//do something }

このコードをすべてのファイルにそのまま含めると、このコードは正常に機能します。ファイルを別のファイルに入れてすべてのファイルに含めると、正しく実行されません。else条件はすべてのファイルで異なるため、インクルードファイル自体でelseブロックを開始すると、このファイルでelseブロックを終了すると(index.phpを呼び出す)、エラーが発生します

syntax error, unexpected '}' in index.php on line 43

そして、elseをindex.phpファイルに入れ、ifブロックをuserlog.phpに入れると、次のエラーが発生します

syntax error, unexpected T_ELSE in index.php on line 9 

では、インクルードを使用してこのケースを管理するにはどうすればよいでしょうか。

4

2 に答える 2

1

適切な開き括弧と閉じ括弧がありません。与えたコードでは、else ブロックは編集されていません。コードのその部分をコメントアウトしました。この行を参照しています

else{//do something }

if-elseこのエラーを解決する適切なブロックとインクルードを作成します。

CtrlEclipse のような IDE では、 + Alt+を使用して一致する中かっこにすばやくジャンプしP て確認できます。

于 2012-09-18T15:34:37.673 に答える
1

inc.php

<?php
$loggedIn = FALSE;

if ( !isset($_SESSION['idx']) ) { 
    if ( !isset($_COOKIE['idCookie']) ) {
        $logOptions = '<a href="register.php">Register Account</a>
        &nbsp;&nbsp; | &nbsp;&nbsp; 
        <a href="login.php">Log In</a>';
        echo $logOptions;
    }
} else {
    $loggedIn = TRUE;
}
?>

index.php

<?php
require_once('inc.php');

if ( $loggedIn == TRUE ) {
    // do your stuff
}
?>
于 2012-09-18T15:36:57.120 に答える