• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Suche Kontaktformular (+tut für die Integration in die Seite)

img

Celler Dickstiel
Registriert
05.06.06
Beiträge
807
ah ok sehr gut, das klappt schonmal, wie kann man denn noch hinzufügen das man eine emailadresse eingeben muss(!)?
 

iMacuser91

Kaiser Wilhelm
Registriert
21.12.06
Beiträge
174
Code:
<?php
$email = "[email protected]"; // Empfängeradresse anpassen

$action = $_POST['action'];
$absname = $_POST['absname'];
$inhalt = $_POST['inhalt'];
$absemail = $_POST['absemail'];
$betreff = $_POST['betreff'];

if($action=="senden") {
	
	[COLOR="red"]if(empty($_POST['comment'])){
		echo "Bitte geben Sie eine Emailadresse an.";
	} else {[/COLOR]

		$inhalt2 = $absname . ", " . $absemail . ", sendete folgende Nachricht mit dem Betreff '" . $betreff . "':\n" . $inhalt ;
    
		// Prüfung der Angaben nach dem Senden

		if(!$absname) $fehler[] = "Ihr Name fehlt.";
		if(!$inhalt) $fehler[] = "Sie haben keine Nachricht geschrieben.";
		if(!$email) $fehler[] = "Ihre Emailadresse fehlt";
    
		if(!count($fehler)) { 

			@mail($email , $betreff, $inhalt2, "From: " . $absemail);
			echo("<p>Ihre Nachricht wie folgt wurde gesendet.<p>\n\n");
			echo "Name: <b>$absname</b><br />\n";
			echo "Inhalt: <b>".nl2br($inhalt)."</b><br />\n";
  
		} else { // Fehlerausgabe, wenn Felder leer waren

      
			echo "Beim Senden traten folgender Fehler auf:";
			echo "<ul><li>".implode("<li>",$fehler)."</ul>";
    
		}

	[COLOR="Red"]}[/COLOR]
    
}else{

?>

<form action="" method="post">
	<input type="hidden" name="action" value="senden">
	<table width=100%>
		<tr>
			<td>Name</td>
			<td><input name="absname" size="40" value="<?php echo $name; ?>"></td>
		</tr><tr>
			<td>eMail[COLOR="Red"]*[/COLOR]</td>
			<td><input name="absemail" size="40" value=""></td>
		</tr><tr>
			<td></td>
			<td><input name="betreff" type="hidden" value="Kontaktformular Webseite"></td>
		</tr><tr>
			<td>Inhalt[COLOR="red"]*[/COLOR]</td>
			<td><textarea name="inhalt" rows="5" cols="40"><?php echo $inhalt; ?></textarea></td>
		</tr><tr>
			<td> </td>
			<td><input type="submit" value="senden"></td>
		</tr>
	</table>
</form>
[COLOR="red"]<p>* Diese Felder müssen ausgefüllt werden</p>[/COLOR]
<?
}
?>

Könnte helfen, mit rot sind die Veränderungen markiert.
 

ma.buso

Châtaigne du Léman
Registriert
16.04.05
Beiträge
820
Super,

das Script ist eine perfekte Spamschleuder.... o_O

Tz tz... eine Benutzereingabe ungeprüft in den e-Mail-Header schreiben
 

.holger

Borowitzky
Registriert
13.09.04
Beiträge
8.970
Super,

das Script ist eine perfekte Spamschleuder.... o_O

Tz tz... eine Benutzereingabe ungeprüft in den e-Mail-Header schreiben
ja, ist es, man kann es natürlich noch um einen Captcha etc. erweitern, um einem PHP Neuling aber schnell ein Ergebnis zu liefern das dieser auch evtl. nachvollziehen kann , ist es glaube ich ganz gut.
 

iMacuser91

Kaiser Wilhelm
Registriert
21.12.06
Beiträge
174
Super,

das Script ist eine perfekte Spamschleuder.... o_O

Tz tz... eine Benutzereingabe ungeprüft in den e-Mail-Header schreiben

Da hilft ein unsichtbares Feld, welches von den meisten Spambots ausgefüllt wird, aber vom Besucher nicht gesehen wird (display: none; oder visibility: hidden; )...
 

img

Celler Dickstiel
Registriert
05.06.06
Beiträge
807
versteh ich nicht, wie verhindert das den spam?
 

iMacuser91

Kaiser Wilhelm
Registriert
21.12.06
Beiträge
174
versteh ich nicht, wie verhindert das den spam?

direkt zu Anfang eine Überprüfung, ob dieses Feld ausgefüllt wurde einrichten, wenn nicht dann geht es normal weiter und wird abgeschickt - wenn doch was geschrieben wurde, dann passiert nichts bzw eine Meldung wie "Bitte Feld XYZ nicht ausfüllen" erscheint.
 

iMacuser91

Kaiser Wilhelm
Registriert
21.12.06
Beiträge
174
Vielleicht solltest du die Benutzereingaben bei auftretenden Fehlern als Text in den Feldern anzeigen lassen, also bei jedem input noch
Code:
value="<?php echo x ?>"
wobei x die passende Variable wäre (bei mail dann $absemail etc.).
bei textarea einfach
Code:
<textarea><?php echo $inhalt ?></textarea>
 

img

Celler Dickstiel
Registriert
05.06.06
Beiträge
807
Vielleicht solltest du die Benutzereingaben bei auftretenden Fehlern als Text in den Feldern anzeigen lassen, also bei jedem input noch
Code:
value="<?php echo x ?>"
wobei x die passende Variable wäre (bei mail dann $absemail etc.).
bei textarea einfach
Code:
<textarea><?php echo $inhalt ?></textarea>


kann es sein, dass du im falschen thrad bist? :)
 

iMacuser91

Kaiser Wilhelm
Registriert
21.12.06
Beiträge
174
kann es sein, dass du im falschen thrad bist? :)

nein ;)

Ich meine damit, wenn ein User keine Emailadresse angibt, dann wird ja die Seite neu aufgerufen (oder nicht?) und dann sind die Eingaben wieder weg, falls die Mail nicht abgeschickt wurde.
Man stelle sich vor, ein User hat hier dann einen längeren Text geschrieben und der ist weg - ich wäre dann zu unmotiviert den nochmal zu schreiben, außer es wäre extrem wichtig.
 

img

Celler Dickstiel
Registriert
05.06.06
Beiträge
807
nein ;)

Ich meine damit, wenn ein User keine Emailadresse angibt, dann wird ja die Seite neu aufgerufen (oder nicht?) und dann sind die Eingaben wieder weg, falls die Mail nicht abgeschickt wurde.
Man stelle sich vor, ein User hat hier dann einen längeren Text geschrieben und der ist weg - ich wäre dann zu unmotiviert den nochmal zu schreiben, außer es wäre extrem wichtig.

achso :) ja logisch... darf ich dich ma bitte in den thread hier rienzuschaun? http://www.apfeltalk.de/forum/php-kontaktformular-alle-t147917.html

da hätte deine antwort auch fast dazu gepasst ;) aber vielleicht hast du auf die dort gestellte frage ne antwort?