2016-08-10 7 views
0

Err Ich bin bei meinem Ende (ich nehme an) mit diesem Problem. Ich sehe nicht, was ich falsch mache, und alles, was da sein muss, ist da, aber das funktioniert immer noch nicht.PHP-Post-Daten werden nicht gesendet

Ich habe verschiedene Formen und PHP-Mail-Skripte verwendet, aber nichts scheint zu funktionieren. Die E-Mail wird gesendet, aber die Info ist immer leer. Siehe Screenshot zum Beispiel.

This is the screenshot link

Was mache ich falsch?

Hilfe. Hier

ist die Form Code:

<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php"> 
        <div class="row-fluid"> 
        <div class="span5"> 
         First Name: <input type="text" name="first_name"><br> 
Last Name: <input type="text" name="last_name"><br> 
Email: <input type="text" name="email"><br> 
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br> 
        </div> 
        <div class="span7"> 
         <button type="submit" class="btn btn-primary btn-large pull-right">Send Message</button> 
        </div> 

       </div> 


      </form> 

und hier ist die gesamte PHP-Datei (mailsenden.php):

<?php 
    header('Content-type: application/json'); 
    $status = array(
     'type'=>'success', 
     'message'=>'Email sent!' 
    ); 


    $name = @trim(stripslashes($_POST['first_name'])); 
    $lastname = @trim(stripslashes($_POST['last_name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $message = @trim(stripslashes($_POST['message'])); 

    $email_from = "Website Contact Form"; 
    $email_to = '//removed real email address'; 


$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $Email; 
$Body .= "\n"; 
$Body .= "Message: "; 
$Body .= $Message; 


    $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; 

    $success = mail($EmailTo, $Subject, $Body, "From: <$email_from>"); 

    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); 


    echo json_encode($status); 
    die; 

Die Web-Seite des Formulars mit dem aktuellen Code, den Sie Sehen Sie hier läuft ist: http://minha-consulting.com/contactus.html

Vielen Dank in Advanced.

+0

Edit: Scratch mein Kommentar, es war falsch so oder so. –

Antwort

0

Die erste Zeile von $ Body sollte ohne "."

$Body = "Name: "; 

Wenn Sie Variable mit Kleinbuchstaben definiert haben, können Sie sie nicht mit dem oberen Wert aufrufen.

$test != $Test 

Nur diese kopieren und Whit Code ersetzen:

$name = @trim(stripslashes($_POST['first_name'])); 
    $lastname = @trim(stripslashes($_POST['last_name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $message = @trim(stripslashes($_POST['message'])); 

$subject = 'Email Subject'; 
$headMail = "From: [email protected]\r\n"; 
$headMail .= "From: [email protected]\r\n"; 
$bodyMail = "Name: "; 
$bodyMail .= $name . ' ' . $lastname; 
$bodyMail .= "\n"; 
$bodyMail .= "Email: "; 
$bodyMail .= $email; 
$bodyMail .= "\n"; 
$bodyMail .= "Message: "; 
$bodyMail .= $message; 

mail($email, $subject, $bodyMail, $headMail); 
+0

Downvoter was ist das Problem mit der Antwort? Ich gab ihm fertigen Code – kuchar

0

Der Variablenname ist case-sensitive.

http://php.net/manual/en/language.variables.basics.php

$Message und $message sind nicht gleich. In ähnlicher Weise reparieren Sie andere Variablen.

+0

Lieber Downvoter, ein Grund wäre hier nützlich. Damit ich die Antwort beheben kann. – Jigar

+0

upvoted für die Verknüpfung von Handbuch – lje

1

Sie verwenden zwei Mal Variablennamen (Groß- und Kleinbuchstaben), und Sie senden Ihre E-Mail zweimal. Das ist ein bisschen chaotisch. Hier sind einige Probleme in Ihrem Code:

  • $Body nicht
  • definiert ist
  • $Email nicht definiert ist (Großbuchstaben)
  • $Message nicht definiert ist (Großbuchstaben)
  • Warum sind Sie mit strip? Bessere Verwendung Sanitize filters.
  • Reinigen Sie Ihren Code mit der richtigen Einzüge und einen PHP Coding Standard

Auf diese Weise Fehler werden viel einfacher zu finden.

+1

Gute Antwort. +1 – lje

+0

Vielen Dank, dass Sie sich die Zeit genommen haben, auf meine Frage zu antworten. Ich werde das versuchen und zurück zu dir kommen! – desupink

+0

Ihre Vorschläge haben überhaupt nicht funktioniert. ' 'Erfolg', \t \t 'message' => 'E-Mail gesendet!' \t); $ name = ($ _POST ['first_name']); $ lastname = ($ _POST ['last_name']); $ email = ($ _POST ['email']); $ message = ($ _POST ['Nachricht']); $ email_from = "Website-Kontaktformular"; $ email_to = '[email protected]'; $ body = "Name:". $ Name. "\ NEmail:". $ Email. "\ NMeldung:". $ Message; $ success = @mail ($ email_to, $ subject, $ body, 'Von: <'. $ Email_from. '>'); echo json_encode ($ status); die; ' – desupink

0

Verwenden Sie $ Nachricht anstelle von $ Nachricht, wie Sie Kleinbuchstaben 'm' oben definiert.

$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $Email; 
$Body .= "\n"; 
$Body .= "Message: "; 
$Body .= $Message; 
Verwandte Themen