Undefined variable
Özcan
- php
Hallo Leute bekommen diese Fehlermeldung bei einem Formmailer:
Notice: Undefined variable: mailnachricht in /homepages/3/d288675836/htdocs/relaunch/kontakt.php on line 92
habs überprüft und find nix, könnt ihr mir da helfen?
Hier das Script:
<?php
// wenn das Formular übermittelt wurde
if(isset($_POST['senden'])){
while(list($feld,$wert)=each($HTTP_POST_VARS)){
// übermittelte Inhalte "entschärfen"
$wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert);
$$feld=$wert;
// die übermittelten Variablen werden zum 'Text der Email' zusammengefasst
if($feld!="senden")
{
(Zeile 92->) $mailnachricht.=ucfirst($feld).": $wert\n";
}
}
$mailnachricht.="\nDatum/Zeit: ";
$mailnachricht.=date("d.m.Y H:i:s");
// Überprüfen ob alle Pflichtfelder gefüllt sind
empty($nachname) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false;
empty($vorname) ? $err[] = "<p>- Bitte den Vornamen angeben.</p>" : false;
empty($email) ? $err[] = "<p>- Bitte die Email-Adresse angeben.</p>" : false;
empty($betreff) ? $err[] = "<p>- Bitte den Betreff angeben.</p>" : false;
empty($text) ? $err[] = "<p>- Welchen Wunsch haben Sie? Bitte den Text eingeben.</p>" : false;
// wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt
if(!empty($err)) {
echo "<p>Bitte korrigieren Sie folgende Fehler:</p>";
foreach($err as $fehler){
echo $fehler;
} ?>
<?php
echo "<form action='#' method='post' id='form2'>
<div class='indent-col'>
<div class='container1'>
<div class='col-5'>
Name:
<div class='h'><input type='text' name='nachname' value='"; ?><?php echo $nachname; ?><?php echo "' /></div>
Vorname:
<div class='h'><input type='text' name='vorname' value='"; ?><?php echo $vorname; ?><?php echo "' /></div>
E-mail:
<div class='h'><input type='text' name='email' value='"; ?><?php echo $email; ?><?php echo "' /></div>
Betreff:
<div class='h'><input type='text' name='betreff' value='"; ?><?php echo $betreff; ?><?php echo "' /></div>
</div>
<div class='col-6'>
Ihre Nachricht:<br />
<textarea rows='40' cols='30' name='text'>"; ?><?php echo $text; ?><?php echo "</textarea>
<div class='fright'><input type='reset' name='löschen' class='link'> <input type='submit' name='senden' class='link'>
</div>
</div>
<br class='clear' />
</div>
</div>
</form>
</div>";
?>
<?php // sind keine Fehler vorhanden, wird die Email versendet
} else {
$mailbetreff="Kontaktformular ".$_SERVER['HTTP_HOST'];
// HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!!
if(mail("info@oenem.de", $mailbetreff, $mailnachricht, "From: $email")){
echo "<p>Vielen Dank für Ihre eMail!</p>";
} else {
echo "<p>Ein Fehler ist aufgetreten!</p>";
}
}
// das Formular welches als erstes dem Besucher angezeigt wird
} else { ?>
<?php
echo "<form action='#' method='post' id='form2'>
<div class='indent-col'>
<div class='container1'>
<div class='col-5'>
Name:
<div class='h'><input type='text' name='nachname' value='' /></div>
Vorname:
<div class='h'><input type='text' name='vorname' value='' /></div>
E-mail:
<div class='h'><input type='text' name='email' value='' /></div>
Betreff:
<div class='h'><input type='text' name='betreff' value='' /></div>
</div>
<div class='col-6'>
Ihre Nachricht:<br />
<textarea rows='40' cols='30' name='text'></textarea>
<div class='fright'><input type='reset' name='löschen' class='link'> <input type='submit' name='senden' class='link'>
</div>
</div>
<br class='clear' />
</div>
</div>
</form>
<br />
<br />
<br />";
?>
<?php
}
?>
Hi!
Notice: Undefined variable: mailnachricht in /homepages/3/d288675836/htdocs/relaunch/kontakt.php on line 92
(Zeile 92->) $mailnachricht.=ucfirst($feld).": $wert\n";
Der Operator .= erweitert eine bestehende Variable. Was nicht existiert, kann normalerweise nicht erweitert werden. PHP legt die Variable zwar an, weist aber auch darauf hin, dass ein Lesezugriff auf etwas nicht Vorhandenes stattfand. Sauber programmiert wäre es, wenn du $mailnachricht vorher definiert anlegst (mit einem Leerstring beispielsweise). Das solltest du mindestens außerhalb der Schleife tun. Wenn du eine Variable blockübergreifend verwendest, dann vor den entsprechenden Blöcken. (Ein Block ist das, was zwischen {}-Klammern steht.)
Lo!
Ich danke dir mein Freund, du hast mir mal wieder sehr geholfen!!!!