• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:kcaptchaで画像が表示されません。)

kcaptchaで画像が表示されないときの対処法

このQ&Aのポイント
  • kcaptchaという画像認証を導入しようとしていますが、画像が表示されずにエラーが出ています。原因としてはimgタグのソース部分に誤りがある可能性があります。
  • 画像表示部分のソースコードは以下のようになります。
  • <form action="index.php" method="post"> <p>Enter text shown below:</p> <p><img src="./kcaptcha.php?<?php echo session_name()?>=<?php echo session_id()?>"></p> <p><input type="text" name="keystring"></p> <p><input type="submit" value="Check"></p> </form> imgタグのソース部分がうまく機能していないため、修正が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • tumeno
  • ベストアンサー率41% (5/12)
回答No.2

以下の部分、 <img src="./index.php?... 1)htmlは関係なしで、単純にindex.phpを起動して画像は出ますよね。 2)html設置場所からindex.phpのパス関係を./部分で調整して画像が出ませんか。

uewouuc73jmmdjd
質問者

お礼

tumenoさんご回答ありがとうございます! >1)htmlは関係なしで、単純にindex.phpを起動して画像は出ますよね。 これがでないのですが原因が究明できずにいます>< 出ないということはパス以前の問題ですね。。。 index.phpにアクセスすると クローム,safariでは真っ白 firefoxでは「画像ファイル○○はこわれているため表示できませんでした」 operaでは画像 IEでは×印 画表示されます。 調査するとHeader(“~というのが原因だとあるのですが どう修正すればいいのかまだわかりません。 Headerの記述はkcaptcha.phpに以下のような記述があります。 header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', FALSE); header('Pragma: no-cache'); if(function_exists("imagejpeg")){ header("Content-Type: image/jpeg"); imagejpeg($img2, null, $jpeg_quality); }else if(function_exists("imagegif")){ header("Content-Type: image/gif"); imagegif($img2); }else if(function_exists("imagepng")){ header("Content-Type: image/x-png"); imagepng($img2); } このような状況です。 たびたび恐縮ですがまたなにかありましたら ご助言をお願いいたします。

その他の回答 (1)

  • tumeno
  • ベストアンサー率41% (5/12)
回答No.1

exampleで記述があるように、 ./kcaptcha.php 部分を ./index.php にしては! (パスも確認して)

uewouuc73jmmdjd
質問者

お礼

tumenoさんご回答ありがとうございます。 >exampleで記述があるように こちらはform_example.phpでよろしかったでしょうか? 以下のように書き換えてテストしてみましたがだめでした。 ■form_example.php ----------------------------------------- <form action="./index.php" method="post"> <p>Enter text shown below:</p> <p><img src="./index.php?<?php echo session_name()?>=<?php echo session_id()?>"></p> <p><input type="text" name="keystring"></p> <p><input type="submit" value="Check"></p> </form> <?php if(count($_POST)>0){ if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){ echo "Correct"; }else{ echo "Wrong"; } } unset($_SESSION['captcha_keystring']); ?> ちなみに画像の部分のソースをfirebugで見ると <img src="index.php?PHPSESSID=乱数 という形でソースが生成されており、 サーバのセッション格納フォルダにも乱数のファイル (上のソースとはまた違う乱数) ファイルが生成されている状態です。 たびたび恐縮ですがまた何かお心あたりが ございましたら書き込みのほうをお願いいたします。

関連するQ&A