0

$destinationフォームの検証を支援するために、変数の値を変更する必要があります。フォーム内にフィールドがない場合、ページが更新され、エラー メッセージが表示されます。フィールドがすべて入力されている場合、$destination値が変更され、メッセージ'it works!'が出力されます。ただし、すべてのフィールドに入力し、ユーザーがフォームを送信すると、メッセージ'it works!'は出力されますが、$destination値は に設定されたまま'this-page'です。ここで何が欠けていますか?

$destination = '';

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$email = $_POST['email'];

if (!$fname OR !$lname OR !$email OR !$phone) {
print 'Please fill in all of your contact information';
$destination = 'this-page';
}
else {
print 'It works!';
    $destination = 'results-page';
}
4

3 に答える 3

0

これが学術的であることを願っています。これにアプローチするためのより良い方法があります。しかし、ここで:

$destination = '';

$fname = isset($_POST['fname']) ? $_POST['fname'] : null ;
$lname = isset($_POST['lname']) ? $_POST['lname'] : null ;
$phone = isset($_POST['phone']) ? $_POST['phone'] : null ;
$email = isset($_POST['email']) ? $_POST['email'] : null ;

if (empty($fname) || empty($lname) || empty($phone) || empty($email)) {
    print 'Please fill in all of your contact information';
    $destination = 'this-page';
} else {
    print 'It works!';
    $destination = 'results-page';
}

いつか、いくつかのPHPフレームワークと、それらがフォーム検証をどのように処理するかを見てみましょう。例:http ://framework.zend.com/manual/1.12/en/zend.form.elements.html 洞察が得られるかもしれません。

于 2013-02-01T16:58:29.860 に答える
0

問題はここの検証部分とは関係がないようです。elseステートメントからの出力とifステートメントからの$destination変数の両方を取得していますか?それは論理的に不可能なはずです。コードに構文エラーなどがないことを確認しますか?それはあなたがあなたのプログラムに持っている正確なコードですか?

于 2013-02-01T17:38:16.080 に答える
0
$destination = '';

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$email = $_POST['email'];

if (!empty($fname) || !empty($lname) || !empty($email) OR !empty($phone)) {
    print 'Please fill in all of your contact information';
    $destination = 'this-page';
}
else {
    print 'It works!';
    $destination = 'results-page';
}
于 2013-02-01T16:57:58.980 に答える