1

どこで間違いを犯したのかわかりませんhttp://localhost/image.php?application=first。すべてから以下のコードを実行すると問題ありません。

session_start();
$name = $_GET['application'];   

$text = rand(10000,99999); 
$_SESSION['application'][$name] = $text;

$height = 25; 
$width = 65; 
$image_p = imagecreate($width, $height); 
$black = imagecolorallocate($image_p, 0, 0, 0); 
$white = imagecolorallocate($image_p, 255, 255, 255); 
$font_size = 14; 

imagestring($image_p, $font_size, 5, 5, $text, $white); 
imagejpeg($image_p, null, 80);

しかし、私がこれのためにコードを変更したとき

if (isset($_GET['application']) && !empty($_GET['application'])) {
    if (isset($_GET['image']) && $_GET['image'] == 'get'){
    session_start();
    $name = $_GET['application'];   

    $text = rand(10000,99999); 
    $_SESSION['application'][$name] = $text;

    $height = 25; 
    $width = 65; 
    $image_p = imagecreate($width, $height); 
    $black = imagecolorallocate($image_p, 0, 0, 0); 
    $white = imagecolorallocate($image_p, 255, 255, 255); 
    $font_size = 14;
    imagestring($image_p, $font_size, 5, 5, $text, $white); 

    imagejpeg($image_p, null, 80);
}
}

次に、ブラウザでRAW形式を取得するので、追加します

header('Content-type: image/jpeg'); 
imagejpeg($image_p, null, 80);

コードにアクセスすると、画像が中断されたというメッセージが表示されますが、ドライブに保存してIrfanViewから起動すると、正常に開きます。

機能をテストしていたことを付け加えたいのですがob_start()、何も変わりませんでした。

4

2 に答える 2

2

この URL にアクセスすると、うまく機能します。

http://localhost/image.php?application=first&image=get

image.php で使用している正確なコードは次のとおりです。

if (isset($_GET['application']) && !empty($_GET['application'])) {
    if (isset($_GET['image']) && $_GET['image'] == 'get'){
        session_start();
        $name = $_GET['application'];   

        $text = rand(10000,99999); 
        $_SESSION['application'][$name] = $text;

        $height = 25; 
        $width = 65; 
        $image_p = imagecreate($width, $height); 
        $black = imagecolorallocate($image_p, 0, 0, 0); 
        $white = imagecolorallocate($image_p, 255, 255, 255); 
        $font_size = 14;
        imagestring($image_p, $font_size, 5, 5, $text, $white); 

        header('Content-type: image/jpeg');
        imagejpeg($image_p, null, 80);
    }
}

?>
于 2012-06-14T17:17:17.143 に答える
0

わかりました。require 'common.php'問題は、メインの IF ステートメントの前に追加したことです。私のコード全体はこのようなものでした

<?php
require 'common.php';
    if (isset($_GET['application']) && !empty($_GET['application'])) {
    if (isset($_GET['image']) && $_GET['image'] == 'get'){
        session_start();
        $name = $_GET['application'];                   $text = rand(10000,99999);             $_SESSION['application'][$name] = $text;
            $height = 25;             $width = 65;             $image_p = imagecreate($width, $height);             $black = imagecolorallocate($image_p, 0, 0, 0);             $white = imagecolorallocate($image_p, 255, 255, 255);             $font_size = 14;
        imagestring($image_p, $font_size, 5, 5, $text, $white);                 header('Content-type: image/jpeg');
        imagejpeg($image_p, null, 80);
    }
.
.
.

だから私がrequireを他の場所に移動したとき、すべてがうまくいきました!助けてくれてありがとう!:)

于 2012-06-15T21:07:44.943 に答える