Es erscheint immer foglender Fehler:
- Code: Alles auswählen
Fatal error: Cannot redeclare clean_text() (previously declared in /home/virtual/site151/fst/home/redaxo/public_html/redaxo/include/classes/class.article.inc.php(147) : eval()'d code:30) in /home/virtual/site151/fst/home/redaxo/public_html/redaxo/include/classes/class.article.inc.php(147) : eval()'d code on line 30
Hier der PHP-Code der den Fehler erzeugen soll:
- Code: Alles auswählen
<?php
// ============== Form config ==============
// Daten für die Ausgabe der Fehlermeldung,
// Überschrift, Legend, Beschreibung, Feldnamen, "Submit"-Button
$page_info = "";
$hack_meldung = "Leider konnten wir deine Anfrage nicht bearbeiten, weil das Formular nicht korrekt ausgefüllt ist. Bitte überprüfe folgendes Eingabefeld:";
//Formular
$formular_legend = "";
$formular_info = "";
$formular_name = "Name";
$formular_email = "E-Mail";
$formular_meldung = "Nachricht";
$submit_value = "absenden";
$submit_titel = "Zum Absenden bitte nur 1x klicken";
$reset_value = "zurücksetzen";
// Danke-Seite
$danke_meldung = "Vielen Dank für deine Nachricht. Sie wurde soeben erfolgreich versendet. Wir werden uns in Kürze bei dir melden.";
// Empfänger E-Mail
$empfaenger="webmaster@nagl.ch";
$email_titel="Kontaktformular nagl.ch";
// ============== Ende Form config ==============
// Daten aus Form config konvertieren
function clean_text($value = "")
{
$value = htmlentities($value);
return $value;
}
$page_info = clean_text($page_info);
$hack_meldung = clean_text($hack_meldung);
$formular_legend = clean_text($formular_legend);
$formular_name = clean_text($formular_name);
$formular_email = clean_text($formular_email);
$formular_meldung = clean_text($formular_meldung);
$submit_value = clean_text($submit_value);
$submit_titel = clean_text($submit_titel);
$danke_meldung = clean_text($danke_meldung);
// ============== Formularüberprüfung ==============
function cleanup ($string) {
// falls magic quotes on
if (get_magic_quotes_gpc())
{
$string = stripslashes($string);
}
$string = addslashes($string);
$string = strip_tags($string);
// "--","#";";","`","/" Ausfiltern von SQL-Statements
$string = str_replace(array("--","- -","#",";","`","/","<",">","{","}","[","]"),array("","","","","","","","","","","",""),$string);
// - mit Leerzeichen dazwischen (SQL-Kommentare!)
$string = preg_replace('#-\s+-#i',"",$string);
return $string;
} // end function cleanup
function checkName ($string) {
// $name am Anfang Buchstabe; keine Zahlen und Nicht-Wortzeichen; dann
// beliebig viele Buchstaben, Bindestriche, Leerzeichen und Punkte
if (preg_match("/^[^\W\d_]([^\W\d_]|[\-\'\s\.\ä\ö\ü\Ä\Ö\Ü\ß])*$/", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkName
function checkNumeric ($string) {
// nur Zahlenr
if (preg_match("/^\d*$/", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkNumeric
function checkEmail ($string) {
// $email mindestens a@a.aa
if (($string != "") && (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([_a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", stripslashes($string))))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkEmail
function checkMessage ($string) {
//
if (preg_match("/^[^\d_]([^\W]|[\-\'\s\"\.\!\?\;\,\:\€\%\(\)\+\=\@\*\ä\ö\ü\Ä\Ö\Ü\ß])*$/", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkMessage
$hack = false; // Bool'sche Variable zeigt an, ob
// ein Hackingversuch vorliegt
// Auslesen und Säubern der Daten aus $_POST
if (sizeof($_POST) == 0)
{
$name = "";
$email = "";
$message = "";
$submit = "";
}
else
{
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$submit = $_POST["submit"];
$name = cleanup($name);
$email = cleanup($email);
$message = cleanup($message);
$submit = cleanup($submit);
// Verifizieren der Daten
if (checkName($name)!=1)
{
$hack = true; $feld = $formular_name;
}
if (checkEmail($email)!=1)
{
$hack = true; $feld = $formular_email;
}
if (checkMessage($message)!=1)
{
$hack = true; $feld = $formular_meldung;
}
} // end else
// ============== Ende Formularüberprüfung ==============
// beim ersten Aufruf oder unkorrekten Eingaben Formular ausgeben
if (($submit == "") OR (($submit == $submit_value) AND ($hack == true)))
{
// Bei inkorrekten Eingaben eine Fehlermeldung ausgeben:
if ($hack)
{
?>
<p><?php echo $hack_meldung; ?></p>
<ul>
<li><?php echo $feld; ?></li>
</ul>
<br>
<?php
} // end if ($hack)
else
{
if ($page_info != "")
{
echo "<p>" . $page_info . "</p>\n";
}
} // end else
?>
<form class="kontakt" id="kontakt" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<?php
if ($formular_info != "")
{
echo "<p>" . $formular_info . "</p>\n";
}
?>
<div>
<div class="label"><label for="name"><?php echo $formular_name; ?></label></div>
<input type="text" id="name" name="name" title="<?php echo $formular_name; ?>" value="<?php echo stripslashes($name); ?>" tabindex="1">
</div>
<div>
<div class="label"><label for="email"><?php echo $formular_email; ?></label></div>
<input type="text" id="email" name="email" title="<?php echo $formular_email; ?>" value="<?php echo stripslashes($email); ?>" tabindex="2">
</div>
<div>
<div class="label"><label for="message"><?php echo $formular_meldung; ?></label></div>
<textarea id="message" name="message" title="<?php echo $formular_meldung; ?>" cols="36" rows="8" tabindex="3"><?php echo stripslashes($message); ?></textarea>
</div>
<div class="buttons">
<br><input type="submit" class="button" name="submit" value="<?php echo $submit_value; ?>" tabindex="4">
<input type="reset" class="button" value="<?php echo $reset_value; ?>" tabindex="5">
</div>
</form>
<?php
} // if (($submit == "") OR (($submit == $submit_value) AND ($hack == true)))
elseif (($submit == $submit_value) AND ($hack == false))
{
//email abschicken
$recipient=$empfaenger;
$subject=$email_titel;
$header="From: " . $email . "\n";
$mail_body ="Das Anfrage-Formular wurde am " . date("d.m.Y") . " um " . date("H:i") . "h ausgeführt.\n";
$mail_body.="Folgende Werte wurden eingetragen:\n\n";
$mail_body.="Name: " . $name . "\n";
$mail_body.="E-Mail: " . $email . "\n\n";
$mail_body.="Nachricht:\n\n";
$mail_body.=$message . "\n\n ---- Ende der automatisch generierten eMail ----";
mail($recipient,$subject,$mail_body,$header);
echo "<p>" . $danke_meldung . "</p>\n";
}
?>
Mit einer früheren Version ging es. Vermute es hat was mit der Umstellung der Classen zu tun, oder liege ich wiedermal falsch?
Übrigens das Formular funktioniert einwandfrei und ohne Fehler. Eben nur kann ich einen neuen Index mehr erstellen.
Gruss
PEN

