2

登録フォームにキャプチャを追加しようとしています。セッション変数が常に空であることを除いて、画像は問題なくレンダリングされているため、まったく機能しません。

私は次のクラスを使用しています: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();
?>

そして、これを画像として含めます。

ここで、iveは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は常に空です。機能、それは表示されません。

誰かがこれを引き起こしているのか、私が間違っているのかを知っていますか?

ありがとう!

4

1 に答える 1

6
<?php

session_start();
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();

?>

変数session_start()にアクセス/設定するすべてのページのコードの先頭からセッションを開始する必要があります。$_SESSION

于 2012-12-31T16:05:09.013 に答える