tell-a-friend problem
phpmaker
- php
0 Vinzenz0 phpmaker0 Vinzenz0 phpmaker0 Vinzenz0 phpmaker0 Tobias Kloth0 phpmaker
0 Sven Rautenberg
0 tufan
Hi@ all,
Ich hab jetzt mal so´ne tell-a-friend sache gemacht,
aber wenn ich als Absender und Empfänger meine mail angeben,
und auf Sanden klicke, und davor und danach meine Mails abhole, hab
ich keine Mail bekommen....
Was ist falsch?
code:
<?PHP @$emailf2 = "$emailf"; //Absender-Email $email_from_mail = "$mailfselbst"; //Absender-Name $email_from_name = "$mailfselbst"; ?>
<html>
<head>
<title>Mail</title>
</head>
<?php if(!isset($email_freund)){ ?>
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr><td align="left" valign="top">
<form action="mail.php" method="post">
<font face="Comic Sans MS,Arial" size="4">Deine E-Mail:
<input type="text" name="mailf"><br>
Mail deines Freundes:
<input type="text" name="mailfselbst"><br>
Nchricht:<br>
<textarea cols="35" rows="5" name="kommentar" readonly>
Hallo! Guck mal was ich für eine coole Star Wars Seite unter
www.Darth-Martin.tk gefunden hab!
Gruß,
</textarea><br>
Dein Name: <input type="text" name="name2"><br>
<input type="submit" value="Tell-a-friend Mail senden" name="submit">
</font>
</form>
</table>
<?php } else{
mail($emailf2,Darth-Martin,$kommentar + $name2);}?>
</body>
</html>
Vielen Dank schonmal!
mgf phpmaker
Hallo phpmaker,
verstehe ich Dich richtig:
Du möchtest ein Formular ins Internet stellen, das folgendermassen aufgebaut ist:
1. Ein Eingabefeld zur Eingabe der Absender-Mailadresse,
2. ein Eingabefeld zur Eingabe der Empfänger-Mailadresse,
3. ein Eingabebereich (read-only) mit dem Inhalt der Nachricht,
4. ein Absendebutton
Wenn der Benutzer das Formular ausgefüllt hat und auf Absenden klickt,
willst Du eine Mail versenden mit der angegebenen Absender-Mailadresse an die angegebene Empfänger-Mailadresse mit dem Inhalt, der im Eingabebereich steht.
Die Spammer werden sich über solch ein Formular sehr freuen. Es lädt zum Missbrauch geradezu ein. Bitte überdenke Dir Dein Konzept.
Viele Server versenden außerdem keine Mail mehr mit beliebiger Absenderadresse, andere nehmen keine Mail mehr von Rechnern mit Einwahlverbindung, z.B. DSL mit dynamisch zugewiesener IP-Adresse an.
Dein Code zeigt, dass Du Dich auf die Einstellung
register_globals = on
verlässt. Das ist schon lange nicht mehr die Standardeinstellung in der php.ini und nicht mehr empfohlen. Siehe dazu das Kapitel Verwendung von Register Globals im PHP-Handbuch. Du solltest übrigens auch bei register_globals = on keine Variablen verwenden, denen kein Wert zugewiesen ist.
Freundliche Grüsse,
Vinzenz
Ich habe php5 mit ergist_globals off,
und nen Spamschutz ist vorgesehen, du hast alles
richtig verstanden.
Gruß, phpmaker
HILFE!!!!!!!!!!!!!!!!!!!!
Hallo phpmaker,
Ich habe php5 mit ergist_globals off,
Du verwendest die Methode "POST".
Das bedeutet, dass Du auf die übertragenen Parameter über das superglobale Array $_POST zugreifen kannst, z.B. auf den Inhalt eines Eingabefeldes
<input type="text" name="eingabe">
mit $_POST['eingabe']. Dabei musst Du überprüfen, ob überhaupt etwas in das Feld eingegeben wurde.
und nen Spamschutz ist vorgesehen,
Davon war in Deinem Code nichts zu sehen.
Ich empfehle Dir die Lektüre von http://php-faq.de/ch/ch-webvariablen.html und http://php-faq.de/ch/ch-security.html.
Freundliche Grüsse,
Vinzenz
Hallo,
Okok,
Der spam-schutz besteht daraus, das man die Seite nur einmal aufrufen kann, mit session und cokies.
Den hab ich hier nicht gepostet.....
Ich möchte einfach nur ein tall-a-friend das funktioniert....
mit Freundlichen Grüssen,
phpmaker
Hallo phpmaker,
Der spam-schutz besteht daraus, das man die Seite nur einmal aufrufen kann, mit session und cokies.
Der einfachste Spamschutz besteht darin, dass der Mailtext unveränderlich ist, d.h. _nicht_ aus einem Formularfeld stammt.
Den hab ich hier nicht gepostet.....
Solltest Du besser :-)
Ich möchte einfach nur ein tall-a-friend das funktioniert....
Sollte doch gar nicht zu schwer sein:
Wenn erster Aufruf der Formularseite
Zeige Formular an
Sonst
Wenn nicht alle erforderl. Felder ausgefüllt
Zeige ausgef. Formular mit Hinweisen an
Sonst
Versende Mail und gebe Benutzer Feedback
Ende Wenn
Ende Wenn
Wie Du auf POST-Parameter zugreifst, stand ja in meinem zweiten Posting, beachte bitte den Zusammenhang zwischen Namen von Formularfeldern und POST-Parametern.
Falls Dir diese Angaben immer noch nicht reichen, suche doch bitte mal nach "Affenformular".
Freundliche Grüsse,
Vinzenz
Hi,
Vielleicht hastes nicht gesehen, das
Feld ist readonly und vorbelegt.......#
Gruß, PHPmaker
Hallo,
Vielleicht hastes nicht gesehen, das
Feld ist readonly und vorbelegt.......#
und was soll den User daran hindern, das Forumlar lokal zu speichern, das 'readonly' zu entfernen, einen anderen Text reinzuschreiben und das ganze dann abzuschicken ...?
Grüße aus Nürnberg
Tobias
Hallo,
Vielleicht hastes nicht gesehen, das
Feld ist readonly und vorbelegt.......#
und was soll den User daran hindern, das Forumlar lokal zu speichern, das 'readonly' zu entfernen, einen anderen Text reinzuschreiben und das ganze dann abzuschicken ...?
Nichts, aber da könnte ers ja auch selbserschreiben,
und wenn das vorbelegt wäre, könnte man das ja auch machen.....
(Ein weg zum spammen finden die Spammer sowieso...)
mgf phpmaker
P.S. HILFE!!!!!!!!!!!
Hallo phpmaker,
und was soll den User daran hindern, das Forumlar lokal zu speichern, das 'readonly' zu entfernen, einen anderen Text reinzuschreiben und das ganze dann abzuschicken ...?
Nichts, aber da könnte ers ja auch selbserschreiben,
das wird er nicht mache, er will ja den Müll schließlich über deinen Webspace verschicken ...
und wenn das vorbelegt wäre, könnte man das ja auch machen.....
du darfst einfach nicht den Text der über das Formular kommt übernehmen - schreib den Text doch einfach fest ins Script und ignorier das was vom Formular kommt.
P.S. HILFE!!!!!!!!!!!
du prellst.
Grüße aus Nürnberg
Tobias
Moin!
Der spam-schutz besteht daraus, das man die Seite nur einmal aufrufen kann, mit session und cokies.
Du kannst NIEMALS verhindern, dass eine Seite mehrfach aufgerufen wird. Das ist nun mal Fakt. Du kannst allerhöchstens versuchen zu erkennen, dass derselbe Benutzer die Seite schon einmal aufgerufen hat, und dann nicht noch einmal eine Mail rausschicken. Das aber gestaltet sich höchst schwierig. Cookies sind jedenfalls keine Lösung - ein Spammer wird ein Cookie einfach nicht annehmen und so deinen Schutz vermutlich leicht umgehen können.
- Sven Rautenberg
hallo..
<?php if(!isset($email_freund)){ ?>
....
<?php } else{
mail($emailf2,Darth-Martin,$kommentar + $name2);}?>
$email_freund kommt in deinem formular nirgends vor (oder übersehe ich das ?) so kann diese variable natürlich nicht gesetzt sein; also wird die mail nicht geschickt.
gruss,
tufi