1

根本的な原因を見つけることができないように見える非常にイライラする問題を経験しています。ここにある単純なキャプチャを実装しようとしています: https://github.com/claviska/simple-php-captcha

コードは github から変更されておらず、指示に従って私の Web サイトに追加されています。IE 8 を使用すると、画像が壊れた画像として表示されますが、ページを更新 (F5) すると、画像が魔法のように表示されます。Firefox と Chrome、さらには Safari でさえ、画像の表示に問題はありません。Webページに入ったときに壊れていると表示される理由がわかりません。私は研究に数日を費やしましたが、かなり迷っています。

どんな助けでも大歓迎です。

編集: 私は php ログをよく見ていて、関数が 2 回呼び出されているように見えることに気付きました。ページに入ると、すべて問題なく画像が生成されているようです。ただし、ページに入ってから最終的な読み込みまでの間に関数が再度呼び出され、ブラウザはスクリプトが作成した最初の画像を表示しようとしますが、その画像はその時点で既に破棄されています。これはIEでのみ発生するため、私はとても混乱しています。

テストに使用するコード:

<?php
session_start();
$_SESSION = array();
include("captcha.php");
$_SESSION['captcha'] = captcha();
?>

<html>
<body>
<table>
     <tr>
        <td width="45%"><?php echo ('<img src="' . $_SESSION['captcha']['image_src'] . '" alt="CAPTCHA" />'); ?></p></td>
        <td width="4%">:</td>
        <td><input name="captcha" type="text" id="captcha" required><b><font color="red"> *</font></b></td>
     </tr>
</table>

</body>
</html>
4

1 に答える 1

0

これは勝手な推測であり、うまくいかないかもしれません。コードを次のように変更してみてください。

session_start();
include("captcha.php");
$captcha = captcha();
$_SESSION['captcha'] = $captcha['code'];
session_write_close();

次に、HTML 内で、URL を として参照します$captcha['image_src']。これがセッション ロックの問題ではないことを確認しようとしています。

于 2012-08-27T19:49:12.717 に答える