Guten Abend allerseits :)
habe ein kleine Problem mit der Umsetzung meines PHP Formulars… nach ewigen probieren funktioniert auch fast alles.
Nachdem das Formular über einen Button auf der index.html gesendet wurde, wird einen neue Seite geöffnet (registriert.php) und dort wird dann eine Bestätigung angezeigt. Logischerweise wir diese auf einer weißen Seite angezeigt, da ja nur der PHP-Code in der Datei steht.
Ich möchte das Design der ersten Seite (index.html) auch in der zweiten Seite haben. Also eigentlich auf der registriert.php einfach nur da wo auf der index.html das Formular stand die Fehlermeldung oder Bestätigung für den Versand der Email stehen haben. Wenn ich aber den PHP-Code in den entsprechenden DIV einbinde, das Formular richtig ausfülle so dass keine meiner Fehlermeldungen generiert wird, funktioniert das ganze zwar aber es werden mir immer folgende Fehlermeldungen angezeigt:
Wenn ich mit Absicht das Formular falsch ausfülle und somit eine Meldung generiert wird, werden die oben stehende Fehlermeldungen auch angezeigt und der nach dem PHP-Code stehende HTML-Code wird nicht angezeigt..
Hier den PHP-Code den ich in einen DIV in meinem HTML etwas ganz oder per "include ('filename.php');" versucht habe einzubinden:
Habt ihr eine Idee wie das gelöst werden kann? Wie gesagt, die Fehlermeldung falls das Formular falsch ausgefüllt wurde oder die Bestätigung soll einfach an der Stelle wo auf der vorigen Seite das Formular war angezeigt werden.
Danke euch im Voraus :)
mfG,
Hightime
habe ein kleine Problem mit der Umsetzung meines PHP Formulars… nach ewigen probieren funktioniert auch fast alles.
Nachdem das Formular über einen Button auf der index.html gesendet wurde, wird einen neue Seite geöffnet (registriert.php) und dort wird dann eine Bestätigung angezeigt. Logischerweise wir diese auf einer weißen Seite angezeigt, da ja nur der PHP-Code in der Datei steht.
Ich möchte das Design der ersten Seite (index.html) auch in der zweiten Seite haben. Also eigentlich auf der registriert.php einfach nur da wo auf der index.html das Formular stand die Fehlermeldung oder Bestätigung für den Versand der Email stehen haben. Wenn ich aber den PHP-Code in den entsprechenden DIV einbinde, das Formular richtig ausfülle so dass keine meiner Fehlermeldungen generiert wird, funktioniert das ganze zwar aber es werden mir immer folgende Fehlermeldungen angezeigt:
PHP:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web1438/html/oertelphotography/private/vortrag2012/registriert.php:7) in/var/www/web1234/html/abcde/private/v12/registriert.php on line 169
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web1438/html/oertelphotography/private/vortrag2012/registriert.php:7) in/var/www/web1234/html/abcde/private/v12/funktionen.inc.php on line
Wenn ich mit Absicht das Formular falsch ausfülle und somit eine Meldung generiert wird, werden die oben stehende Fehlermeldungen auch angezeigt und der nach dem PHP-Code stehende HTML-Code wird nicht angezeigt..
Hier den PHP-Code den ich in einen DIV in meinem HTML etwas ganz oder per "include ('filename.php');" versucht habe einzubinden:
Code:
<?php
header( 'Content-Type: text/html; charset=utf-8' );
// Empfänger Email
$empfaenger = '[email protected]';
//Betreff der Email
$betreff = 'Anmeldung zum Vortrag 2012';
// Prüfen ob das Formular abgeschickt wurde
if (isset($_POST['senden']))
{
// Funktionen einbinden
include( 'funktionen.inc.php' );
// Benutzereingaben bereinigen und auf Injection prüfen
cleanInput();
// Name prüfen
$name = checkName( $_POST['name'] );
// Email prüfen
$email = checkEmail( $_POST['email'] );
// Betreff und Nachricht prüfen
if ((strlen( $_POST['betreff'] ) < 5) || (strlen( $_POST['nachricht'] ) < 5) || (strlen( $_POST['firma'] ) < 2) || (strlen( $_POST['anzahl'] ) < 1))
{
die( 'Bitte füllen Sie alle gekennzeichneten Felder aus.' );
}
else
{
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$firma = $_POST['firma'];
$position = $_POST['position'];
$anrede = $_POST['anrede'];
$telefon = $_POST['telefon'];
$adresse = $_POST['adresse'];
$postleitzahl = $_POST['postleitzahl'];
$ort = $_POST['ort'];
$anzahl = $_POST['anzahl'];
}
// --------------------------------------------------------------------------------
// Wurde das Script bisher nicht abgebrochen, wurde das Formular korrekt ausgefüllt
// --------------------------------------------------------------------------------
// Template mit dem Mailbody laden und für den Versand vorbereiten
$mailbody = file_get_contents( 'mailbody.txt' );
// Platzhalter mit den Benutzereingaben ersetzen
$mailbody = str_replace( '###NAME###', htmlspecialchars( $name ), $mailbody );
$mailbody = str_replace( '###EMAIL###', $email, $mailbody );
$mailbody = str_replace( '###NACHRICHT###', htmlspecialchars( $nachricht ), $mailbody );
$mailbody = str_replace( '###FIRMA###', htmlspecialchars( $firma ), $mailbody );
$mailbody = str_replace( '###POSITION###', htmlspecialchars( $position ), $mailbody );
$mailbody = str_replace( '###ANREDE###', htmlspecialchars( $anrede ), $mailbody );
$mailbody = str_replace( '###TELEFON###', htmlspecialchars( $telefon ), $mailbody );
$mailbody = str_replace( '###ADRESSE###', htmlspecialchars( $adresse ), $mailbody );
$mailbody = str_replace( '###POSTLEITZAHL###', htmlspecialchars( $postleitzahl ), $mailbody );
$mailbody = str_replace( '###ORT###', htmlspecialchars( $ort ), $mailbody );
$mailbody = str_replace( '###ANZAHL###', htmlspecialchars( $anzahl ), $mailbody );
// Mail Header erstellen
$mailheader = "From: Max Mustermann<[email protected]>\r\n";
$mailheader .= "Reply-To: [email protected]\r\n";
$mailheader .= "Return-Path: [email protected]\r\n";
$mailheader .= "MIME-Version: 1.0\r\n";
$mailheader .= "Content-Type: text/plain; charset=UTF-8\r\n";
$mailheader .= "Content-Transfer-Encoding: 7bit\r\n";
$mailheader .= "Message-ID: <" .time(). " noreply@" .$_SERVER['SERVER_NAME']. ">\r\n";
$mailheader .= "X-Mailer: PHP v" .phpversion(). "\r\n\r\n";
// Email versenden
if (@mail( $empfaenger, htmlspecialchars( $betreff ), $mailbody, $mailheader ))
{
// Bei erfolgreichem Versand Danke-Seite anzeigen
echo 'Danke, die Email wurde verschickt!';
}
}
?>
Habt ihr eine Idee wie das gelöst werden kann? Wie gesagt, die Fehlermeldung falls das Formular falsch ausgefüllt wurde oder die Bestätigung soll einfach an der Stelle wo auf der vorigen Seite das Formular war angezeigt werden.
Danke euch im Voraus :)
mfG,
Hightime