0

私は現在、認証スクリプトを使用した入門用 PHP クラスの宿題に取り組んでいます。$_SESSION が設定されているかどうかを確認するだけで済みますが、ファイルにコードを埋め込むと、ページは白のままです。

<?php
if (isset($_SESSION['loggedin']) {
echo "<span><a href='http://xxx/php/insert.php' target='_blank'>Add    Item</a></span>
<span><a href='http://xxx/php/update.php' target='_BLANK'>Update Menu</a></span>"; }
else {
echo "<span><a href='xxx/php/login.php' target='_blank'>Add   Item</a></span>";
}
?> 

コードを削除した後、それは完全に正常に動作します-もちろん、表示されるべき目的のdivはありません

4

4 に答える 4

1

それはあなたのセッションがまだ設定されていないことを意味します。session_start()あなたのページの上部にある機能を使用してください

于 2012-04-26T04:26:15.200 に答える
1

構文エラーがあります。ifステートメントの前後に括弧がありません。

開発中は、常にphpエラーログを監視する必要があります。何が悪いのかがはっきりとわからない場合は、強力なヒントが得られます。この場合、解析エラーと行番号が表示され、何が問題であるかは明らかでした。

于 2012-04-26T04:26:16.370 に答える
0

最初session_start()にページ上部を確認してください。それから

<?php
  if (isset($_SESSION['loggedin']) && !empty($_SESSION['loggedin'])) {
    echo "<span><a href='http://xxx/php/insert.php' target='_blank'>Add    Item</a></span>
     <span><a href='http://xxx/php/update.php' target='_BLANK'>Update Menu</a></span>"; }
  else {
        echo "<span><a href='xxx/php/login.php' target='_blank'>Add   Item</a></span>";
     }
   ?> 

ありがとう

于 2012-04-26T05:36:27.547 に答える
0

echo読みやすくするために、HTML を無償で使用するよりも、PHP にジャンプしたり、PHP からジャンプしたりする方がよい場合がよくあります。

<?php if (isset($_SESSION['loggedin']): ?>
    <span><a href='http://xxx/php/insert.php' target='_blank'>Add Item</a></span>
    <span><a href='http://xxx/php/update.php' target='_blank'>Update Menu</a></span>
<?php else: ?>
    <span><a href='xxx/php/login.php' target='_blank'>Add Item</a></span>
<?php endif; ?>

if():else:、およびの代替構文に注意してくださいendif;。これは構文エラーの回避に役立ち、ほとんどの IDE は混合コンテンツ自体を適切にサポートしています。さらに、マークアップ属性に二重引用符を使用することもできます。これは単なる文体ですが、一般的に好まれます。

session_start()セッション管理に関する限り、他の人が言及したように、各リクエストの開始近くのどこかで行う必要があります。

于 2012-04-26T04:36:52.107 に答える