0
function checkInputs()
{
    $fname = $_POST["fname"];
    $lname = $_POST['lname'];
    $email = $_POST['email'];
        ...
}
<form method = 'POST' action = 'index.php'>
    First Name:<input type = 'text' name = 'fname'>
    Last Name:<input type = 'text'name = 'lname'>
    Email:<input type = 'text' name = 'email'>
</form>

ボタンがクリックされるまで、関数は呼び出されません。

ページの読み込み後にphpタグを付けようとしたにもかかわらず、エラーが発生するにもかかわらず'Undefined index:... at Line

4

2 に答える 2

1

使用する前に、まず値が存在するかどうかを確認する必要があります

誰かがfnameフィールドを空白のままにしてフォームを送信した場合、それは$_POSTvarに設定されません。

$fname = isset($_POST["fname"]) ? $_POST["fname"] : NULL;

if ($fname == NULL) {
   echo "First name is required";
}
于 2012-05-14T02:52:03.637 に答える
0

そのコードを適切なメソッドチェックでラップしていない場合は、フォームが送信されたかどうかに関係なく、ページが読み込まれるたびに実行されます。

<?
function checkInputs() { blah blah blah }

checkInputs();
?>

<form ...>
...
</form>

フォームがロードされたときと送信されたときにcheckInput関数を実行します。フォームが最初にgetを介してロードされると、$ _ POSTは空になり(ページがGET呼び出しを介して要求されたため)、これらのエラーが発生します。

しかし、あなたが持っている場合:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    checkInputs();
}

その場合、チェック機能は、スクリプトがPOSTリクエストを介して呼び出された場合にのみ実行されます。

于 2012-05-14T02:45:38.930 に答える