2011-07-03 6 views
0

誰かがこのコードを修正するのを手伝ってもらえますか?私が修正したいのは、フォームの値変数と提出の問題

ユーザーがユーザー名またはパスワードを入力しない場合は、「申し訳ありませんがアクセスできません」というメッセージが表示されずに、エラーテキスト(横に赤色のメッセージ)が表示されます。

また、ユーザーがアクセス権を取得した場合(またはそうでない場合)は、テキストフィールドと送信ボタンを外してください。

これは実際のフォームではないので、私がユーザー名とパスワードをどのように使用しているか心配してはいけません。もし可能ならば、私のコードの大部分は同じ?

ありがとうございます!

<?php 
    echo '<style type="text/css"> 
     .error 
     { 
      color: red; 
     } 
    </style>'; 

    $error = false; 

    if (isset($_POST['submitted'])) 
    { 

    if (empty($_POST['username']) || empty($_POST['password'])) 
    { 
    $error = TRUE; 
    } 

    if (!$error && $_POST['username']=='test' && $_POST['password']=='abc123') { 

    echo '<p>Correct. Thank you for entering.<p/>'; 
    } 

    else 
    { 
    echo '<p>Sorry, no access.</p> 
    '; 
    } 

    } 
    ?> 
    <form action="" method="post"> 
    Username: <input type="text" name="username" size="20" value="<?php 
    if (isset($_POST['submitted']) && !empty($_POST['username'])) 
    { 
     echo $_POST['username']; 
    } ?>" /> 
    <?php 
    if (isset($_POST['submitted']) && empty($_POST['username'])) 
    { 
     echo '<span class="error">Please enter a username.</span>'; 
    } 
    ?> 
    <br />Password: <input type="password" name="password" size="20" value="<?php 
    if (isset($_POST['submitted']) && !empty($_POST['password'])) 
    { 
     echo $_POST['password']; 
    } ?>" /> 
    <?php 
    if (isset($_POST['submitted']) && empty($_POST['password'])) 
    { 
     echo '<span class="error">Please enter a password.</span>'; 
    } 
    ?> 
    <br /><input type="submit" value="Log in" /> 
    <br /><input type="hidden" name="submitted" value="true" /> 
    </form> 

答えて

0

これを試してみてください:

<style type="text/css"> 
.error { 
color: red; 
} 
</style> 
<?php 

$submitted = isset($_POST['submitted']); 
$userName = isset($_POST['username']) ? $_POST['username'] : null; 
$password = isset($_POST['password']) ? $_POST['password'] : null; 

if($submitted) { 
    if (!$userName || !$password) { 
     echo '<p class="error">Please go back and fill the inputs.</p>'; 
    } elseif($userName == 'test' && $password == 'abc123') { 
     echo '<p>Correct. Thank you for entering.<p/>'; 
    } else { 
     echo '<p class="error">Sorry, no access.</p>'; 
    } 
} else { 
?> 
<form action="" method="post"> 
Username: <input type="text" name="username" size="20" value="<?php echo $userName; ?>" /> 
<br /> 
Password: <input type="password" name="password" size="20" value="" /> 
<br /><input type="submit" value="Log in" /> 
<br /><input type="hidden" name="submitted" value="true" /> 
</form> 
<?php } ?> 
+0

それがうまくいく間に(そして、ありがたいことに)、入力フィールドの隣に表示された個々のエラーメッセージが表示されますか?最終的に私が欲しいと思うことは、私にとっては一番難しいことです! LOL – Reki

+0

@Reki申し訳ありませんが、あなたの仕事です。これはプログラミングファームではなく、Q&Aサイトです。 –

+0

私の問題はqとqの 'q'だと思った!誰かが私のために何かを最初から書いてくれるよう求めているわけではありません...私はできる限り私の問題を解決しました。正直言って、正しい方向に押し込もうとしています... – Reki

0

は、フォーム上をonSubmitイベントを使用することを検討してください。

投稿を避けるため、ここでphpとjavascriptを組み合わせる必要があります。 onSubmitによって呼び出されるJscript関数を作成します。値が入力されていない場合はfalseを返します。送信ボタンを押して画面に直接印刷します。

だからこの取る:

$submitted = isset($_POST['submitted']); 
$userName = isset($_POST['username']) ? $_POST['username'] : null; 
$password = isset($_POST['password']) ? $_POST['password'] : null; 

if($submitted) 
{ 
    if (!$userName || !$password) { 
     echo '<p class="error">Please go back and fill the inputs.</p>'; 
    } 
} 

をしてから、フォーム上: <form action="" method="post" onSubmit="checkForm()">

その後、あなたはJavaScriptでフォームをチェックするつもりだ方法を見つけ出します。あなたは一緒に残りをまとめることができます。

関連する問題