PHP-mail werte bei betreff?

Subwoover

Erfahrenes Mitglied
Hey ihr!
Ich schreibe gerade mein erstes Script, ein Mailscript.
Es versendet total simpel eine NAchricht an eine E-Mail Adresse, folgende Fragen:

1) Geht es dass ich bei Betreff einen spezifischen Wert setze, also wenn ich auf der Page nen Link mach mit 'mail.php?beschwerde=1'
dass dann bei Betreff auch Beschwerde steht und wenn ich den Link so mache: 'mail.php?wunsch=1' dass dann bei Betreff Wunsch steht?

2) Der Empfänger der E-Mail bekommt dann den Text: 'Es wurde soeben ein Feedback von $sender versendet,
hier der Inhalt:
$data'

Wie kann ich die Variable $sender visuell fett oder kursiv hervorheben? Geht das überhaupt?

3) Ist es möglich dass das Script dann eine automatische Antwortmail an den Autoren sendet? sowas wie dankeschön für die mail...

Hier mal das script:

if($webmaster=="1");
if($data) {

mail("kepman@gmx.at","$webmaster Feedback","
Es wurde soeben ein Feedback von $sender (seine E-Mail: $email ) versendet,
hier der Inhalt:
$data
");
echo "Danke für die Message!";

} else {
echo "<form name=$PHP_SELF method=post><br>";
echo "Namen:<br>";
echo "<input type=text name=sender><br>";
echo "E-Mail:<br>";
echo "<input type=text name=email><br>";
echo "Kommentar:<br>";
echo "<textarea name=data cols=50 rows=4></textarea><br>";
echo "<input type=submit value=Senden><br>";
echo "</form>";
}

Bitte um Antwort =)
 
Zuletzt bearbeitet:
hier vielleicht kannst du damit etwas anfangen:
PHP:
//überprüfung, ob alle variablen gesetzt sind
if ($absender && $email && inhalt)
  {
  //betreff setzen
  if (beschwerde==1) {$betreff="beschwerde"}
  if (wunsch==1) {$betreff="wunsch"}
  //mail an den absender
  $header="From:kepman@gmx.at\nReply-To:kepman@gmx.at";
  mail ("$absender","$betreff","Danke für dein Feedback.","$header");
  //mail an den webmaster
  $header="Content-Type:text/html; charset=iso-8859-1";
  mail ("kepman@gmx.at","$betreff","Es wurde soeben ein Feedback von <b>$absender</b> geschrieben, hier der Inhalt:<br>$inhalt","$header");
  //bestätigung ausgeben
  echo ("Danke für dein Feedback.");
  }
 
Is alles recht einfach:
(hab mir das Script da nicht ganz angeschaut, aber ich glaub es stimmt schon...muss aber auch mal meinen Senf dazugeben... ;) )

Zu1:
~~~~

Ich würde es eher so machen:
Wenns ne' Beschwerde is einen Link der ungefähr so is mail.php?anliegen=1, bei Wunsch dann mail.php?anliegen=2 usw.

Und dann ne' kleine SWITCH-Schleife à la

PHP:
<?

switch ($anliegen) {
  case "1":
    $betreff="Beschwerde";
    break;
  case "2":
    $betreff="Wunsch";
    break;
  default:
    $betreff="Irgendwas anderes";
}

?>

Zu2:
~~~


Den ganzen Mailkontent halt in HTML-Formatierung versenden!
Beachten ist halt wie im Script oben, dass ein header angegeben wird (ich glaube schon, dass es wichtig ist, da es sonst nicht als HTML erkannt wird! vielleicht gehts auch ohne.....)



Zu3:
~~~

Das is' noch einfacher!
Du machst einfach einen zweiten mail() Befehl gleich dahinter.
Is' genau dasselbe, einfach zweimal hintereinander.




Am Ende würde mein Script ungefähr so aussehen:

PHP:
<?

// Variablenüberprüfung, ob Sie leer sind; geht auch mit JS
if ($absender = "" or $adresse = "" or $text = "") {
  echo "Ein Feld wurde nicht ausgefüllt!"
} else {
	switch ($anliegen) {
	  case "1":
	    $betreff="Beschwerde";
	    break;
	  case "2":
	    $betreff="Wunsch";
	    break;
	  default:
	    $betreff="Irgendwas anderes";
	}

//Jetzt wird eine Mail an den Webmaster geschickt

	$header="Content-Type:text/html; charset=iso-8859-1"; 
				//hier verlass ich mich mal auf apric
	
	mail("webmaster@deinepage.com", $betreff, "Sie haben Post von <b><u>$absender</u></b> erhalten. Nachricht:<br><i>$text", $header);

//Jetzt kommt die Mail für den Absender

	mail($adresse, "Antwortmail von meiner Page", "Danke <u>$absender</u>, dass du mir geschrieben hast. blablabla Hierwas due geschrieben hast:<br><i>$text</i>", $header);

//Vielleicht noch ne' Bestätigung, dass es geklappt hat

echo "Mail wurde verschickt!";

}

?>

Ich hoffe doch sehr es funzt.
Hab nur schnell mal was zusammengeschrieben!
 
Also so sieht das Script jez aus:

<?
if($data) {

$header="Content-Type:text/html; charset=iso-8859-1";
mail ("kepman@gmx.at","$betreff","Feedback von <b>$absender</b>
Inhalt:<br>$data","$header");
echo "<center>Danke für die Message!</center>";

}
else {
echo "<form name=$PHP_SELF method=post><br>";
echo "Name:<br>";
echo "<input type=text name=absender><br>";
echo "Betreff:<br>";
echo "<input type=text name=betreff><br>";
echo "E-Mail:<br>";
echo "<input type=text name=email><br>";
echo "Kommentar:<br>";
echo "<textarea name=data cols=50 rows=4></textarea><br>";
echo "<hr color=#00526C width=80% size=1>";
echo "<center><input type=submit value=Senden></center><br>";
echo "</form>";
}
?>

Jedesmal wenn ich versuche einer eurer Programmzeilen hinzuzufügen gibt er mir einen Parse Fehler aus.
Aja noch ne Frage, wie heb ich den Code hier im Forum hervor?*G*
 
mit [ PHP ] und [ / PHP ] (natürlich ohne die lerzeichen, hab ich nur gemacht, dass er es nicht konvertiert; hoff ich zumindest, dass er es nicht macht!)

P.S.: das Script schau ich mir vielleicht nochmal an!
 
Aaaah danke also dann hier das Script schön in Farbe hoffe ich!

PHP:
<?
if($data) {

$header="Content-Type:text/html; charset=iso-8859-1";
  mail ("kepman@gmx.at","$betreff","Feedback von <b>$absender</b> 
Inhalt:<br>$data","$header");
echo "<center>Danke für die Message!</center>";

}
 else {
echo "<form name=$PHP_SELF method=post><br>";
echo "Name:<br>";
echo "<input type=text name=absender><br>";
echo "Betreff:<br>";
echo "<input type=text name=betreff><br>";
echo "E-Mail:<br>";
echo "<input type=text name=email><br>";
echo "Kommentar:<br>";
echo "<textarea name=data cols=50 rows=4></textarea><br>";
echo "<hr color=#00526C width=80% size=1>";
echo "<center><input type=submit value=Senden></center><br>";
echo "</form>";
}
?>

Anschaun kann man sich das ganze unter: http://www.es-clan.at.tf unter dem Menüpunkt 'Kontakt'
UNd wäre ein Spamschutz auch noch möglich? Ich bin da ganz neu in der PHP Szene :p
 
lol

ganz neu und schon solche Ansprüche stellen.
Für einen Spamschutz hab ich hier ein Tutorial, das poste ich dann, wenn das Script endlich läuft.
 
Jo darweil rennt es!
Ich hab es so gemacht dass man den Betreff selbst wählen kann!
Vor dem selbstgewähltem Betreff steht dann noch ein Zusatz damit ich mich auskenne von welchem Formular die Mail kommt.

PHP:
if($data) {

$header="Content-Type:text/html; charset=iso-8859-1";
  mail ("kepman@gmx.at","-es.Mail: $betreff","Feedback von <b>$absender</b> 
Inhalt:<br>$data","$header");
echo "<center>Danke für die Message!</center>";

}

Funktionieren tut es ;)
Also mahl her mit dem Tut hehe :p
 
läuft das script jetzt?

hmmm...zum Tutorial: Das ist doch kein richtiger Spamschutz! is ne Reloadsperre! aber vielleicht kann man damit ansatzweise was anfangen.
ich poste es trotzdem:

Eine Reloadsperre zu basteln ist ja recht einfach - vorrausgesetzt man hat MySQL-Zugriff. Das hat man aber nicht überall und so habe ich eine Reloadsperre gebastelt, die ganz ohne MySQL auskommt. Man muss nur Schreibrechte auf dem Server haben (kann man auf den meißten FTP-Servern auch als Client einstellen).
Nun gehts aber los:
Am Anfang konfigurieren wir ein paar Variablen:

$datei="ip.txt";
$l=localtime(time$sperre=10;
$sperre=10;
$ip=$REMOTE_ADDR;

Diese Variablen werden später noch gebraucht. Die Variable $sperre enthält die Anzahl Minuten, die eine IP gesperrt werden soll und die Variable $datei enthält den Dateinamen der Log-Datei.

Dann kommen noch ein paar Variablen:

$entdeckt=0;
$s_sperre=$sperre*60;
$jetzt=mktime($l[2], $l[1], $l[0], $l[4], $l[3], $l[5]+1900);
$ip_file=file($datei);
$zeilen=count($ip_file);
$file_handler=fopen($datei, "a");
$towrite="";

Diese werden später gebraucht.
Das eigentliche Programm beginnt mit einer For-Schleife:

for($i=0; $i<$zeilen; $i++)
{
$ip_zeit=explode("-",$ip_file[$i]);
if($ip_zeit[0]==$ip AND $ip_zeit[1]>=$jetzt-$s_sperre)
{
$entdeckt=1;
break;
}
}

Hier wird jede Zeile der Datei (im Array abgelegt) mit dem Zeichen "-" aufgeteilt. Danach wird gecheckt ob der vordere Teil (die IP) gleich der aktuellen IP ist und ob die gespeicherte Uhrzeit die Kriterien erfüllt. Ist beides der Fall, wird $entdeckt auf 1 gesetzt.

Das ganze endet jetzt noch mit einer if-Abfrage:

if($entdeckt==1)
{
echo "Fehler: Sie waren in den letzten $sperre Minuten schon einmal auf dieser Seite";
}
else
{
echo "Alles OK";

$towrite="
".$ip."-".$jetzt;
fwrite($file_handler, $towrite);
fclose($file_handler);
}

Hier wird die Variable $entdeckt überprüft. Ist sie "0", ist alles OK und die IP des Users sowie die aktuelle Uhrzeit als Unix-Timestamp werden in die Datei geschrieben.

Zum Schluss nochmal das ganze Script:

<?php
$datei="ip.txt";
$l=localtime(time());
$sperre=10;
$ip=$REMOTE_ADDR;


$entdeckt=0;
$s_sperre=$sperre*60;
$jetzt=mktime($l[2], $l[1], $l[0], $l[4], $l[3], $l[5]+1900);
$ip_file=file($datei);
$zeilen=count($ip_file);
$file_handler=fopen($datei, "a");
$towrite="";


for($i=0; $i<$zeilen; $i++)
{
$ip_zeit=explode("-",$ip_file[$i]);
if($ip_zeit[0]==$ip AND $ip_zeit[1]>=$jetzt-$s_sperre)
{
$entdeckt=1;
break;
}
}

if($entdeckt==1)
{
echo "Fehler: Sie waren in den letzten $sperre Minuten schon einmal auf dieser Seite";
}
else
{
echo "Alles OK";

$towrite="
".$ip."-".$jetzt;
fwrite($file_handler, $towrite);
fclose($file_handler);
}
?>


MfG
Moritz Geisberger
Moritz-G@web.de




Nachtrag:
~~~~~~~~~

So, hab mir jetzt mal das Tutorial durchgelesen.
Also, sollte das Ding funktionieren (was ich sehr stark vermute...) ist das Script perfekt für einen Spamschutz.

Mann kann auch noch veranlassen, dass zur IP dazu auch noch der Absender oder die Absender-Adresse gespeichert wird.
Damit kann man verhindern, dass einer, der sich neu einwählt dir nochmal neÄ Mail schickt.
er kann zwar dann ne' andere Adresse angeben, aber absoluten schutz gibts ja kaum. ;)
 
Zuletzt bearbeitet:
lol

lol das is sein erstes script :D
da willst du dem so einen code-haufen andrehen???
-> input overflow ;)

wenn, dann soll er es alles mit sessions machen, is weitaus komfortabler.

(mein thread zu sessions ist ein paar tage alt, kannste ja mal raussuchen...)
 
Zurück