Old-Trainee 4 Report post Posted December 8, 2009 Hallo, ich würde gerne ein Kontaktformular mit dem IP.Content einfügen aber irgendwie funktioniert dies nicht. Wenn ich eine neue html-Seite mache und folgenden Text einfüge, wird es nicht richtig angezeigt. <html> <head> <title>Kontaktformular inkl. Dateianhang mit PHP</title> </head> <body> <?php $Empfaenger = "meine@mailadresse.de"; if($_REQUEST['Send']) { if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht'])) { echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!"; } else { $Mailbetreff = "Kontakt: "; $Mailbetreff .= $_REQUEST['Betreff']; $Trenner = md5(uniqid(time())); $Header = "From: ".$_REQUEST['Email']; $Header .= "\n"; $Header .= "MIME-Version: 1.0"; $Header .= "\n"; $Header .= "Content-Type: multipart/mixed; boundary=$Trenner"; $Header .= "\n\n"; $Header .= "This is a multi-part message in MIME format"; $Header .= "\n"; $Header .= "--$Trenner"; $Header .= "\n"; $Header .= "Content-Type: text/plain"; $Header .= "\n"; $Header .= "Content-Transfer-Encoding: 8bit"; $Header .= "\n\n"; $Header .= "Sie haben folgende Nachricht erhalten: \n\n"; while(list($Formularfeld, $Wert) = each($_REQUEST)) { if($Formularfeld != "Send" && $Formularfeld != "Anhang") { $Header .= $Formularfeld.": ".$Wert."\n"; } } $Header .= "\nDatum/Zeit: "; $Header .= date("d.m.Y H:i:s"); $Header .= "\n"; $Header .= "--$Trenner"; $Header .= "\n"; $Header .= "Content-Type: "; $Header .= $_FILES['Anhang']['type']; $Header .= "; name="; $Header .= $_FILES['Anhang']['name']; $Header .= "\n"; $Header .= "Content-Transfer-Encoding: base64"; $Header .= "\n"; $Header .= "Content-Disposition: attachment; filename="; $Header .= $_FILES['Anhang']['name']; $Header .= "\n\n"; $Dateiinhalt = fread(fopen($_FILES['Anhang']['tmp_name'], "r"), $_FILES['Anhang']['size']); $Header .= chunk_split(base64_encode($Dateiinhalt)); $Header .= "\n"; $Header .= "--$Trenner--"; mail($Empfaenger, $Mailbetreff, "", $Header); echo"Vielen Dank für Ihre eMail!"; } } else { ?> <table border="0" cellpadding="1" cellspacing="2"> <form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post"> <tr> <td>Name:</td> <td><input name="Name" size="20" type="text"></td> </tr> <tr> <td>eMail:</td> <td><input name="Email" size="20" type="text"></td> </tr> <tr> <td>Betreff:</td> <td><select name="Betreff" size="1"><option>Hilfe</option><option>Kritik</option><option>Werbung</option></select></td> </tr> <tr> <td>Nachricht:</td> <td><textarea cols="25" name="Nachricht" rows="5"></textarea></td> </tr> <tr> <td>Anhang:</td> <td><input name="Anhang" size="20" type="file"></td> </tr> <tr> <td align="center" colspan="2"><input name="Send" type="submit" value="Abschicken"> <input name="Reset" type="reset" value="Löschen"></td> </tr> </form> </table> <?php } ?> </body> </html> Share this post Link to post
Helge 192 Report post Posted December 9, 2009 In eine HTML-Seite kann kein PHP-Code eingebunden werden. Share this post Link to post
ragtek 0 Report post Posted December 9, 2009 Ausserdem bitte NIEEEEEEEEE folgendes verwenden: $Header = "From: ".$_REQUEST['Email']; 1. Daten validieren 2. Vorallem bei Mailfunktionen aufpassen, da man so sehr leicht als Spamserver missbraucht werden kann;) (leider finde ich den Link nicht mehr, aber es gibt da einige schöne Beispiele wie man genau sowas für Spam verwenden kann. Dort ging es darum, das man da einfach beliebige Empfänger im manipulierten Header mitgeben kann..... Share this post Link to post
Helge 192 Report post Posted December 9, 2009 ...es sollte heute jedem klar sein, das ein Kontaktformular ohne Sicherheitsfunktionen (CAPTCHA) niemals im Produktiveinsatz genutzt werden darf. Alles andere ist ja mehr als grob fahrlässig und ich wundere mich, das man immer noch solch stümperhaft programmierte Formulare im Internet downloaden kann. Traurig! Share this post Link to post
Yoso 1 Report post Posted December 9, 2009 Captcha ist wohl kaum barrierefrei ^^ wobei auch ein Captcha nicht davor schützt das jemand wie oben mit $_REQUEST / GET / POST direkt arbeitet ohne mal geprüft zu haben was da eigentlich drin steht Share this post Link to post
Old-Trainee 4 Report post Posted December 9, 2009 ok liebe Leute, jedoch finde ich kein Kontaktfomular wo man gleichzeitig eine Dateihochladen kann und diese Sicherheitsfunktion hat! Habt Ihr da vll. etwas im Achiv?? Share this post Link to post
Helge 192 Report post Posted December 10, 2009 ...was wohl daran liegt, das kaum jemand für lau entsprechend komplexe Scripte anbietet. Als Captcha/Kontaktformular kann ich dir dieses ans Herz legen. Durch das Captcha ist bei mir bisher kein einziger Bot durchgekommen. (es gibt natürlich viele Wege nach Rom, aber das ist sicher der einfachste für dich, wenn auch kein Upload möglich ist, aber das kann man ggf. noch einbauen [lassen]) Share this post Link to post
Old-Trainee 4 Report post Posted December 10, 2009 Hi Helge, danke für den Tipp mit dem Kontaktformular. Ich habe mir nun mal das Kontaktformular einmal herunter geladen. Ich habe darüber geschaut und festgestellt dass es alle php Datei sind, nur wie binde ich dies nun in meine Seite ein? Share this post Link to post
Old-Trainee 4 Report post Posted December 10, 2009 wieso bekomm ich immer folgende Fehlermeldung. IP.Board Nachricht The PHP page content is run through eval, and as such you can not manually include '<?php' tags. Share this post Link to post
Helge 192 Report post Posted December 11, 2009 Nochmal: Du musst schon eine PHP-Seite anlegen und dann dort den HTML Code einbinden. Umgekehrt wird es nicht funktionieren... :cop: Share this post Link to post
Old-Trainee 4 Report post Posted December 11, 2009 wie jetzt ?? ich steh gerade auf der Leitung. so ein großes Problem kann das doch nicht sein odeR? mit dem IP.Content kann ich doch php-Seiten erstellen oder? oder muss ich die php Dateien was im Download dabei sind hochladen und via iFrame auf der Seite anzeigen lassen. (mit dem IP.Content) Share this post Link to post
Helge 192 Report post Posted December 12, 2009 Natürlich kannst du PHP Seiten erstellen, dann musst du dort aber alles, was HTML-Code ist entsprechend mit einem echo-Befehl ausgeben. <? PHP und ?> sind natürlich nicht einzufügen. Share this post Link to post
Old-Trainee 4 Report post Posted December 13, 2009 ok ich habe es einmal versucht, wenn ich den code der kontakt php einfüge und alle <? PHP und ?> raus lösche, lässt er mit trotzdem die Seite nicht erstellen! Was habe ich da nun wieder Falsche gemacht? Share this post Link to post
Helge 192 Report post Posted December 13, 2009 Das kann ich dir nicht sagen, weil ich die Fehlermeldung nicht kenne. Das sind aber wirklich so grundlegende Basics, die man wissen sollte und wenn wirklich nötig ergoogeln kann. Share this post Link to post
Old-Trainee 4 Report post Posted December 13, 2009 Das kann ich dir nicht sagen, weil ich die Fehlermeldung nicht kenne. Das sind aber wirklich so grundlegende Basics, die man wissen sollte und wenn wirklich nötig ergoogeln kann. Kein Thema, verstehe was du meinst. Aber ich denke dafür haben wir ja ein Forum wo ich mir ERFAHRUNGEN bzw. Hilfen holen kann odeR? Also ich habe nun alle <? entfernt und es ist auch zu speicher gegangen. Nur bekomme ich beim öffnen der seite folgenden Fehlercode. Parse error: syntax error, unexpected '<' in /home/meinZugang/www.meineseite.com/meinordner/admin/applications_addon/IPS/ccs/sources/pages.php(137) : eval()'d code on line 1 Share this post Link to post
Helge 192 Report post Posted December 14, 2009 Gut, dann mal ein Beispiel (kontakt.php), wie man das ganze in IP.Content einfügen kann: // Alle Fehler und Notices anzeigen session_start(); $CAPTCHA_TempString=""; // Zufallsfunktion für Zahlen und Buchstaben function GetRandomChar() { // Zufallszahl generieren mt_srand((double)microtime()*1000000); $CAPTCHA_RandVal = mt_rand(1,2); // Buchstabensalat generieren jeh nachdem ob Randval 1 oder 2 ist switch ($CAPTCHA_RandVal) { case 1: // Zahlen 0-9 $CAPTCHA_RandVal = mt_rand(48, 57); break; case 2: // Grosse Buchstaben $CAPTCHA_RandVal = mt_rand(65, 90); break; } // Zufallscode ausgeben return chr($CAPTCHA_RandVal); } // Zufallscode x-stellig ausgeben for ($i = 1; $i <= 6; $i++) { $CAPTCHA_TempString .= GetRandomChar(); } // Text in Sessionvariable speichern if (isset($CAPTCHA_TempString)) { $_SESSION["CAPTCHA_RndText"] = str_replace('I','E',str_replace('0','3',str_replace('1','S',str_replace('B','F',str_replace('O','P',str_replace('4','A',str_replace('D','K',$CAPTCHA_TempString))))))); } else { die("Zufallscode konnte nicht generiert werden!"); } echo "<h3>Kontaktformular</h3> <form method=\"post\" action=\"NAME DER ZWEITEN SEITE INNERHALB VON [url="https://www.invisionpower.com/clients/index.php?app=nexus&module=promotion§ion=referral&id=5636&direct=aHR0cDovL3d3dy5pbnZpc2lvbnBvd2VyLmNvbS9hcHBzL2NvbnRlbnQv"]IP.Content[/url]\" name=\"kontakt\"> <table> <tr><td><p>Name: </p></td><td><p><input name=\"name\" size=\"34\" type=\"text\""; if (isset($_SESSION['name'])) { echo 'value="' . $_SESSION['name'] . '"'; } echo "/></p></td></tr> <tr><td><p>Email: </p></td><td><p><input name=\"email\" size=\"34\" type=\"text\""; if (isset($_SESSION['email'])) { echo 'value="' . $_SESSION['email'] . '"'; } echo "/></p></td></tr> <tr><td><p>Betreff: </p></td><td><p><input name=\"betreff\" size=\"34\" type=\"text\""; if (isset($_SESSION['betreff'])) { echo 'value="' . $_SESSION['betreff'] . '"'; } echo "/></p></td></tr> <tr><td><p>Nachricht: </p></td><td><p><textarea name=\"nachricht\" rows=\"3\" cols=\"26\">"; if (isset($_SESSION['nachricht'])) { echo $_SESSION['nachricht'] ; } echo "</textarea></p></td></tr> <tr><td> </td><td><img border=\"0\" src=\"captcha_img.php?PHPSESSID="; echo session_id(); echo "&ver="; echo time(); echo"\" alt=\"\" /></td></tr> <tr><td><p>Code: </p></td><td><p><input maxlength=\"6\" name=\"txtCode\" size=\"34\" type=\"text\" /></p></td></tr> <tr><td> </td><td><p><input class=\"button\" type=\"submit\" name=\"eintrag\" value=\"eintragen\" /> <input class=\"button\" type=\"reset\" name=\"reset\" value=\"löschen\" /></p></td></tr> </table> </form>"; ACHTUNG: Nur ein schnelles Beispiel, das natürlich noch angepasst werden muss. Hier sieht man aber schonmal die BASICS, die man wissen muss... Share this post Link to post
Old-Trainee 4 Report post Posted December 15, 2009 Danke einmal, wie packe ich das ganze in die general_box ??? Denn wenn ich ein Div davor setzte zeigt er mir wieder einen Fehler an. Share this post Link to post
Helge 192 Report post Posted December 15, 2009 Wie gesagt: Das sind absolute BASICS! Wenn man HTML-Code innerhalb einer PHP Seite einfügen will, dann machst du das, wie oben im Beispiel. echo "HIER HTML CODE"; Share this post Link to post
Ringertreff 0 Report post Posted December 20, 2009 Hallo, in welchen Ordner installiere/uploade ich dann den Captchas Ordner? Share this post Link to post
Helge 192 Report post Posted December 20, 2009 Das bleibt natürlich jedem selbst überlassen. :) Share this post Link to post
Old-Trainee 4 Report post Posted December 26, 2009 He Super, soweit funktioniert alles und ich kann den captcha Code sehen!! Jedoch komme ich mit Seite zwei nicht klar!! Hier sollte ich kontakt_ausw in einer IP.Content erstellen und bei der kontakt.php action verlinken! Das Problem ist nur das er mir immer einen Fehler rausschreibt!! Was muss genau in die zweite Seite rein? Share this post Link to post
Old-Trainee 4 Report post Posted December 26, 2009 Leider kann ich den letzten Beitrag nicht mehr ändern! So habe mir ganz ganz wenig php angeeignet, damit ich überhaupt verstehe was da alles so drinnen steht im Code!!! Ich gebe es zu, viel haabe ich mir nicht gemerkt, aber es funktioniert schon einmal!! *gg* Aber bezüglich der general Box habe ich noch eine Frage, denn den normalen Text bekomme ich schön rein, jedoch wie ich dann das Kontaktformular einfüge ist mir noch ein Rätsel. Vll. hat da ja jemand eine Rat wie das funktioniert. HIER MEIN CODE: echo '<div class="general_box"> <h3>Hier steht mein Titel</h3> <p> <br> Da steht dann mein Text in der Box und darunter in der gleichen Box soll das Kontaktformular stehen. </p> </div>'; // Alle Fehler und Notices anzeigen session_start(); $CAPTCHA_TempString=""; // Zufallsfunktion für Zahlen und Buchstaben function GetRandomChar() { // Zufallszahl generieren mt_srand((double)microtime()*1000000); $CAPTCHA_RandVal = mt_rand(1,2); // Buchstabensalat generieren jeh nachdem ob Randval 1 oder 2 ist switch ($CAPTCHA_RandVal) { case 1: // Zahlen 0-9 $CAPTCHA_RandVal = mt_rand(48, 57); break; case 2: // Grosse Buchstaben $CAPTCHA_RandVal = mt_rand(65, 90); break; } // Zufallscode ausgeben return chr($CAPTCHA_RandVal); } // Zufallscode x-stellig ausgeben for ($i = 1; $i <= 6; $i++) { $CAPTCHA_TempString .= GetRandomChar(); } // Text in Sessionvariable speichern if (isset($CAPTCHA_TempString)) { $_SESSION["CAPTCHA_RndText"] = str_replace('I','E',str_replace('0','3',str_replace('1','S',str_replace('B','F',str_replace('O','P',str_replace('4','A',str_replace('D','K',$CAPTCHA_TempString))))))); } else { die("Zufallscode konnte nicht generiert werden!"); } echo "<h3>Kontaktformular</h3> <form method=\"post\" action=\"http://www.meineseite.com/index.php?/page/kontakt/kontakt_ausw\" name=\"kontakt\"> <table> <tr><td><p>Name: </p></td><td><p><input name=\"name\" size=\"34\" type=\"text\""; if (isset($_SESSION['name'])) { echo 'value="' . $_SESSION['name'] . '"'; } echo "/></p></td></tr> <tr><td><p>Email: </p></td><td><p><input name=\"email\" size=\"34\" type=\"text\""; if (isset($_SESSION['email'])) { echo 'value="' . $_SESSION['email'] . '"'; } echo "/></p></td></tr> <tr><td><p>Betreff: </p></td><td><p><input name=\"betreff\" size=\"34\" type=\"text\""; if (isset($_SESSION['betreff'])) { echo 'value="' . $_SESSION['betreff'] . '"'; } echo "/></p></td></tr> <tr><td><p>Nachricht: </p></td><td><p><textarea name=\"nachricht\" rows=\"3\" cols=\"26\">"; if (isset($_SESSION['nachricht'])) { echo $_SESSION['nachricht'] ; } echo "</textarea></p></td></tr> <tr><td> </td><td><img border=\"0\" src=\"captcha_img.php?PHPSESSID="; echo session_id(); echo "&ver="; echo time(); echo"\" alt=\"\" /></td></tr> <tr><td><p>Code: </p></td><td><p><input maxlength=\"6\" name=\"txtCode\" size=\"34\" type=\"text\" /></p></td></tr> <tr><td> </td><td><p><input class=\"button\" type=\"submit\" name=\"eintrag\" value=\"eintragen\" /> <input class=\"button\" type=\"reset\" name=\"reset\" value=\"löschen\" /></p></td></tr> </table> </form>"; Share this post Link to post
Old-Trainee 4 Report post Posted January 2, 2010 Weiss jemand wie ich die Code in eine general_box packen kann? Share this post Link to post
Helge 192 Report post Posted January 2, 2010 Wie wäre es, wenn du den abschließenden </div> Code ans Ende legst, nämlich genau dort hin, bis wo der Inhalt in dem DIV erscheinen soll? In diesem Falle also vor </form>. Share this post Link to post
Old-Trainee 4 Report post Posted January 3, 2010 natürlich habe ich an das auch schon gedacht und getestet, aber ich bekomme immer folgende Fehlermeldung. [b]Parse error[/b]: syntax error, unexpected T_STRING, expecting ',' or ';' in [b]/home/meinbenutzer/www.meineseite.com/admin/applications_addon/[url="https://www.invisionpower.com/clients/index.php?app=nexus&module=promotion§ion=referral&id=5636&direct=aHR0cDovL3d3dy5pbnZpc2lvbnBvd2VyLmNvbS8%3D"]IPS[/url]/ccs/sources/pages.php(137) : eval()'d code[/b] on line [b]59[/b] Share this post Link to post