2015-10-21 2 views
1

Я новичок в использовании сайтов php, html и создания сайтов, и я доволен тем, как работают сеансы и т. Д. Я просто пытаюсь настроить login/logout на веб-сайт, используя сеансы, mysql и slim to предоставить некоторый фон.Концептуальные PHP и HTML с сеансами

Я смущен тем, как правильно использовать сеансы, если вам не разрешено запускать php на стороне клиента. Насколько я понимаю, что вы делаете, это когда вы делаете запрос api для входа в систему, если он был успешным, вы должны установить значение $_SESSION['userLogin'] для некоторого значения, чтобы показать, что пользователь вошел в систему. Затем в файле домашней страницы (index.php) вы будет иметь php-тестирование, если установлено $_SESSION['userLogin']. Если это так, тогда будет отображаться кнопка «Выход из системы». Если он не был установлен, будет отображаться кнопка «login». Я набрал то, о чем я говорю ниже. Это не работает, потому что, когда мой браузер загружает страницу, php закомментирован.

Может кто-нибудь объяснить это мне? Если вы не можете использовать php-клиент, как вы должны знать, установлен ли $ _SESSION ['userLogin'] и какой html загружен?

код:

<!DOCTYPE html> 
<html> 
<head> 
<div id="content_area"> 
    <div id="features"> 
     <table> 
      <tr> 
       <td><img class="feature-icon" src="../_images/_icons/marshall-to-hunters.png"/></td> 
       <td class="feature-text">Connect to a large base of bug hunters.</td> 
      </tr> 
      <tr> 
       <td><img class="feature-icon" src="../_images/_icons/get-paid.png"></td> 
       <td class="feature-text">Get paid for finding bugs.</td> 
      </tr> 
     </table> 
    </div> 
<?php 
if(!isset($_SESSION['userLogin']) 
    { 
     echo ' 
     <form id="login" name="loginForm" method="post"> 
     <input class="loginForm" type="submit" value="Log In" id="submitLogin"> 
     <input class="loginForm" type="password" name="password" placeholder="Password" id="passLogin"> 
     <input class="loginForm" type="text" name="username" placeholder="Username" id="usernameLogin"> 
    </form>'; 
    } 
    else 
    { 
     //Sometype of logout button 
    } 
    ?> 
</div> 
+0

Вы начинаете сеанс в верхней части страницы? – Saty

+0

Должен ли он работать с каждым файлом? – user2455869

+1

@ user2455869 yes ... он должен ... –

ответ

1

В коде вашей изречение $ _SESSION [ 'Userlogin'] установлено показать пользователю форму входа:

<?php 
if(isset($_SESSION['userLogin']) 
{ 
    echo ' 
    <form id="login" name="loginForm" method="post"> 
    <input class="loginForm" type="submit" value="Log In" id="submitLogin"> 
    <input class="loginForm" type="password" name="password" placeholder="Password" id="passLogin"> 
    <input class="loginForm" type="text" name="username" placeholder="Username" id="usernameLogin"> 
</form>'; 
} 
else 
{ 
    //Sometype of logout button 
} 
?> 

если $ _SESSION [ 'Userlogin '], это означает, что пользователь вошел в систему, поэтому, когда вы эхом отдаете форму, вам нужно эхом отменить кнопку выхода и убить сеанс.

Чтобы сохранить код, который вы имеете, вы можете использовать, если (! IsSet (.....

Кроме того, как уже упоминалось выше, в комментарии, вам необходимо включить session_start() на всех страницах, вы можете быть лучше создать один файл и включить его на всех страницах, где вам нужно использовать код сеанса.

+0

простой msitake Я действительно не сделал в своем коде, исправленный с помощью редактирования. все еще дал вам преимущество для вашего ответа – user2455869