chilly Posted April 2, 2007 Posted April 2, 2007 Segítséget szeretnék kérni, abban, hogy van egy php oldalam (mailform.php) ami egy cmsimple cms levélküldõje és találtam egy - számomra is elgé egyszerûnek tûnõ - capcha kódot generáló kiegészítést, a http://www.gerd-tentler.de/tools/seccode/ oldalon, amit egy fõként html-bõl álló oldalba könnyen be lehet(ne) illeszteni, de a php-ban nem igazodom el, hová is kell beírni. A mailform.php a következõ: <?php /* CMSimple version 2.8 beta3 - March 21. 2007 Small - simple - smart © 1999-2007 Peter Andreas Harteg - peter@harteg.dk This file is part of CMSimple. For licence see notice in /cmsimple/cms.php and http://www.cmsimple.dk/?Licence */ if (eregi('mailform.php', sv('PHP_SELF')))die('Access Denied'); $title = $tx['title'][$f]; $o .= '<h1>'.$title.'</h1>'; initvar('sender'); $t = ''; if ($action == 'send') { if ($mailform == '')$e .= '<li>'.$tx['error']['mustwritemes']; else if(!(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[_a-z0-9-]+(\.[_a-z0-9-]+)*(\.([a-z]{2,4}))+$", $sender)))$e .= '<li>'.$tx['error']['mustwritemail'].'.'; else if(!(@mail($cf['mailform']['email'], 'Mailform from '.sv('SERVER_NAME'), $mailform, "From: ".$sender."\r\n"."X-Remote: ".sv('REMOTE_ADDR')."\r\n")))$e .= '<li>'.$tx['mailform']['notsend']; else $t = '<p>'.$tx['mailform']['send'].'</p>'; } if ($t == '' || $e != '') { if (@$tx['mailform']['message'] != '')$o .= '<p>'.$tx['mailform']['message'].'</p>'; $o .= '<form action="'.$sn.'" method="post"><textarea rows="12" cols="40" name="mailform">'; if ($mailform != 'true')$o .= htmlspecialchars(stripslashes($mailform)); $o .= '</textarea>'.tag('input type="hidden" name="function" value="mailform"').tag('input type="hidden" name="action" value="send"').tag('br').$tx['mailform']['sender'].': '.tag('input type="text" class="text" name="sender" value="'.htmlspecialchars(stripslashes($sender)).'"').' '.tag('input type="submit" class="submit" value="'.$tx['mailform']['sendbutton'].'"').'</form>'; } else $o .= $t; ?> A kódot generáló oldal a seccode.php és a readme-ben azt írják, hogy: Add an extra form field to your message form like this: <input type="text" name="secCode"> <b>«</b> <img src="seccode.php" width="71" height="21" align="absmiddle"> Sec-Code stores the security code in a session variable, so don't forget to start a session in your script where you validate the security code. This has to be done before any headers are sent: if(!session_id()) session_start(); Here's an example how you can check for a valid security code: if($_POST['secCode'] != $_SESSION['secCode']) { // wrong security code ... } else { // security code is valid ... } Csakhogy a html-t tartalmazó kódot nem tudom hová kell beírni, illetve hogyan kell a php-nak értlmezhetõen megadni. Elõre is köszönöm, ha segít valaki!
chilly Posted April 5, 2007 Author Posted April 5, 2007 Nem hinném, hogy ez ennyire bonyolult feladat lenne... Végül is nem ragaszkodom ehhez a captcha kódhoz. Ha valakinek van más, jobb, vagy ismertebb kódja "lepjen meg" azzal. Vagy legalább 2 sorban írja le, hogy hová célszerû beilleszteni, aztán majd elszüttyögök vele! Thx.
arpsoft Posted April 5, 2007 Posted April 5, 2007 A html kódot értelem szerûen abba form részletbe kell berakni, ahol megszülethet a levél, amit elküldesz. Ez jelen esetben a mailform.php-ben a $o áltozóban tárolódik, mint szöveg. Ebbe a szövegbe kell beszúrni a html kódot, szintén, mint szöveg, azaz aposztrófok közé téve. A lényeg, hogy a hozzáfûzés a <form és /form> között legyen: $o.=' <input type="text" name="secCode"> <b>«</b>'; $o.=' <img src="seccode.php" width="71" height="21" align="absmiddle">';
chilly Posted April 5, 2007 Author Posted April 5, 2007 Köszönöm a gyors megoldást... próbálgatni fogom a dolgot, bár eddig még nem jutottam vele dűlőre. Az említett sorokat beillesztettem, de a többi pár sort hiába tettem be különbözö helyekre, nem akart működni.
arpsoft Posted April 6, 2007 Posted April 6, 2007 Ez így nem is biztos, hogy menni fog. Ahogy elnézem a kódot, a generált oldal leje a $tx['title']-ben van eltárolva. Azokat a sorokat, amire azt írják, hogy a header elõtt küldjed el, ebbe kéne belevarázsolni valahogy.
chilly Posted April 6, 2007 Author Posted April 6, 2007 Megpróbáltam ismét a kódokat beilleszteni és a [title] elé beírtam a session indító kódot, aztán addig eljutottam, hogy a formba jó helyre került a seccode mező és a kép, viszont hiába adtam meg jól a seccode.php útvonalát, csak nem jelent meg a helyén a számkód. Úgy érzem, hogy a cmsimple-ben nem annyira egyszerű ezt megcsinálni... Egyszóval köszönöm a segítségedet, de kis időre felfüggesztem a próbálkozást, mert ennyi időt nekem nem ér meg ez. A cmsimple-hez fejlesztettek saját captcha-kódos formot, bár szerintem az elég ronda. Talán majd 7végén azzal szórakozok egy kicsit. Kellemes ünnepeket!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now