0
if(!empty($_POST))
{
if(empty($_POST['username'])) {die("Please enter a username.");}
....

結果は空白のページです - 上記の警告が表示されます。
ページにフォームを保持したい。何かのようなもの:

if(empty($_POST['username']))?> <div id="info"><?php{echo "Please enter a username"};?></div> 

したがって、情報を書き込んで、この時点からコードの実行を停止してください。

4

3 に答える 3

3

実行を停止するには、次を使用できます。

die( ' <div id="info">Please enter a username</div> ');

ページの残りの部分をロードできるようにするには、次を使用できます。

$errors = array();
if(empty($_POST['username'])) { 
    $errors[] = 'Please enter your username'; 
}

その後、後でhtmlに追加できます

foreach($errors as $error){
    echo "<div class='error'>$error</div>;
}
于 2013-01-09T17:08:37.957 に答える
1

いくつかのフラグを設定し、同じページに戻る/リダイレクトします。同じページ (フォーム付きスクリプト) で、フラグ セットを確認し、メッセージを表示します。

于 2013-01-09T17:10:55.840 に答える
1

単一の検証エラーで「実行を停止」するのではなく、すべてのエラーを取得してユーザーに表示します。

<?php
if (!empty($_POST))
{
    // validate form
    $errors = array();

    if (empty($_POST['username']))
    {
        $errors['username'] = 'Please enter a username.';
    }

    if (empty($_POST['address']))
    {
        $errors['address'] = 'Please enter an address.';
    }

    if (empty($errors))
    {
        // save to database then redirect
    }
}

?>
<form>
    Username:<br />
    <input type="text" name="username" value="" /><br />
<?php if (!empty($errors['username'])): ?>
    <div class="error">
        <?php echo $errors['username'] ?>
    </div>
<?php endif ?>

    Address:<br />
    <input type="text" name="address" value="" /><br />
<?php if (!empty($errors['address'])): ?>
    <div class="error">
        <?php echo $errors['address'] ?>
    </div>
<?php endif ?>
</form>
于 2013-01-09T17:16:53.830 に答える