2012-02-20 5 views
0

私はPHPを習得しようとしています。私は本当に早い段階にいます!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でしまうELSOわから:私が持っているフォームの前に、その後のタグの前にある

<?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コードは助けになる?

+0

なぜあなたは$ _GETを使用していますか? $ _GET変数は、フォームがいっぱいになった後、ページがロードされたときに1回だけ渡されます。 PHPの組み込み$ _SESSION変数を調べてみてください。 [PHP Manual](http://php.net/manual/en/reserved.variables.session.php) – PenguinCoder

答えて

4

$logged_inという変数があるとします。次に、ユーザーがログインしているかどうかによって、このフォームを有効にすることができます。使用special control syntax for templates

<?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または何か。ちょうどちょうどのようなあなたのスクリプトを呼び出すことができ、ちょうどちょうど正しくログインしたと考えることにそれをだますことができることに注意してください。

PHPコード内で認証を実行する必要があります。ログインが成功した場合はcreate a sessionと入力し、$_SESSION変数に認証済みとマークすると、ページが読み込まれても永続的になります。

+0

ありがとう、これは素晴らしいです、ただ今実装しようとしています... – Phil

1

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 
} 
?> 
関連する問題