Jump to content
GSForum - Segélyvonal

PHP oldalba CAPCHA kód


Recommended Posts

Posted

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!

Posted

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.

Posted

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">';

Posted

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.

Posted

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.

Posted

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!

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...