2012-02-13 8 views
0

私のサイトにかなりの基本的なPHP検証コードがあり、かなりの時間働いています。私はPHPの専門家ではない(私は確信しています):)しかし、このコードは今まで私のニーズにうまくいきました...最近、このコードが動作しなくなったことがわかりました。 。どんな助けもありがとう。サーバー上で何か変わったと思ったので、私はホスト会社とチャットをしました。彼らは何も変わっておらず、コードエラーであることを私に保証しました。PHPフォームの検証コードが正常に動作するのに使用されていましたが、動作が停止しました。なぜ私はわかりません

ここでは、コードの基本的な部分である:

<?php // Handle the form submission 

    // VALIDATE Forms Required Fileds  
    //Check for name.  
    if (strlen($_POST['name']) > 0){ 
     $name = $name; 
    } else { 
     $name = NULL; 
    } 

    //Check email was entered 
    if (strlen($_POST['email'])=='') { 
     $email = NULL; 
    } elseif(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['email'])) { 
     $email = "invalid"; 
    } else { 
     $email = $email; 
    } 
    // END VALIDATION 

    // If all is ok then handle form 
    if ((isset($_POST['Submit']) || isset($_POST['Submit_x'])) && ($name && $email && $email != "invalid")) 
    {  
     // Capture information and format for email 
     $subject="Side Nav Form"; // Subject of Email 

     $body = "Contact Us:\n\n";  
     $body .="Name..............: " ."$name\n"; 
     $body .="Email.............: " ."$email\n"; 
     $body .="Phone.............: " ."$phone\n\n"; 
     $body .="Reason for inquiry: " ."$inquiryReason1, $inquiryReason2, $inquiryReason3\n"; 
     $body .="Current Website...: " ."$current_site\n\n"; 
     $body .="Comments/Questions: " ."$addtlComments\n"; 

     //Email form results 
     mail("[email protected]", $subject, $body, "From:" .$email); 

     // Display thank you Message if form submitted successfully. 
     echo '<h3>Thank you!</h3><p>We received your information and will get back to you as soon as possible.</p>'; 

    } else {  

     // If Validating form: Show validation errors. 
     if ((isset($_POST['Submit']) || isset($_POST['Submit_x'])) && (!$name || !$email || $email == "invalid")) { 
     echo '<p class="error">'; 
      if (!$name) { 
        echo "*Please enter your name.<br />"; 
        } 
      if (!$email) { 
        echo "*Please enter your email address.<br />"; 
        } 
      if ($email == "invalid") { 
        echo "*Please enter a valid email address. ([email protected])"; 
        } 
     echo '</p>'; 
     } 
    // Display the form if user has not submitted successfully or at all. 
?> 
<fieldset><label for="name">*Name:</label> <input type="text" name="name" id="name" value="<?php if (isset($_POST['name'])) echo $_POST['name']; ?>" /></fieldset> 
<fieldset><label for="email">*Email:</label> <input type="text" name="email" id="email" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /></fieldset> 

... rest of form fields... 

<input name="Submit" type="submit" value="Submit" class="submit" /> 
</form> 
<?php  
    } // End of Form Handler 
?> 
+2

「停止した作業と私にはわからない」とどちらもわからない。どのようなエラーメッセージが表示されますか? –

+0

どのようなエラーが表示されますか? –

+2

暗闇の中で撮影:サーバーのPHPバージョンが5.3。*に変更され、E_STRICTエラーが全面的に飛んでいますか? – CBusBus

答えて

1

eregi()は廃止されます。代わりにpreg_match()を使用してください。また、filter_var(email, FILTER_VALIDATE_EMAIL)を使用してメールの妥当性を確認することもできます。

関連する問題