2016-07-12 9 views
1

Ich mache eine Kundendatenbank, wo ich die Möglichkeit hinzufügen möchte, um den Kunden eine feste Nachricht zu senden. Zuerst möchte ich die Daten an eine Bestätigungsseite senden, die auch zeigt, welche Daten in unserer Datenbank gespeichert sind und eine Bestätigung benötigen, um sie zu senden oder nicht. Nach dem Klicken auf "Senden" sollte die E-Mail gesendet werden.Senden von E-Mails mit SMTP mit PHP

Im Moment habe ich HTTP-Fehler 500 erhalten, wie ich auf die sendmail.php von E-mail.php

Leider scheint es, gehen Sie wie ich Variablen auf die E-Mail-Felder geben kippe? Ich bin mir ziemlich sicher, dass mein Wissen dafür zu begrenzt ist, aber ich wäre dankbar, wenn mir jemand einen Rat geben würde. Vielen Dank! :)

Hier ist die Kurzform Code (email.php):

<form method="POST" action="sendmail.php"> 
<input type="hidden" name="id" name="id" value="<?php print $id; ?>"> 
Are you sure to send a notification to <strong><?php print $cegnev; ?></strong>? 
<input type="hidden" name="cegnev" value="<?php print $cegnev; ?>"> <br> Hidden input contains: <?php print $cegnev; ?> 
<input type="hidden" name="email" value="<?php print $email; ?>"> <br> Hidden input contains: <?php print $email; ?> 
<input type="hidden" name="szamla_datum" value="<?php print $szamla_datum; ?>"> <br> Hidden input contains: <?php print $szamla_datum; ?> 
<input type="submit" name="elkuld"> 

Und das ist die sendmail.php:

<?php 
if(isset($_POST['elkuld'])) { 
    $cegnev   = $_POST['cegnev']; 
    $email   = $_POST['email']; 
    $szamla_datum = $_POST['szamla_datum']; 
} 

$mail = new EMail; 

//Enter your SMTP server (defaults to "127.0.0.1"): 
$mail->Server = "host";  

//Enter your FULL email address: 
$mail->Username = 'username';  

//Enter the password for your email address: 
$mail->Password = 'password'; 

//Enter the email address you wish to send FROM (Name is an optional friendly name): 
$mail->SetFrom("from email","from name"); 

//Enter the email address you wish to send TO (Name is an optional friendly name): 
$mail->AddTo $email;     // #### PROBLEM 

//You can add multiple recipients: 
// $mail->AddTo("[email protected]"); 

//Enter the Subject of your message: 
$mail->Subject = $cegnev;     // #### PROBLEM 

//Enter the content of your email message: 
$mail->Message = $szamla_datum;     // #### PROBLEM 

//Optional extras 
$mail->ContentType = "text/html"; // Defaults to "text/plain; charset=iso-8859-1" 
//$mail->Headers['X-SomeHeader'] = 'abcde'; // Set some extra headers if required 

echo $success = $mail->Send(); //Send the email. 
?> 
+1

'$ mail-> AddTo $ E-Mail ist die korrekte Variable E-Mail unter der Annahme,' ist ein Gleichheitszeichen fehlt oder vielleicht Klammern, wenn es ist eine Methode? – pmahomme

+0

Ein HTTP500 ist ein interner Serverfehler. Das bedeutet, dass Ihr Code falsch ist (oft Syntaxfehler), überprüfen Sie Ihre Serverprotokolle auf den Fehler. –

Antwort

1

Sie in der Regel einen 500-Fehler, wenn einige es Art von Syntaxfehler in Ihrem Code, in diesem Fall

Ihre Linie hier: $mail->AddTo $email;

Bedürfnisse sein,

$mail->AddTo = $email; oder $mail->AddTo($email); Ob eine Variable oder Funktion in der Klasse

+0

Ah, du hast vollkommen recht, das "=" hinzugefügt, aber immer noch nicht funktioniert. Jetzt habe ich keinen Fehler msg. :) Mmm ... ich teste mehr. Danken! :) –

+0

statt 'echo $ erfolg = $ mail-> Senden();' do 'if ($ mail-> Senden()) {echo 'Erfolg';} else {echo 'fehlgeschlagen';}' Dies wird geben Sie eine Ausgabe –

+0

Und ist auch Ihr Server tatsächlich Host, nicht localhost? –