2016-04-08 16 views
0

angemeldet ist, ich habe ein Bild Taste auf einer Seite, die von <a> Tags umgeben ist es auf eine andere Seite umgeleitet werden, wenn das Bild geklickt wird. Wie kann ich das ändern, damit es nur funktioniert, wenn sich ein Benutzer anmeldet?Wie ein Link Arbeit nur machen, wenn ein Benutzer in

Die Anmeldung funktioniert, da ich die Sitzung sehen kann, sobald der Benutzer in ist. Grundsätzlich möchte ich sagen, wenn ein Benutzer versucht, auf diese Schaltfläche ohne Anmeldung zu klicken, wird eine Warnung angezeigt, sie anzumelden.

Ganz oben auf der Seite habe ich diesen Code:

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

Ein Benutzer sollte nur auf diese Schaltfläche klicken, um zugelassen werden, wenn sie in (erstellt eine Sitzung) angemeldet hat:

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

Vielen Dank!

+1

ohne Code oder jede Anzeige in HTML oder CSS (oder Javascript) zu sehen, ob ein Benutzer angemeldet ist, in der wir Sie mit etwas nicht helfen kann. Bitte zeigen Sie uns den relevanten Teil Ihres Codes. – LarsW

+0

Apologies, Code wurde hinzugefügt ^^ –

+0

Vielen Dank für Ihre Reaktion. Leider kenne ich PHP nicht gut genug, um diese Frage ohne Javascript zu beantworten. – LarsW

Antwort

0

Sie können überprüfen, um zu sehen, ob es ein Session-Variable gesetzt ist oder nicht:

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

Alternativ können Sie einige Attribute in den div Echo oder auf der Seite, nachdem Sie überprüfen angemeldet wird, dann finden dass mit Javascript und dann e.preventDefault(); auf dem Bild, um die Verknüpfung zu töten.

0

Ein allgemeiner Ansatz wäre es, den Link Funktionalität abhängig, die Länge oder die Existenz der beschnittenen Sitzung variabel zu machen. Pseudo-Code:

<?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>' 
?> 

Ich bezweifle dies als php gerade aus diesem Block kopiert funktionieren würde, aber es ist ein Muster, das Sie in Coldfusion-ich bin unter der Annahme eines PHP-Server verwenden können Strings als Literale in Links interpretieren könnte.

Bearbeiten-I getestet, diesen Ansatz auf MAMP und es funktioniert. Die Sitzungsvariable wird hier der schwierige Teil sein.

Verwandte Themen