2016-04-08 1 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

Спасибо за вашу реакцию. К сожалению, я не знаю PHP достаточно хорошо, чтобы ответить на этот вопрос без Javascript. – LarsW

ответ

0

Вы можете проверить, есть ли сессия переменная набор или нет:

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

В качестве альтернативы, вы можете повторить некоторые атрибут в DIV или на странице после проверки на время входа в систему, а затем найти что с Javascript, а затем 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 скопирована прямо из этого блока, но это шаблон, который вы можете использовать в ColdFusion-я предполагая, сервер PHP может интерпретировать строки как литералы в ссылки.

Edit-I проверял этот подход на MAMP, и он работает. Переменная сессии будет сложной частью здесь.