Weiterleitung nach E-Mail Versand mit abgesendeten Daten

Nein, ich meine es anders.

Die Email wird auf SeiteA.php verarbeitet... SeiteB.php soll dann den Inhalt der Email noch einmal zusammenfassen.
Wieso packst du nicht alles in SeiteA.php rein? (Oder trennst die Inhalte, und includest SeiteB.php)

SeiteA gibt ja normalerweise nichts aus, sondern nur SeiteB! Daher stört es ja nicht, wenn du SeiteB bei SeiteA einbindest.

Vielleicht ist es so verständlicher... :)
 
Das war sehr viel verständlicher :)

habe auch schon was zusammengebastelt.
PHP:
<div id="artickel">
	<div class="kontakt_absenden">
		<?php require'./kontakt_absenden.php'; ?>	
	</div>
	
	<div class="kontakt_empfangen">
		<?php
		if($is_send){
			require './kontakt_empfangen.php';
		}
		?>
	</div>
</div>

Hast du so was in der art gemeint? (habe anstelle von include lieber require genutzt, obwohl es keinen Unterschied gibt)


Habe jetzt folgendes Problem, das kriege ich nachdem ich die daten vollständig ausgefüllt habe und abgesendet habe?
c7b8b07f30df.jpg

Wie kann ich das jetzt beheben ?

Ich iclude die empfang seite erst nachdem ich die abfrage gemacht habe.
PHP:
if($is_send){
	require './kontakt_empfangen.php';
}


Kann ich dann auch irgend wie die ./kontakt_absenden.php "ausincluden" ?
 
So könnte man es (vermutlich am schönsten) lösen, allerdings meinte ich es so:

Seite 1: Formular
Seite 2: Emailversandt + Ausgabe einer Zusammenfassung

Ich würde eher auf folgendes zurückgreifen

PHP:
if(isset($_POST['sendbutton']) && $_POST['sendbutton'] == "Nachricht abschicken")
{
     require './kontakt_empfangen.php';
}

Insgesamt dann so:
PHP:
<div id="artickel">
   <?php
   if(isset($_POST['sendbutton']) && $_POST['sendbutton'] == "Nachricht versenden")
   { ?>
     <div class="kontakt_empfangen"> 
        <?php require './kontakt_empfangen.php'; ?> 
    </div>
   <?php
   } else {
   ?>
    <div class="kontakt_absenden"> 
        <?php require'./kontakt_absenden.php'; ?>     
    </div>
   <?php
   } ?>    
</div>
 
Zuletzt bearbeitet:
to Lime,
deine Lösunf Funktioniert nicht.

Die sache ist die, auch wenn der User nicht alle *Pflichtfelder ausgefüllt hat wird die seite abgesendet und noch dazu kriege ich nicht mall die unvollständigen daten, sondern ich kriege garnichts zuruck.
 
So ein Zwischenstand:
- mein kollege (bin erst seit ein paar monaten in Ausbildung) hat mir ein paar Tipps gegeben
- ich werde die dann morgen umsetzen ( mal schaen ob es klappt)


Bis dahin einen schönen Abend
 
So wir haben wieder einen Montag und bin ich an meinem Arbeitsplatz angekommen:

der Tipp von meinem Kollegen war: "post -> send --> ausgabe"
In den Früheren Versionen habe ich durch require mir die Info aus anderen Seiten geholt, mein Kollege schlug mir vor alles in eine Seite zu packen und dann sein Tipp "post -> send --> ausgabe" Anwenden.

Ich habe so weit wie möglich sein Tipp Angewendet nun komme ich nicht weiter.
Mein code:
PHP:
post -> send --> ausgabe

<?php
$errorvorname = false;
$errornachname = false;
$errortelefonnummer = false;
$errornachricht = false;

foreach ($_POST as $key=> $val) {
$_POST[$key] = trim($val);
}

if ($_POST["Senden"] == 'Absenden'){
	if (!($_POST["vorname"] != '' && $_POST["nachname"] != ''  && $_POST["nachricht"] != ''  && $_POST["telefonnummer"] != '')){
		if ($_POST["vorname"] == '' ) $errorvorname = true;
		if ($_POST["nachname"] == '') $errornachname = true;
		if ($_POST["telefonnummer"] == '') $errortelefonnummer = true;
		if ($_POST["nachricht"] == '') $errornachricht = true;
	}
}
?>

<?php
require './PHPMailer_5.2.0/class.phpmailer.php';
$emailContent[] = '
<!DOCTYPE html>
<html>
  <head>
    <title>Kontaktformular</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <style>
 	 body {font-size:14px;font-family:Arial;}
 	 table {margin:10px;font-size:12px;font-family:Arial;}
  </style>
  <body>
  ';
//Empfang-anfang
session_start();
$_SESSION['vorname'] 		= $_POST["vorname"];
$_SESSION['nachname'] 		= $_POST["nachname"];
$_SESSION['telefonnummer']	= $_POST["telefonnummer"];
$_SESSION['nachricht']		= $_POST["nachricht"];

//Empfang-ende
if ($_POST["Senden"] == 'Absenden'){
	if ($_POST["vorname"] != '' && $_POST["nachname"] != ''  && $_POST["nachricht"] != ''  && $_POST["telefonnummer"] != ''){
	$emailContent[] = '<p>Folgende Daten wurden über das Kontaktformular übermittelt.</p>';
	$emailContent[] = '<table>';
	$emailContent[] = '	<tr><td width="10px;"><b>Vorname: </b></td><td>'.$_POST["vorname"].'</td><tr>';
	$emailContent[] = '	<tr><td width="10px;"><b>Nachname: </b></td><td>'.$_POST["nachname"].'</td><tr>';
	$emailContent[] = '	<tr><td width="10px;"><b>Telefonnummer: </b></td><td>'.$_POST["telefonnummer"].'</td><tr>';
	$emailContent[] = '	<tr><td width="10px;"><b>Nachricht: </b></td><td>'.$_POST["nachricht"].'</td><tr>';
	$emailContent[] = '</table>';
	$emailContent[] = '<p>Die Nachricht wurde am '.date('d.m.Y').' um '.date('H:i:s').' Uhr gesendet.</p>';
	$emailContent[] = '<p>Bitte Antworten Sie nicht auf diese E-Mail.';
	$emailContent[] = '</body></html>';
	$emailCompleteContent = implode( '', $emailContent );
		try {
			$mail = new PHPMailer(true); //New instance, with exceptions enabled
			$body = $emailCompleteContent;
			$body = preg_replace('/\\\\/','', $body); //Strip backslashes
		
			$mail->IsSMTP();			// tell the class to use SMTP
			$mail->SMTPAuth		= true;	// enable SMTP authentication
			$mail->Port			= 25;	// set the SMTP server port
			$mail->Host			= "localhost";			// SMTP server
			//$mail->Username	= "name@domain.com";	// SMTP server username
			//$mail->Password   = "password";			// SMTP server password
		
			$mail->IsSendmail();  // tell the class to use Sendmail
			#$$mail->AddReplyTo($email,$name);
			$mail->From		= "noreply@mail.com";			//Absendermail
			$mail->FromName	= "Kontaktformular";			//Absender Anzeige Name
			$mail->AddAddress("aleks@trash-mail.com");	//Empfängermail
			$mail->Subject	= "Kontaktformular Anfrage";	//Betreff
			$mail->AltBody	= "To view the message, please use an HTML compatible email viewer!"; // Text wenn das mein Programm/Seite kein HTML wiedergeben kann.
			$mail->WordWrap	= 80; 	// set word wrap
			$mail->MsgHTML($body);	//das Html Body wurde erstellt
			$mail->IsHTML(true);	// send as HTML
			$is_send = $mail->Send();			
		}
		catch (phpmailerException $e){							
			echo '<br><span class="special-info">Upss.. da ist wohl was <i>schief</i> gelaufen!<br><br>'.$e->errorMessage().'</span>';
		}
	}
	else{
		echo '<span class="pflichtfelder-error">Sie haben nicht alle <span class="special-info">* Pflichtfelder</span> Ausgefühlt.</span>';
	}
}
//pflichtfelder anfrage ende
?>

<h2 class="artickel-uberschrift">Kontaktformular</h2>
<div id="kontaktformular">
	<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">		
		<div class="block">
			<span id="pflichtfelder" class="special-info">* Pflichtfelder</span><br><br>
			<label class="label-block" for="vorname">Vorname<span class="special-info">*</span></label>
				<input value="<?php echo $_POST["vorname"]; ?>" type="text" name="vorname" id="vorname" class="block-input<?php if ($errorvorname){echo ' error';}?>"><br>
			<label class="label-block" for="nachname">Nachname<span class="special-info">*</span></label>
				<input value="<?php echo $_POST["nachname"]; ?>" type="text" name="nachname" id="nachname" class="block-input<?php if ($errornachname){echo ' error';}?>"><br>
			<label class="label-block" for="telefonnummer">Telefonnummer<span class="special-info">*</span></label>
				<input value="<?php echo $_POST["telefonnummer"]; ?>" type="text" name="telefonnummer" id="telefonnummer" class="block-input<?php if ($errortelefonnummer){echo ' error';}?>"><br>
			<label class="label-block" for="eingabetext">Ihr Anliegen<span class="special-info">*</span></label>
				<textarea rows="8" cols="69" name="nachricht" id="eingabetext" class="block-input<?php if ($errornachricht){echo ' error';}?>"><?php echo $_POST["nachricht"]; ?></textarea><br>
			<input type="submit" value="Absenden" name="Senden" class="input-submit">
		</div>
	</form>
</div>

<?php
/*Der teil des Codes Funktioniert Perfekt so wie ich mir es vorstelle,
*dann erst wenn ich alle *Pflichtfelder ausgefüllt habe und abgesendet
*habe erschien der und vorher ist er einfach nicht zu sehen.
*
*Jetz will ich das wenn ich den Teil sehe der Obere "Absendeforlular" verschwindet!
*/
if ($is_send){
	echo '
	<h2 class="artickel-uberschrift">Kontaktanfrage Erfolgreich Abgesendet</h2>
	<div id="kontaktformular">
		<div class="block">';
			$vorname		= $_SESSION['vorname'];
	        $nachname		= $_SESSION['nachname'];
	        $telefonnummer	= $_SESSION['telefonnummer'];
	        $nachricht		= $_SESSION['nachricht'];
	echo '<tr>
			<label class="label-block" for="vorname">Vorname</label>
				<td type="text" name="vorname" id="vorname" class="block-input">'.$vorname.'</td><br>
			<label class="label-block" for="nachname">Nachname</label>
				<td type="text" name="nachname" id="nachname" class="block-input">'.$nachname.'</td><br>
			<label class="label-block" for="telefonnummer">Telefonnummer</label>
				<td type="text" name="telefonnummer" id="telefonnummer" class="block-input">'.$telefonnummer.'</td><br>
			<label class="label-block" for="eingabetext">Ihr Anliegen</label>
				<td name="text" id="eingabetext" class="block-input">'.$nachricht.'</td><br>
			</tr>
		</div>
	</div>';
}
?>
 
Versteh ich das richtig, du möchtest wenn es abgesendet wurde das Formular verschwinden lassen?
Dann mach das gegenteil von deiner "Kontaktanfrage erfolgreich Abgesendet".

PHP:
<?php
if(!$is_send){
?>
<!-- Kontaktformular -->
<?php
}else if($is_send){
    // code von der Bestätigung
}
?>
 
JUHUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU

to Maniac DANKEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

so jetzt der End-Code:

PHP:
post -> send --> ausgabe

<?php
$errorvorname = false;
$errornachname = false;
$errortelefonnummer = false;
$errornachricht = false;

foreach ($_POST as $key=> $val) {
$_POST[$key] = trim($val);
}

if ($_POST["Senden"] == 'Absenden'){
	if (!($_POST["vorname"] != '' && $_POST["nachname"] != ''  && $_POST["nachricht"] != ''  && $_POST["telefonnummer"] != '')){
		if ($_POST["vorname"] == '' ) $errorvorname = true;
		if ($_POST["nachname"] == '') $errornachname = true;
		if ($_POST["telefonnummer"] == '') $errortelefonnummer = true;
		if ($_POST["nachricht"] == '') $errornachricht = true;
	}
}
?>

<?php
require './PHPMailer_5.2.0/class.phpmailer.php';
$emailContent[] = '
<!DOCTYPE html>
<html>
  <head>
    <title>Kontaktformular</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <style>
 	 body {font-size:14px;font-family:Arial;}
 	 table {margin:10px;font-size:12px;font-family:Arial;}
  </style>
  <body>
  ';
//Empfang-anfang
session_start();
$_SESSION['vorname'] 		= $_POST["vorname"];
$_SESSION['nachname'] 		= $_POST["nachname"];
$_SESSION['telefonnummer']	= $_POST["telefonnummer"];
$_SESSION['nachricht']		= $_POST["nachricht"];

//Empfang-ende
if ($_POST["Senden"] == 'Absenden'){
	if ($_POST["vorname"] != '' && $_POST["nachname"] != ''  && $_POST["nachricht"] != ''  && $_POST["telefonnummer"] != ''){
	$emailContent[] = '<p>Folgende Daten wurden über das Kontaktformular übermittelt.</p>';
	$emailContent[] = '<table>';
	$emailContent[] = '	<tr><td width="10px;"><b>Vorname: </b></td><td>'.$_POST["vorname"].'</td><tr>';
	$emailContent[] = '	<tr><td width="10px;"><b>Nachname: </b></td><td>'.$_POST["nachname"].'</td><tr>';
	$emailContent[] = '	<tr><td width="10px;"><b>Telefonnummer: </b></td><td>'.$_POST["telefonnummer"].'</td><tr>';
	$emailContent[] = '	<tr><td width="10px;"><b>Nachricht: </b></td><td>'.$_POST["nachricht"].'</td><tr>';
	$emailContent[] = '</table>';
	$emailContent[] = '<p>Die Nachricht wurde am '.date('d.m.Y').' um '.date('H:i:s').' Uhr gesendet.</p>';
	$emailContent[] = '<p>Bitte Antworten Sie nicht auf diese E-Mail.';
	$emailContent[] = '</body></html>';
	$emailCompleteContent = implode( '', $emailContent );
		try {
			$mail = new PHPMailer(true); //New instance, with exceptions enabled
			$body = $emailCompleteContent;
			$body = preg_replace('/\\\\/','', $body); //Strip backslashes
		
			$mail->IsSMTP();			// tell the class to use SMTP
			$mail->SMTPAuth		= true;	// enable SMTP authentication
			$mail->Port			= 25;	// set the SMTP server port
			$mail->Host			= "localhost";			// SMTP server
			//$mail->Username	= "name@domain.com";	// SMTP server username
			//$mail->Password   = "password";			// SMTP server password
		
			$mail->IsSendmail();  // tell the class to use Sendmail
			#$$mail->AddReplyTo($email,$name);
			$mail->From		= "noreply@mail.com";			//Absendermail
			$mail->FromName	= "Kontaktformular";			//Absender Anzeige Name
			$mail->AddAddress("aleks@trash-mail.com");	//Empfängermail
			$mail->Subject	= "Kontaktformular Anfrage";	//Betreff
			$mail->AltBody	= "To view the message, please use an HTML compatible email viewer!"; // Text wenn das mein Programm/Seite kein HTML wiedergeben kann.
			$mail->WordWrap	= 80; 	// set word wrap
			$mail->MsgHTML($body);	//das Html Body wurde erstellt
			$mail->IsHTML(true);	// send as HTML
			$is_send = $mail->Send();			
		}
		catch (phpmailerException $e){							
			echo '<br><span class="special-info">Upss.. da ist wohl was <i>schief</i> gelaufen!<br><br>'.$e->errorMessage().'</span>';
		}
	}
	else{
		echo '<span class="pflichtfelder-error">Sie haben nicht alle <span class="special-info">* Pflichtfelder</span> Ausgefühlt.</span>';
	}
}
//pflichtfelder anfrage ende
?>

<?php 
if(!$is_send){ 
?> 
<h2 class="artickel-uberschrift">Kontaktformular</h2>
<div id="kontaktformular">
	<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">		
		<div class="block">
			<span id="pflichtfelder" class="special-info">* Pflichtfelder</span><br><br>
			<label class="label-block" for="vorname">Vorname<span class="special-info">*</span></label>
				<input value="<?php echo $_POST["vorname"]; ?>" type="text" name="vorname" id="vorname" class="block-input<?php if ($errorvorname){echo ' error';}?>"><br>
			<label class="label-block" for="nachname">Nachname<span class="special-info">*</span></label>
				<input value="<?php echo $_POST["nachname"]; ?>" type="text" name="nachname" id="nachname" class="block-input<?php if ($errornachname){echo ' error';}?>"><br>
			<label class="label-block" for="telefonnummer">Telefonnummer<span class="special-info">*</span></label>
				<input value="<?php echo $_POST["telefonnummer"]; ?>" type="text" name="telefonnummer" id="telefonnummer" class="block-input<?php if ($errortelefonnummer){echo ' error';}?>"><br>
			<label class="label-block" for="eingabetext">Ihr Anliegen<span class="special-info">*</span></label>
				<textarea rows="8" cols="69" name="nachricht" id="eingabetext" class="block-input<?php if ($errornachricht){echo ' error';}?>"><?php echo $_POST["nachricht"]; ?></textarea><br>
			<input type="submit" value="Absenden" name="Senden" class="input-submit">
		</div>
	</form>
</div>
<?php 
}
else if ($is_send){
	echo '
	<h2 class="artickel-uberschrift">Kontaktanfrage Erfolgreich Abgesendet</h2>
	<div id="kontaktformular">
		<div class="block">';
			$vorname		= $_SESSION['vorname'];
	        $nachname		= $_SESSION['nachname'];
	        $telefonnummer	= $_SESSION['telefonnummer'];
	        $nachricht		= $_SESSION['nachricht'];
	echo '<tr>
			<label class="label-block" for="vorname">Vorname</label>
				<td type="text" name="vorname" id="vorname" class="block-input">'.$vorname.'</td><br>
			<label class="label-block" for="nachname">Nachname</label>
				<td type="text" name="nachname" id="nachname" class="block-input">'.$nachname.'</td><br>
			<label class="label-block" for="telefonnummer">Telefonnummer</label>
				<td type="text" name="telefonnummer" id="telefonnummer" class="block-input">'.$telefonnummer.'</td><br>
			<label class="label-block" for="eingabetext">Ihr Anliegen</label>
				<td name="text" id="eingabetext" class="block-input">'.$nachricht.'</td><br>
			</tr>
		</div>
	</div>';
}
?>
den code dann durch require in die gewünschte seite holen und FERTIG


******MANIC DU BIST DER HELD DES TAGES******
 
PHP:
if ($_POST["Senden"] == 'Absenden')
{ 
    if (!($_POST["vorname"] != '' && $_POST["nachname"] != ''  && $_POST["nachricht"] != ''  && $_POST["telefonnummer"] != '')) //was willst du damit erreichen? Wenn die Felder nicht nicht leer sind******! Irgendwie redundant - vielleicht auch nur schwer zu verstehen
    { 
        if ($_POST["vorname"] == '' ) $errorvorname = true; 
        if ($_POST["nachname"] == '') $errornachname = true; 
        if ($_POST["telefonnummer"] == '') $errortelefonnummer = true; 
        if ($_POST["nachricht"] == '') $errornachricht = true; 
    } 
}


Also ich würde es grundsätzlich so aufbauen:

PHP:
<?php
if(isset($_POST['absende']))
{
    //Variablen prüfen
    if(!empty($_POST['empfaenger']) && !empty($_POST['betreff']) && !empty($_POSt['nachricht']))
    {
         //Mail versenden

         //Zusammenfassung ausgeben
         echo "<h1>Deine Nachricht als Übersicht</h1>";
         echo "Empfänger: {$_POST['empfaenger']}";
         echo "Betreff: {$_POST['betreff']}";
         echo "Nachricht: {$_POST['nachricht']}";
    } else {
         echo "Eingaben überprüfen.";
    }
} else {
    //Formular ausgeben
}
?>

€: zu lang getippt :p
 

Neue Beiträge

Zurück