PHP - скрытие информации от пользователя во время входа в систему - PullRequest
0 голосов
/ 21 февраля 2012

Я пытаюсь выучить php, и я на самом раннем этапе!

Я пытаюсь скрыть div, который содержит форму входа, когда пользователь вошел в систему, мне удалосьуспешно создать соединение с базой данных, форму входа в систему и т. д., чтобы позволить пользователю оставаться в системе и сеанс оставаться открытым, но не уверен, что следующим шагом будет скрытие.

Я знаю, что мне нужно утверждение if, но неконечно, куда идти!

Я не буду включать весь код, так как html огромен, но вот форму, которую я хочу скрыть:

    <form id="login" name="login" action="logincheck.php" method="post">
        User Name: 
        <input type="text" name="username"></input>
         Password: 
        <input type="password" name="password"></input>
        <input type="submit" name="submit" value="login"></input>
         <a href="javascript: void(0)" onclick="popup('register.html')" > (Register)</a>
        <br /><br /><br />
    </form>

не уверен, что еще вам нужно увидетьно вот php на странице:

<?php
if (isset($_GET['showerror']))
$errorcode = $_GET['showerror'];
else
$errorcode = 0;
?>

То есть перед тегами, затем перед формой, которую я имею:

<?php
if ($errorcode == 1)
{
echo "<h3>Your login has failed. Try again</h3>";
}
?>

Вам понадобится код проверки php входа в систему и база данных?php код подключения, чтобы помочь посоветовать?

Ответы [ 2 ]

4 голосов
/ 21 февраля 2012

Скажем, у вас есть переменная с именем $logged_in.Затем вы можете включить эту форму в зависимости от того, вошел ли пользователь в систему или нет.Использование специального синтаксиса для шаблонов :

<?php if (!$logged_in): ?>
  <form id="login" name="login" action="logincheck.php" method="post">
    User Name: 
    <input type="text" name="username"></input>
     Password: 
    <input type="password" name="password"></input>
    <input type="submit" name="submit" value="login"></input>
     <a href="javascript: void(0)" onclick="popup('register.html')" > (Register)</a>
    <br /><br /><br />
  </form>
<?php endif; ?>

Что касается вашего PHP-кода, я не уверен, что означает значение $_GET['showerror'], но мне кажется, чтовы каким-то образом выполняете аутентификацию в Javascript, а затем просто перенаправляете на свой PHP или что-то еще.Обратите внимание, что можно легко назвать ваш скрипт как logincheck.php?errorcode=0 и обмануть его, думая, что он только что вошел в систему правильно.

Вы должны выполнить аутентификацию внутри вашего PHP-кода.Если вход был успешным, просто создайте сеанс и отметьте его как аутентифицированный в переменной $_SESSION, тогда он будет постоянным при загрузке страницы.

1 голос
/ 21 февраля 2012

Помните, PHP в основном запускает ваш скрипт, а затем выводит любой результат.(Это немного сложнее, чем просто это, но это тема для другого дня).

Так что если вы заключите свой PHP в блок if, как показано ниже, он будет отображаться только при необходимости.

<?
if(!$loggedInVariable)//use whatever logic you want here, 
//the key is that this should return false if you're logged in
{
?>
<form id="login" name="login" action="logincheck.php" method="post">
    User Name: 
    <input type="text" name="username"></input>
     Password: 
    <input type="password" name="password"></input>
    <input type="submit" name="submit" value="login"></input>
     <a href="javascript: void(0)" onclick="popup('register.html')" > (Register)</a>
    <br /><br /><br />
</form>
<?php
}
?>
...