我試圖添加驗證碼到我的註冊表單。圖像被渲染得很好,除了會話變量始終是空的,所以它不會在所有工作..PHP驗證碼 - 會話始終爲空
我使用下面的類:http://www.ejeliot.com/pages/php-captcha
根據文檔我不得不作出一個PHP包含以下內容的文件:
<?php
require('classes/PhpCaptcha.php');
$aFonts = array('fonts/VeraBd.ttf', 'fonts/VeraIt.ttf', 'fonts/Vera.ttf');
$oVisualCaptcha = new PhpCaptcha($aFonts, 200, 60);
$oVisualCaptcha->SetBackgroundImages('captchaimgbg.jpg');
$oVisualCaptcha->Create();
?>
並將此作爲圖像加入。
現在我查看了Create();函數,並在此函數中另一個名爲GenerateCode()的函數;被調用,它負責生成字母並將其放入會話變量中。
的代碼如下:
function GenerateCode() {
// reset code
$this->sCode = '';
// loop through and generate the code letter by letter
for ($i = 0; $i < $this->iNumChars; $i++) {
if (count($this->aCharSet) > 0) {
// select random character and add to code string
$this->sCode .= $this->aCharSet[array_rand($this->aCharSet)];
} else {
// select random character and add to code string
$this->sCode .= chr(rand(65, 90));
}
}
// save code in session variable
if ($this->bCaseInsensitive) {
$_SESSION[CAPTCHA_SESSION_ID] = strtoupper($this->sCode);
} else {
$_SESSION[CAPTCHA_SESSION_ID] = $this->sCode;
}
}
的CAPTCHA_SESSION_ID是在類文件的頂部限定。 在我的索引中我有session_start(); ,我仔細檢查了這一點,這不是問題。即使我在create()方法中手動添加$ _SESSION ['bla'] ='bla',也是如此,$ _SESSION總是空的。功能,它不顯示。
有沒有人有一個想法是什麼導致這一點,或者我做錯了什麼?
謝謝!
您是否已經完成了將要放入會話的變量的轉儲?它們是空的嗎? –