1

これがどのように機能するかを完全に理解しているかどうかはわかりません。Web サイトのフォームの場合、ランダムなキャプチャ イメージを生成し、フォームと共に表示したいと思います。したがって、理想的には、これらの線に沿ったものが欲しいです:

<form action="post.php" method="post">
  ...
  <?php create_captcha(); ?>
</form>

PHPで画像リソースを作成する関数がありますが(リンク

function create_captcha() {
  $w = 60; $h = 30;
  $img = imagecreatetruecolor($w, $h);
  ...
  //header("Content-Type: image/jpeg");
  imagejpeg($img);
}

その画像を HTML フォームの一部として Web サイトに直接出力する方法がよくわかりません。私の疑いは、それを一時ファイルに保存してから、Web サイトにcaptcha.jpg生成する必要があるということです。<img src="captcha.jpg" />

一時的な画像を使わずにもっとエレガントな方法はありますか?

4

2 に答える 2

3

キャプチャ生成ファイル パスを IMG タグのソースとして使用する

<img src="http://domain.com/your-captcha_generating-file-path" />
于 2013-07-11T13:20:13.713 に答える
3

次のようなことができます。

function getCaptcha() {

    // Begin output buffering
    ob_start();

    // generate the captcha image in some magic way
    $w = 60; $h = 30;
    $img = imagecreatetruecolor($w, $h);
    imagejpeg($img);

    // and finally retrieve the byte stream
    $rawImageBytes = ob_get_clean();

    return "<img src='data:image/jpeg;base64," . base64_encode( $rawImageBytes ) . "' />";
}

img タグで Base64 でエンコードされたデータ ソースを使用すると、一時ファイルを保存する必要がまったくなくなります。

于 2013-07-11T13:24:20.813 に答える