2010-10-22 62 views
0

編輯PHP會議及表格

我怎麼能改寫爲POST [ '語']這個PHP代碼==會議[ '語']?

psuedo-code 

//process_form.php 

PHP 
session_start() 

IF POST SUBMIT 
    IF empty text1 && empty text2 
     echo error msg, include HTML FORM 

    ELSE IF empty radiobtn 
     echo error msg, include HTML FORM 

    ELSE IF 
     isset POST[phrase] isstring POST[phrase] isset SESSION[phrase] 
     strlen POST[phrase] > 0 strlen SESSION[phrase] > 0 
     POST[phrase] == SESSION[phrase] 

     SQL INSERT 

    ELSE 
     echo POST[phrase] 
     echo SESSION[phrase] 

ELSE 
    include HTML FORM 
/PHP 

 

FORM

PHP 
PEAR CAPTCHA Settings ... 
require_once 'Text/captcha.php' 
/PHP 

HTML 
FORM METHOD POST process_form.php 
    text1 
    text2 
    radio 
    PHP echo [ img src= sha1(session_id()) . '.png?' . time() ] /PHP 
    submit 
/HTML 
+0

您可以使用驗證碼:http://www.google.com/recaptcha – lam3r4370 2010-10-22 21:04:53

+0

決不包括頁面到「設計」。但相反,請將HTML模板包含到PHP頁面中。有這樣一個包含頁面沒有任何意義。直接訪問頁面。並讓他們使用模板。請參閱http://stackoverflow.com/questions/3988627/using-template-on-php/3989380#3989380您將不會遇到任何關於標題,會話,驗證碼的問題,無論 – 2010-10-22 21:09:56

回答

1

您可以使用此爲您的驗證碼 http://www.desarrolloweb.com/articulos/poner-captcha-en-3-pasos.html

嘗試使用實施驗證碼,而不是做你的,因爲是更可能這些驗證碼是經過嚴格測試的流。

我不確定是否在某些html代碼正確後放置session_start()。由於我remenber你收到一個錯誤,如「頭已發送」。檢查只是爲了確保

乾杯。

+0

RDAM是否正確。如果您使用的是基於Cookie的會話(而不是基於URL的會話),則需要在任何HTML輸出前調用session_start()(http://us.php.net/manual/en/function.session -start.php)。 – 2010-10-22 22:23:21

+0

我重新措辭了我所得到的。 – rrrfusco 2010-10-26 08:14:49

0

如果你願意潛入一些Zend Form(這是值得的),看看這個答案的Default_Form_ReCaptcha。下面是如何使用它沒有ZF堆棧:

$form = new Default_Form_ReCaptcha(); 
if (! empty($_POST)) { 
    if ($form->isValid($_POST)) { 
     // valid captcha was entered! 
     $values = $form->getValues(); // all form values 
    } 
} 
$formHtml = (string)$form; 
+0

我試圖對我的問題更具體。 – rrrfusco 2010-10-26 08:15:11