-3

誰かが私がこの通知を受け取っている理由を理解するのを手伝ってくれませんか。ここのチュートリアルに従ってフォーム検証を作成しようとしましたが、取得しています

「注意:未定義のインデックス:53行目の... \ worksheet \ Registration\registerValidation.phpのlast_name」

    <?php

$errors = array();

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    //validation

    $testlName = $_POST['last_name'];       

    if(preg_match("([^A-Za-z0-9])", $testlName)){
        $errors['last_name'] = "Please enter a valid last name";
    }       

//more validation code


} 


function form_row_class($name){
        global $errors;
    return $errors[$name] ? "form_error_row" : "";
}

function error_for($name){
    global $errors;
    if($errors[$name]){  //this is line 53
        return "<div class='form_error'>".$errors[$name]. "</div>";
    }
}    

?>
<form  name="form1" method="post" action="registerValidation.php" >
<table class="form">
   <tr class="<?php echo form_row_class("last_name") ?>">
    <th><label for="last_name">Last Name</label></th>
    <td>
        <input name="last_name" id="last_name" type="text" size="15" maxlength="20" value="<?php if(isset($testlName)){echo htmlspecialchars($_POST['last_name']);}?>" />
        <?php if(isset($testlName)){echo error_for('last_name');}?>
    </td>
</tr>
           </table>


<p><input type="submit" name="submit" value="register"></p>

なぜ私がその通知を受け取っているのか、何か考えはありますか?私はphpを初めて使用するので、説明は非常に好評です、ありがとう!

〜Myy

4

2 に答える 2

4

おそらく次のようになります。

if(isset($errors[$name])) {

$errors[$name]現在、trueに等しいかどうかをテストしています。これにより、値が設定されていない場合に通知が生成されます。

多くの人が通知をオフにするため、チュートリアル開発者は気づかなかったようです。一般的ですが、推奨される方法ではありません。通知はエラーと見なす必要があります。

于 2013-03-02T18:16:25.530 に答える
0

試す:

if(!isset($last_name)) { echo "$last_name = ""; }

また;

if(empty($ last_name)){echo "$ last_name =" ";}

今定義されています。

于 2013-03-02T18:23:02.920 に答える