jQuery / Ajax / PHP formu "çalışma"

2 Cevap php

Ben daralmış ettik bunlar: Benim ana veya teslim edilmesi gerekiyordu e-posta hesabı ile bir sorun değil. Form bir gün için mükemmel çalıştı ve sonra benim kod herhangi bir değişiklik olmadan, durdu. Herkes bu konuda herhangi bir giriş var mı?

Benim kod:

Plug-In: http://www.stephaniehenderson.com/jquery.form.js

Kafadaki:

<script type="text/javascript">
    $(document).ready(function () {
        var options = {
            target: '#alert'
        };
        $('#contactForm').ajaxForm(options);
    });

    $.fn.clearForm = function () {
        return this.each(function () {
            var type = this.type,
                tag = this.tagName.toLowerCase();
            if (tag == 'form')
                return $(':input', this).clearForm();
            if (type == 'text' || type == 'password' || tag == 'textarea')
                this.value = '';
            else if (type == 'checkbox' || type == 'radio')
                this.checked = false;
            else if (tag == 'select')
                this.selectedIndex = -1;
        });
    };
</script>    

Gerçek Formu:

<form id="contactForm" method="post" action="sendmail.php"> 

<fieldset> 

<p>Email Me</p> 
<div id="fieldset_container"> 
<label for="name">Your Name:</label> 
<input type="text" name="name" id="name" /><br /><br /> 

<label for="email">Email:</label> 
<input type="text" name="email" id="email" /><br /><br /> 

<span style="display:none;"> 
<label for="last">Honeypot:</label> 
<input type="text" name="last" value="" id="last" /> 
</span><br /><br /> 

<label for="message">Comments &amp; Inquiries:</label> 
<textarea name="message" id="message" cols="" rows=""></textarea><br/> 
</div> 
<div id="submit_button"> 
<input type="submit" name="submit" id="submit" value="Send It" /> 
</div> 
</fieldset> 

</form> 

<div class="message"><div id="alert"></div></div>

sendmail.php:

<?php
$sendto = 'mypersonal@emailaddress.com';

$subject = 'SH Contact Form';

$errormessage = 'There seems to have been a problem. May I suggest...';

$thanks = "Thanks for the email!";

 //        Message for the bot when it fills in in at all.
$honeypot = "You filled in the honeypot! If you're human, try again!";

//        Various messages displayed when the fields are empty.
$emptyname =  'Entering your name?';
$emptyemail = 'Entering your email address?';
$emptymessage = 'Entering a message?';

//       Various messages displayed when the fields are incorrectly formatted.
$alertname =  'Entering your name using only the standard alphabet?';
$alertemail = 'Entering your email in this format: <i>name@example.com</i>?';
$alertmessage = "Making sure you aren't using any parenthesis or other escaping     characters in the message? Most URLS are fine though!";


//Setting used variables.
$alert = '';
$pass = 0;

// Sanitizing the data, kind of done via error messages first. Twice is better!  ;-)
function clean_var($variable) {
    $variable = strip_tags(stripslashes(trim(rtrim($variable))));
    return $variable;
}

//The first if for honeypot.
if ( empty($_REQUEST['last']) ) {

    // A bunch of if's for all the fields and the error messages.
    if ( empty($_REQUEST['name']) ) {
        $pass = 1;
        $alert .= "<li>" . $emptyname . "</li>";
    } elseif ( ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] ) ) {
        $pass = 1;
        $alert .= "<li>" . $alertname . "</li>";
    }
    if ( empty($_REQUEST['email']) ) {
        $pass = 1;
        $alert .= "<li>" . $emptyemail . "</li>";
    } elseif ( !eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-  z]{2,3})$", $_REQUEST['email']) ) {
        $pass = 1;
        $alert .= "<li>" . $alertemail . "</li>";
    }
    if ( empty($_REQUEST['message']) ) {
        $pass = 1;
        $alert .= "<li>" . $emptymessage . "</li>";
    } elseif ( ereg( "[][{}()*+?\\^$|]", $_REQUEST['message'] ) ) {
        $pass = 1;
        $alert .= "<li>" . $alertmessage . "</li>";
    }

    //If the user err'd, print the error messages.
    if ( $pass==1 ) {

        //This first line is for ajax/javascript
        echo "<script>$(\".message\").hide(\"slow\").show(\"slow\"); </script>";
        echo "<b>" . $errormessage . "</b>";
        echo "<ul>";
        echo $alert;
        echo "</ul>";

    // If the user didn't err and there is in fact a message, time to email it.
    } elseif (isset($_REQUEST['message'])) {

        //Construct the message.
        $message = "From: " . clean_var($_REQUEST['name']) . "\n";
        $message .= "Email: " . clean_var($_REQUEST['email']) . "\n";
        $message .= "Message: \n" . clean_var($_REQUEST['message']);
        $header = 'From:'. clean_var($_REQUEST['email']);

        //Mail the message - for production
        mail($sendto, $subject, $message, $header, "-fstephanie@stephaniehenderson.com");
        //This is for javascript, 
        echo   "<script>$(\".message\").hide(\"slow\").show(\"slow\").animate({opacity: 1.0},        4000).hide(\"slow\"); $(':input').clearForm() </script>";
        echo $thanks;
        die();

        //Echo the email message - for development
        echo "<br/><br/>" . $message;

    }

//If honeypot is filled, trigger the message that bot likely won't see.
} else {
    echo "<script>$(\".message\").hide(\"slow\").show(\"slow\"); </script>";
    echo $honeypot;
}
?>

2 Cevap

php bazen mail () işlevi sadece doğru dönen ve hiçbir sorun yok emin olun ... gecikir.

Bu eski php kullanarak bir şeklidir. _POST Tüm _REQUEST değiştirin