Seite 1 von 1

Kontaktformular PHP

Verfasst: 30.06.2010, 16:15
von ProfiSchnell
Hallo Ihr Profis,

ich habe ein Problem ich habe ein PHP Kontaktormular welches auf einem Server (Linux) normal läuft, nun möchte ich es auf unseren Windowsserver 2003 64 bit verwenden. PHP habe ich installiert nun sagt er mir beim benutzen folgende fehler aus:

Warning: fread(): supplied argument is not a valid stream resource in C:\xxx on line 251

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xxx on line 268

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xxx 269

Ich habe im sendmail_from die E-Mailadresse eingegeben.

Es klappt leider trotzdem nicht.

Ich würde mich sehr auf eine positive Nachricht freuen.

anbei das komplette Script:


__________________________

<?php
echo '<head>
<title>KONTAKTFORMULAR</title>

</head>';
//Fehlerbehandlung
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$_POST[Mail])){$fehler=1;
echo'<center><font class=text>Die von Ihnen angegebene Mailadresse ist ung&uuml;ltig.</font><br>';}

if($_POST[Nachname]==''){$fehler=1;
echo'<center><font class=text>Sie haben keinen Nachnamen eingegeben.</font><br></center>';}

if($_POST[Telefon]==''){$fehler=1;
echo'<center><font class=text>Sie haben keinen Telefon eingegeben.</font><br></center>';}
/*
if($Ausgangssprache==''){$fehler=1;
echo'<center><font class=text>Sie haben keine Ausgangssprache eingegeben.</font><br></center>';}


if($Zielsprache==''){$fehler=1;
echo'<center><font class=text>Sie haben keine Zielsprache eingegeben.</font><br></center>';}

if($Liefertermin==''){$fehler=1;
echo'<center><font class=text>Sie haben keine Liefertermin eingegeben.</font><br></center>';}
*/
if($fehler==1){echo '<br><a class=link href=javascript:history.back()>Zurück</a>';}

// Erstelle Nachricht
$Nachricht = "$_POST[FormularName] aus dem Formular der Webseite:\r
******************************************* \r
Filiale: $_POST[Filiale] \r
******************************************* \r
Stammdaten des Kunden \r
Anrede: $_POST[Anrede] \r
Name : $_POST[Vorname] $_POST[Nachname] \r
Firma: $_POST[Firma] \r
$_POST[Strasse] $Hausnummer \r
$_POST[PLZ] $_POST[Ort] \r
Telefon: $_POST[Telefon] \r
Telefax: $_POST[Fax] \r
E-Mail: $_POST[Mail] \r
******************************************* \r
$_POST[FormularName]: \r
Fachbereich: $_POST[Fachbereich] \r
Fachkenntnis: $_POST[Fachkenntnis] \r
Ausgangssprache: $_POST[Ausgangssprache] \r
Zielsprache: $_POST[Zielsprache] \r
Liefertermin: $_POST[Liefertermin] gewünschte Uhrzeit: $_POST[Uhrzeit] \r
Dolmetschort: $_POST[DolOrt] \r
******************************************* \r
Firmenunterricht: \r
Firma, Ort: $_POST[FirmenOrt] \r
Datum: $_POST[Datum] \r
Anz. Teilnehmer: $_POST[Teilnehmerzahl] \r
Dauer: $_POST[Dauer] \r
Sprache: $_POST[Sprache] \r
******************************************* \r
Weitere Informationen des Kunden (Beschreibung / Kommentar:) \r
$_POST[Beschreibung] \r
******************************************* \r
\r
+++ Ende der Daten +++ \r ";



// Hier die eMails �berpr�fen
if($_POST[Filiale]=='Bochum'){$Zielmail = '5@web.de'; }
if($_POST[Filiale]=='Hamburg'){$Zielmail = '6@web.de';}
if($_POST[Filiale]=='Kiel'){$Zielmail = '7@web.de';}
if($_POST[Filiale]=='Bremen'){$Zielmail = '8@web.de'; }
if($_POST[Filiale]=='Frankfurt'){$Zielmail = '9@web.de';}
if($_POST[Filiale]=='Madrid'){$Zielmail = "4@web.de'';}
if($_POST[Filiale]=='Muenchen'){$Zielmail = '3@web.de'';}
if($_POST[Filiale]=='Wien'){$Zielmail = '2@web.de'';}
if($_POST[Filiale]=='Duesseldorf'){$Zielmail = '1@web.de';}




//var_dump($_POST);
if($fehler!=1){

//$Zielmail = "4@web.de";

//-- AB JETZT --
$empfaenger = $Zielmail; // Empfänger E-Mail Adresse
$betreff = $_POST[FormularName]." aus dem Internet"; // Betreff

$dateiname = $_FILES['datei']['tmp_name']; // Dateiname
$dateiname_mail = $_FILES['datei']['name'];

$id = md5(uniqid(time()));
$dateiinhalt = fread(fopen($dateiname, "r"), filesize($dateiname));

// Absender Name und E-Mail Adresse
$kopf = "From: Anfrageformular <".$_POST[Nachname].">\n";
$kopf .= "MIME-Version: 1.0\n";
$kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n";
$kopf .= "This is a multi-part message in MIME format\n";
$kopf .= "--$id\n";
$kopf .= "Content-Type: text/plain\n";
$kopf .= "Content-Transfer-Encoding: 8bit\n\n";
$kopf .= $Nachricht; // Inhalt der E-Mail (Body)
$kopf .= "\n--$id";
// Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org
$kopf .= "\nContent-Type: ".$_FILES['datei']['type']."; name=$dateiname_mail\n";
$kopf .= "Content-Transfer-Encoding: base64\n";
$kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n";
$kopf .= chunk_split(base64_encode($dateiinhalt));
$kopf .= "\n--$id--";
mail($empfaenger, $betreff, "", $kopf); // E-Mail versenden
mail("anfrage@web.de", $betreff, "", $kopf); // E-Mail versenden

//mail($Zielmail, $_POST[FormularName]." aus dem Internet", $Nachricht ,"From: Anfrageformular <$_POST[Nachname]>");
//-- AB JETZT --

echo'<body>';

echo'<br><br><center><font class=ueber1>Vielen Dank für Ihre Anfrage, wir werden Ihre Anfrage so schnell wie möglich bearbeiten. </br></br> Unternehmen gmbh</font></br></br><center><a class=link href=javascript:history.go(-2)>Zurück</a>';
}
?>

Verfasst:
von

Verfasst: 30.06.2010, 16:35
von net(t)worker

contactform

Verfasst: 14.04.2019, 17:28
von Indira-Nova
Hello :))

ich hab da auch ein Problem an dem ich seit Tagen dran bin, nun habe ich mir überlegt mich an euch Profis zu wenden. Ich trage da meine Email (von Webseite) ein, und online gibts immer den Fehler an "das die contactform.php" nicht konfiguriert ist. Server unterstützt php und Version 7

Ich kopier da mal den original Code ein evtl weiss Jemand von euch was da genau eingegeben werden muss das es auch funkioniert:

<?php
/*
PHP contact form script
Version: 1.1
Copyrights BootstrapMade.com
*/

/***************** Configuration *****************/

// Replace with your real receiving email address
$contact_email_to = "contact@example.com";

// Title prefixes
$subject_title = "Contat Form Message:";
$name_title = "Name:";
$email_title = "Email:";
$message_title = "Message:";

// Error messages
$contact_error_name = "Name is too short or empty!";
$contact_error_email = "Please enter a valid email!";
$contact_error_subject = "Subject is too short or empty!";
$contact_error_message = "Too short message! Please enter something.";

/********** Do not edit from the below line ***********/

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
die('Sorry Request must be Ajax POST');
}

if(isset($_POST)) {

$name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
$subject = filter_var($_POST["subject"], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
$message = filter_var($_POST["message"], FILTER_SANITIZE_STRING);

if(!$contact_email_to || $contact_email_to == 'contact@example.com') {
die('The contact form receiving email address is not configured!');
}

if(strlen($name)<3){
die($contact_error_name);
}

if(!$email){
die($contact_error_email);
}

if(strlen($subject)<3){
die($contact_error_subject);
}

if(strlen($message)<3){
die($contact_error_message);
}

if(!isset($contact_email_from)) {
$contact_email_from = "contactform@" . @preg_replace('/^www\./','', $_SERVER['SERVER_NAME']);
}

$headers = 'From: ' . $name . ' <' . $contact_email_from . '>' . PHP_EOL;
$headers .= 'Reply-To: ' . $email . PHP_EOL;
$headers .= 'MIME-Version: 1.0' . PHP_EOL;
$headers .= 'Content-Type: text/html; charset=UTF-8' . PHP_EOL;
$headers .= 'X-Mailer: PHP/' . phpversion();

$message_content = '<strong>' . $name_title . '</strong> ' . $name . '<br>';
$message_content .= '<strong>' . $email_title . '</strong> ' . $email . '<br>';
$message_content .= '<strong>' . $message_title . '</strong> ' . nl2br($message);

$sendemail = mail($contact_email_to, $subject_title . ' ' . $subject, $message_content, $headers);

if( $sendemail ) {
echo 'OK';
} else {
echo 'Could not send mail! Please check your PHP mail configuration.';
}
}
?>[code][/code]

Verfasst: 14.04.2019, 17:41
von staticweb
Hier hast du eine funktionierende E-Mail-Adresse eingetragen?

$contact_email_to = "contact@example.com";

Schreibe hier mal hartkodiert die Werte rein und teste ob es so geht. Rest auskommentieren.

$sendemail = mail( $contact_email_to, $subject_title . ' ' . $subject, $message_content, $headers );

if( $sendemail ) {
echo 'OK';
} else {
echo 'Could not send mail! Please check your PHP mail configuration.';
}

Falls es immer noch nicht geht mal die Fehlermeldung aus dem error.log posten.

Verfasst: 14.04.2019, 17:47
von Indira-Nova
als erstes danke dir für die antwort :))

ja die ist eingetragen, fehler:

The contact form receiving email address is not configured!

obwohl ich nachgeschaut habe, die habe ich auch eingetragen

weiss nicht obs an der linie liegt:

$contact_email_from = "contactform@" . @preg_replace('/^www\./','', $_SERVER['SERVER_NAME']);

die ist so wie es hier ist

Verfasst:
von

Verfasst: 14.04.2019, 17:53
von staticweb
> ja die ist eingetragen

Nein ist sie nicht!

if( !$contact_email_to || $contact_email_to == 'contact@example.com' ) {
die( 'The contact form receiving email address is not configured!' );
}

Verfasst: 14.04.2019, 18:03
von Indira-Nova
juheee es hat geklappt :)))) danke dir von herzen!!! :)))

Verfasst: 14.04.2019, 18:16
von Indira-Nova
es hat soweit geklappt das die gesendet werden, jedoch kein empfang

Verfasst: 14.04.2019, 23:46
von nerd
Das passiert, weil deine header falsch gesetzt sind. Wenn du die email von mein-server.de sendest, dann muss im email header auch FROM: no-reply@mein-server.de oder dergleichen stehen, und nicht irgendeine fremde email adresse ueber die du keine kontrolle hast - ansonsten wird die email beim empfaenger entweder gar nicht oder in den spam-ordner zugestellt.

Die email die der benutzer in deinem formular angegeben hat gehoert ins "Reply-To:" feld, nicht ins "From:" feld.

Verfasst: 15.04.2019, 07:55
von staticweb
> es hat soweit geklappt das die gesendet werden, jedoch kein empfang

Bist du sicher das alles geklappt hat? Wurde tatsächlich "OK" angezeigt nach dem senden?

Es kann durchaus möglich sein, dass es je nach E-Mail-Adresse ohne SMTP-Authentifizierung gar nicht funktioniert.