Quantcast
Channel: Webby Expert » forms
Viewing all articles
Browse latest Browse all 10

Post error report by pressing a button jQuery

$
0
0

Small problem here, I need to place a button on my 404 page to ask people to submit an error.

The problem is that nothing is actually happens, I mean no mail is received and no errors are displayed, so I am confused.

My report is very basic, it collects all data of what my user did before getting 404

$site  = "mySite.com";
$email = "donotreply@mySite.com";

$http_host    = $_SERVER['HTTP_HOST'];
$server_name  = $_SERVER['SERVER_NAME'];
$remote_ip    = $_SERVER['REMOTE_ADDR'];
$request_uri  = $_SERVER['REQUEST_URI'];
$cookie       = $_SERVER["HTTP_COOKIE"];
$http_ref     = $_SERVER['HTTP_REFERER'];
$user_agent   = $_SERVER['HTTP_USER_AGENT'];
$error_date   = date("D M j Y g:i:s a T");

$subject = "404 Alert";

$headers  = "Content-Type: text/plain"."n";
$headers .= "From: ".$site." <".$email.">"."n";

$message  = "404 Error Report for ".$site."n";
$message .= "Date: ".$error_date."n";
$message .= "Requested URL: http://".$http_host.$request_uri."n";
$message .= "Cookie: ".$cookie."n";
$message .= "Referrer: ".$http_ref."n";
$message .= "User Agent: ".$user_agent."n";
$message .= "IP Address: ".$remote_ip."n";
$message .= "Whois: http://ws.arin.net/cgi-bin/whois.pl?queryinput=".$remote_ip;

this is my form, all fields are hidden that are placed in the same file along with php code above

<form name="form" method="POST" id="report-form">
<div class="form">
<input type="hidden" name="message" value="$message">
<div class="done">
<p><strong>Thank you!</strong></p>
</div>
<div class="error">
<p><strong>Error!</strong> Sorry, something went wrong, please try again.</p>
</div>
<input type="hidden" name="visitor" value="">
<input type="hidden" name="submitted" value="submitted">
<input type="submit" name="submit" value="Submit" class="formSubmit" />
</div>
</form>
<script type="text/javascript" src="js/report_validation.js"></script>

here is my jQuery validation script, which I am trying to use, which is in the separate file named report_validation.js in js folder

$(document).ready ( function() {

    $('.formSubmit').click(function() {        

        // Store values in variables
        var form = $(this).closest('form');
        var message = form.find('input[name=message]');
        var submitted = form.find('input[name=submitted]');
        var visitor = form.find('input[name=visitor]');

        // Organize data
        var data = 'message=' + message.val() + '&submitted=' + submitted.val() + '&visitor=' + visitor.val();

        var request = $.ajax({
            type: "POST",
            url: "includes/report_form_mail.php",
            data: data,
            cache: false,
            success: function (html) {
                if (html == "true") {
                    form.find('.done').fadeIn(500).delay(4000).fadeOut(500);                    
                }
            },
            error: function(jqXHR, textStatus, error) {

                alert("Form Error: " + error);
            }
        });
        return false;
    });
});

here is my mailing script, which is also placed in the separate file and named report_form_mail.php in my incudes folder

// Check if form was submitted
if ($_POST['submitted'] && $_POST['visitor'] == '') {

    // If valid, store values in variables
    $site  = "mySite.com";
    $email = "donotreply@mySite.com";

    $mes = stripslashes($_POST['message']);

    $subject = "404 Alert";
    $headers  = "Content-Type: text/plain"."n";
    $headers .= "From: ".$site." <".$email.">"."n";    
    $message = "Message: $mes";

    // Send email
    $sent = mail($email, $subject, $message, $headers);

    if($sent) {
        echo json_encode(true);
    } else {
    echo "Error: Mail could not be send.";
    exit();
    }
} else {
    echo "Error: There was a problem with submitting the form";
    exit();
}

Please help me to figure it all out


Viewing all articles
Browse latest Browse all 10

Trending Articles