2016-04-08 5 views
0

画像をクリックすると別のページにリダイレクトされる<a>タグで囲まれたページに画像ボタンがあります。ユーザーがログインしたときにのみ動作するように変更するにはどうすればよいですか?ユーザーがログインしている場合にのみリンクを動作させる方法

ユーザーがいったんログインするとセッションが始まるので、ログインが機能します。基本的に、ユーザーがログインせずにこのボタンをクリックしようとすると、ログインするよう警告が表示されます。私はこのコードを持っているページの上部に

:彼らは(セッションを作成した)にログインした後

<?PHP echo "Hi " . $_SESSION['first_name']?> 

ユーザーはこのボタンをクリックして許可する必要があります。

   <div class="image_button"> 
       <a href="shop.php"><img src="graphics/shop.png" alt="Shop"/></a> 
      </div> 

ありがとう!

+1

HTMLまたはCSS(またはJavascript)のコードやインジケータがなくても、ユーザーがログインしているかどうかはわかりませんが、何も手伝ってくれません。コードの関連部分を表示してください。 – LarsW

+0

申し訳ありません、コードが追加されました^^ –

+0

ありがとうございました。残念ながら、私はJavascriptなしでこの質問に答えるのに十分なPHPを知らない。 – LarsW

答えて

0

あなたはセッション変数のセットがあるかどうかを確認することができます:あなたはdivの中か、ログインしているかどうかを確認した後、ページ上のいくつかの属性をエコーすることができ、また

if (isset($_SESSION['first_name'])) { 
    // echo out a clickable image 
} 
else { 
    // echo non-clickable 
} 

、そして見つけます画像にはe.preventDefault();とリンクしています。

0

一般化されたアプローチは、トリムされたセッション変数の長さまたは存在にリンクの機能性を条件付けることです。擬似コード:

<?php 
$linkstring="#"; 
if $_SESSION['first_name'] != "" { 
    $linkstring='shop.php'; 
    } 

print '<div class="image_button"><a href="'.$linkstring.'"><img src="graphics/shop.png" alt="Shop"/></a></div>' 
?> 

私はこれがまっすぐにこのブロックからコピーされたPHPとして働くことはないだろうが、それはあなたがPHPサーバーがリンクでリテラルとして文字列を解釈したと仮定するとColdFusionの - 私はで使用できるパターンです。

編集 - 私はこのアプローチをMAMPでテストし、動作します。ここではセッション変数が難しい部分になります。

関連する問題