1

content-type:image/jpeg を使用して「student_picture.php」ページを作成しました。同じページに他のテキストを追加したいときに問題があります..

ここに私のコードのサンプルがあります:

<?php
session_start();

if(!isset($_SESSION["StudentNo"])){
    header("location:login.php");
}

$StudentNo = $_SESSION['StudentNo'];

require("includes/connection.php");

$sql = "SELECT StudentPicture from dbo.Students where StudentNo = '$StudentNo'";
$stmt = sqlsrv_query( $conn, $sql );

if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
    $img = $row['StudentPicture'];

    if ($img == null ) {
        echo "<img src='img/default_pic.gif'>";
    } else {
        $img =  trim($img);
        header('Content-Type: image/jpeg');
        echo $img;
    }

    echo $StudentNo;
}
?>

画像は正常に表示されていますが、エコー $StudentNo が表示されていません。前もって感謝します。

4

4 に答える 4

1

、または私が知っている他の種類の画像形式を使用している間Content-Typeは、テキストを表示できないと思います。テキストは、または などの例外image/jpegでのみ表示できます。text/?application/pdf

PHPファイルを使用しているときに別のページに画像を表示する方法がわからない場合は、次を使用してください。

<img src="path/to/yourphpfile.php" />

他の画像と同じように。

それが役に立ったことを願っています。

于 2012-09-04T06:53:17.370 に答える
0

はクライアント ブラウザに送信されるexitため、スクリプトを作成する必要があります。headerが存在しない場合$_SESSION["StudentNo"]、スクリプトは処理を行い、画像を出力しようとします。

<?php
    session_start();
    if(!isset($_SESSION["StudentNo"])){
        header("location:login.php");
        die();
    }

そして、それは画像を出力する適切な方法でecho "<img src='img/default_pic.gif'>";header('Content-Type: image/jpeg');ありません。そのヘッダーなしで戻るか、画像を読むかのどちらかです。

if ($img == null){
    $img = 'img/default_pic.gif';
} else {
    $img =  trim($img);
}

header('Content-Type: image/jpeg');
readfile($img);

または、ヘッダータグを失います

if ($img == null){
    $img = "<img src='img/default_pic.gif'>";
} else {
    $img = "<img src='".trim($img)."'>";
}
echo $img;

したがって、スクリプトは次のようになります。

<?php
    session_start();
    if(!isset($_SESSION["StudentNo"])){
        header("location:login.php");
        die();
    }
    $StudentNo = $_SESSION['StudentNo'];

    require("includes/connection.php");

    $sql = "SELECT StudentPicture from dbo.Students where StudentNo = '$StudentNo'";
    $stmt = sqlsrv_query( $conn, $sql );
    if( $stmt === false) {
        die( print_r( sqlsrv_errors(), true) );
    }

    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
        $img = $row['StudentPicture'];
        if ($img == null){
            $img = "<img src='img/default_pic.gif'>";
        } else {
            $img = "<img src='".trim($img)."'>";
        }
        echo $img;
        echo $StudentNo;
    }
?>

DB接続内の機能はわかりませんが、それ$row = sqlsrv_fetch_row( $stmt, SQLSRV_FETCH_ASSOC);なしでmakeのようなものを使用する必要があると思いますwhile

于 2012-09-04T06:43:39.293 に答える