| | | | |
| | |
| Neuer Benutzer Registriert seit: 01.08.2008
Beiträge: 5
![]() | Hallo an alle, ich brauche noch mal eure Hilfe. Ich habe ein "Kontaktformular mit Spamschutz" von "Meine erste Homepage" in meine Website integriert. Ich habe aber noch ein Problem. Die Navigation auf meiner Site ist so aufgebaut: Code: <?php if ($_GET['page']=="") $_GET['page']="index.html";?> - - href="index.php?page=contact/contact.php">Kontakt - <?php include($_GET['page']); ?> Nur das Kontaktformular kommt damit nicht zurecht und öffnet beim ausführen immer die Startseite(und sendet auch keine Mail bzw. Rückgabe-Infos: OK-gesendet o.ä.). Lasse ich das Formular auf einer separaten Seite laufen: Code: href="contact/contact.php">Kontakt Ich glaube durch den Befehl "echo" für die Ausgabe von Infos oder auch das senden der Mail, wird einfach die Hauptseite oder die oberste Seite (mal ganz laienhaft ausgedrückt)aufgerufen. Da das optisch natürlich nicht schön aussieht auf der HP(www.dssv1956.de, keine Werbung!), würde ich das gerne im Kontaktformular ändern. Hier noch das Script des Kontaktformulars: Code: <?php
// Wenn alle Felder ausgefuellt wurden und der Captcha stimmt, wird ein Cookie gesetzt
if($_GET['action'] != "" && !empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']) && ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{
setcookie("spam_protection", "spam_protection", time()+500);
}
// Erstellen einer Rechenaufgabe
$Zahl_1 = intval(rand(1, 5));
$Zahl_2 = intval(rand(1, 5));
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>Kontaktformular</title></head>
<body>
<?php
// Wenn das Formular gesendet werden soll...
if($_GET['action'] == "send")
{
// ...der Cookie gegen Spam nicht gesetzt ist...
if($_COOKIE["spam_protection"] != "spam_protection")
{
// ... und die Rechenaufgabe FALSCH geloest wurde...
if($_POST['number'] != md5($_POST['arithmetic']))
{
// ...dann eine Fehlermeldung ausgeben!
echo "<p><img src=\"stop.gif\" width=\"20\" height=\"20\" alt=\"Fehler\" /> <font style=\"color:darkred; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\"><b>Die Rechenaufgabe wurde falsch gelöst!</b></font></p>";
}
// Ansonsten, wenn die Rechenaufgabe RICHTIG geloest wurde stimmt...
if($_POST['number'] == md5($_POST['arithmetic']))
{
// ...und die eingegeben E-Mail Adresse in Wahrheit keine ist...
if(!ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{
// ...dann eine Fehlermeldung ausgeben!
echo "<p><img src=\"stop.gif\" width=\"20\" height=\"20\" alt=\"Fehler\" /> <font style=\"color:darkred; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\"><b>Die eingegebene E-Mail-Adresse ist ungültig!</b></font></p>";
}
// Ansonsten, wenn die eingegebene E-Mail Adresse auch wirklich eine ist...
if(ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{
// ...und kein Feld leer ist...
if(!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']))
{
// dann den ganzen Muell von Spambots oder auch menschlichen Spammern entfernen...
$name = nl2br(stripslashes(htmlspecialchars($_POST['name'])));
$IP = getenv("REMOTE_ADDR");
$absender = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $_POST['email'] );
$absender = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $absender );
$nachricht = nl2br(stripslashes(htmlspecialchars($_POST['message'])));
// ...die Nachricht, die Sie erhalten moechten, wenn eine neue Nachricht an Sie versandt wurde, definieren...
$mailnachricht = "Hallo!\n\nEs ist eine neue Nachricht fuer Sie eingetroffen:\n\n---------------------------------------------\n\nName:\n$name\n\nIP:\n$IP\n\nE-Mail:\n$absender\n\nNachricht:\n$nachricht\n\n---------------------------------------------\n\nSie koennen dem Absender der Nachricht direkt antworten, indem Sie einfach auf diese E-Mail antworten.\n\nMfG\nBotty ;-)";
// ...an Sie verschicken...
mail("Ihre@E-Mail.de", "Neue Nachricht fuer Sie!", $mailnachricht, "From: $name <$absender>");
// ...und dem Benutzer sagen, dass alles glatt lief!
echo "<p><img src=\"ok.gif\" width=\"20\" height=\"20\" alt=\"Okay\" /> <font style=\"color:darkgreen; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\"><b>Vielen Dank für Ihre Nachricht!</b> Wir lassen Ihnen umgehend eine Antwort zukommen.</font></p>";
}
// Wenn nicht alle Felder ausgefuellt wurden, dann...
else
{
// eine Fehlermeldung ausgeben!
echo "<p><img src=\"stop.gif\" width=\"20\" height=\"20\" alt=\"Fehler\" /> <font style=\"color:darkred; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\"><b>Bitte füllen Sie alle Felder aus!</b></font></p>";
}
}
}
}
}
?>
<form id="form" name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?action=send">
<table width="400" cellpadding="2" cellspacing="2" style="background-color:#E6E6E6; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:12px">
<tr>
<td width="162" style="background-image: url(hintergrund.jpg)">
<strong>Ihr Name</strong></td>
<td width="188">
<input name="name" type="text" id="name" style="background-color:#CCCCCC; font-size:12px; font-family:Geneva, Arial, Helvetica, sans-serif; border : 1px solid #000000; width:186px" value="<?php echo $_POST['name']; ?>"/></td>
<td width="28" align="center" valign="middle"><img src="hilfeicon.gif" alt="Hilfe" width="15" height="15" title="Bitte geben Sie Ihren Namen an, damit wir Sie persönlich ansprechen können!" /></td>
</tr>
<tr>
<td width="162" style="background-image: url(hintergrund.jpg)">
<strong>Ihre gültige E-Mail Adresse</strong></td>
<td width="188">
<input name="email" type="text" id="email" style="background-color:#CCCCCC; font-size:12px; font-family:Geneva, Arial, Helvetica, sans-serif; border : 1px solid #000000; width:186px" value="<?php echo $_POST['email']; ?>"/></td>
<td width="28" align="center" valign="middle"><img src="hilfeicon.gif" alt="Hilfe" width="15" height="15" title="Ihre aktuelle, gültige E-Mail Adresse, an der wir Ihnen antworten!" /></td>
</tr>
<tr>
<td width="162" style="background-image: url(hintergrund.jpg)">
<strong>Ihre Nachricht</strong></td>
<td width="188">
<textarea name="message" id="message" style="background-color:#CCCCCC; font-size:12px; font-family:Geneva, Arial, Helvetica, sans-serif; border : 1px solid #000000; width:186px; height:100px" rows="4" cols="15"><?php echo $_POST['message']; ?></textarea></td>
<td width="28" align="center" valign="middle"><img src="hilfeicon.gif" alt="Hilfe" width="15" height="15" title="Bitte formulieren Sie Ihr Anliegen möglichst detailliert!" />
</td>
</tr>
<tr>
<td width="162" style="background-image: url(hintergrund.jpg)">
<strong>Wieviel ist <?php echo $Zahl_1; ?> plus <?php echo $Zahl_2; ?>?</strong>
</td>
<td>
<input name="number" type="hidden" id="number" value="<?php echo md5(( $Zahl_1 + $Zahl_2 )); ?>"/>
<input name="arithmetic" type="text" id="arithmetic" style="background-color:#CCCCCC; font-size:12px; font-family:Geneva, Arial, Helvetica, sans-serif; border : 1px solid #000000; width:186px" onfocus="if(this.value=='Das Ergebnis bitte hier hinein...')this.value=''" onblur="if(this.value=='')this.value='Das Ergebnis bitte hier hinein...'" value="Das Ergebnis bitte hier hinein..."/>
</td>
<td align="center" valign="middle">
<img src="hilfeicon.gif" alt="Hilfe" width="15" height="15" title="Spamschutz: Addieren Sie bitte <?php echo $Zahl_1; ?> und <?php echo $Zahl_2; ?> und schreiben Sie deren Summe in das Textfeld." />
</td>
</tr>
<tr>
<td style="background-image: url(hintergrund.jpg)">
<strong>Mögliche Aktionen</strong>
</td>
<td>
<?php
// Wenn KEIN Cookie gegen Spam gesetzt wurde, dann soll der "Senden"-Button anklickbar sein
if($_COOKIE["spam_protection"] != "spam_protection")
{
?>
<input name="submit" type="submit" id="submit" value="Senden" /> <input name="reset" type="reset" id="reset" value="Zurücksetzen" />
<?php
}
// Wenn aber ein Cookie gegen Spam gesetzt wurde, dann soll der "Senden"-Button blockiert werden
if($_COOKIE["spam_protection"] == "spam_protection")
{
?>
<input name="submit" type="submit" id="submit" value="Senden" disabled="true" /> <input name="reset" type="reset" id="reset" value="Zurücksetzen" />
<?php
}
?>
</td>
<td align="center" valign="middle"><img src="hilfeicon.gif" alt="Hilfe" width="15" height="15" title="Sie können das Formular absenden oder zurücksetzen!" /></td>
</tr>
<tr>
<td style="background-image: url(hintergrund.jpg)"><strong>Sie benötigen Hilfe? </strong></td>
<td colspan="2">Mit dem Mauszeiger auf das Fragezeichen zeigen und Hilfe naht :-)</td>
</tr>
</table>
</form>
</body>
</html>
Danke für gute Tipps im voraus. |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Kontaktformular - bitte helft mir | celine70 | PHP Tipps 2008 | 3 | 19.05.2008 11:28 |
| Navigation fixen | Desert | PHP Tipps 2008 | 0 | 12.05.2008 17:00 |
| include isoliert ausführen – Lösungsansatz gesucht | veit | PHP-Fortgeschrittene | 8 | 09.04.2008 09:26 |
| hinter include wird eine 1 angezeigt | |~Râdîant~| | PHP Tipps 2008 | 8 | 19.09.2007 13:52 |
| include Dateien wieder ausängen o.Ä. | netti | PHP Tipps 2007 | 8 | 17.12.2006 15:14 |
| include problem | Canni | PHP Tipps 2006 | 26 | 14.11.2006 14:24 |
| Sessiondaten in include nutzen | PHP Tipps 2006 | 17 | 23.02.2006 17:18 | |
| include, nur bestimmten teil neu laden | Calli | PHP Tipps 2006 | 2 | 27.01.2006 15:57 |
| Navigation | snatch-ic | PHP Tipps 2007 | 4 | 08.01.2006 12:11 |
| include aus frame heraus auf anderen Frame | Calli | PHP Tipps 2005-2 | 2 | 08.09.2005 15:23 |
| Auf Firmen-Server funzt kein include aus fremden Verzeichnis | PHP-Fortgeschrittene | 3 | 19.07.2005 16:49 | |
| Navigation mit variabeln / (include) | PHP Tipps 2005 | 6 | 30.03.2005 19:05 | |
| [Erledigt] Problemme mit include... | PHP Tipps 2004-2 | 6 | 30.11.2004 12:20 | |
| HTTP_GET_VARS + Include = Array leer | PHP Tipps 2004-2 | 3 | 24.11.2004 15:12 | |
| Kontaktformular - Nachricht wurde verschickt | PHP Tipps 2004 | 4 | 22.10.2004 09:18 | |