Kontaktformular ändern

Ich_halt224

Erfahrenes Mitglied
Hallo,

ja ich weiß, das was ich hier frage ist wahrscheinlich eine Kleinigkeit für euch und eigentlich unter euren Niveau, aber wie heisst es doch so schön, wer nicht fragt, bleibt dumm. :)

Ich habe ein sehr einfaches Kontaktformular, wovon ich Euch hier mal den Quelltext zeige:

PHP:
<?php  
$empfaenger = "Webmasta@online.de";
if ($_POST['betreff'] != "" AND $_POST['nachricht'] != "" AND $_POST['email'] != "")
{
    mail($empfaenger, $_POST['betreff'], $_POST['nachricht'], $_POST['email']);
}
?> 
<html>
<head>
<title>Kontakformular</title>


</head>

<body>
<body bgcolor="#98A664" text="white">
<form action="" method="post">  
Name:<br><input type="text" name="name" size="29">
<br><br> 
Betreff:<br><input type="text" name="betreff" size="29">
<br><br>
E-Mail:<br><input type="text" name="email" size="29">
<br><br>
Nachricht:<br><textarea cols="26" rows="10" name="nachricht"></textarea>
<br><br>
<input type="submit" value="Abschicken"><input type="reset" value="Zurücksetzen">
</form>

<p>&nbsp;</p>

</body>
</html>


So, ich steige da aber leider nicht so ganz durch, weil in dem Formular der Name, ein Betreff, die Emailadresse und die Nachricht von dem Schreiber übertragen wird.
Ich ersehe aus dem Code aber irgendwie nicht, wie er den Namen übermittelt.

Naja, jedenfalls wollte ich das Formular ein bißchen umändern, noch einige Felder hinzufügen, die dann mit gesendet werden.
Kann mir da jemand sagen, wie das geht?


Vielen Dank.

Tim
 
Folgendes wäre möglich:
PHP:
<?php

	$empfaenger = "Webmasta@online.de";

	$_notes = array(
		'error' => array()
	);
	// Bestimmung der benötigten Argumente
	$_requiredArguments = array(
		'POST' => array(
			'name'      => 'Bitte geben Sie Ihren Namen an.',
			'betreff'   => 'Bitte geben Sie einen Betreff an.',
			'nachricht' => 'Bitte geben Sie eine Nachricht an.',
			'email'     => 'Bitte geben Sie Ihre E-Mail-Adresse an.'
		)
	);
	// Prüfung der benötigten Argumente
	foreach( $_requiredArguments as $method => $arguments ) {
		if( !isset(${'_'.$method}) ) {
			continue;
		}
		foreach( $arguments as $key => $message ) {
			if( empty(${'_'.$method}[$key]) || trim(${'_'.$method}[$key]) == '' ) {
				$_notes['error'][] = $message;
			}
		}
	}

	// falls Fehler auftraten, das heißt, falls benötigte Argumente fehlen/leer sind
	if( !empty($_notes['error']) ) {
		echo '<div class="note error"><ul>';
		foreach( $_notes['error'] as $error ) {
			echo '<ul>'.$error.'</ul>';
		}
		echo '</ul></div>';
	} else {
		mail($empfaenger, $_POST['betreff'], $_POST['name']." schrieb:\n\n".$_POST['nachricht'], preg_replace('/\x0A|\x0D\x0A|\x0D/s', '', $_POST['email']));
	}

?>
 
Also nun steige ich leider gar nicht mehr durch.
Ich wollte das eigentlich so unkompliziert lassen, wie es ist, also nicht irgendeine Kontrolle, ob nun was eingegeben wurde oder nicht und sowas, das brauche ich nicht.

Ich würde nur gerne wissen, wie ich dort noch mehr Fehler hinzufügen kann und den PHP-Code so verändern kann, dass diese Angaben auch mit versendet werden.


Liebe Grüße

Tim
 
Hallo,

so dann auch für Dich ein Beispiel zum verstehen was Gumbo meint:

PHP:
<?PHP
    /* Empfänger */
    $empfaenger = array('Damir<mail@php.com>');

    /* Empfänger CC */
    $empfaengerCC = array('Damir CC<mail@php.com>');

    /* Empfänger BCC */
    $empfaengerBCC = array('Damir BCC<mail@php.com>');

    /* Absender */
    $absender = 'Administrator PHP<php@php.com>';

    /* Rueckantwort */
    $reply = 'Administrator PHP<php@php.com>';

    /* Betreff */
    $subject = 'Info Mail von PHP';

    /* Nachricht */
    $message = '<html>
    <head>
        <title>PHP - Mail Beispiel</title>
    </head>
    <body>
    <table width="214" border="0" cellspacing="0" cellpadding="0">
            <tr>
                <td width="47">PHP5</td>
                <td width="56">&nbsp;</td>
                <td width="99">&nbsp;</td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>PHP</td>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
                <td>www.php.de</td>
            </tr>
        </table>
    </body>
  </html>';

    /* Baut Header der Mail zusammen */
    $headers .= 'From:' . $absender . "\n";
    $headers .= 'Reply-To:' . $reply . "\n"; 
    $headers .= 'X-Mailer: PHP/' . phpversion() . "\n"; 
    $headers .= 'X-Sender-IP: ' . $REMOTE_ADDR . "\n"; 
    $headers .= "Content-type: text/html\n";

    // Extrahiere Emailadressen
    $empfaengerString = implode(',', $empfaenger);
    $empfaengerCCString = implode(',', $empfaengerCC);
    $empfaengerBCCString = implode(',', $empfaengerBCC);

    $headers .= 'Cc: ' . $empfaengerCCString . "\n";
    $headers .= 'Bcc: ' . $empfaengerBCCString . "\n";

    /* Verschicken der Mail */
    mail($empfaengerString, $subject, $message, $headers);
?>

Gruß


RS9999:)
 
Zurück