2016-11-12 3 views
0

ist das Stück von meinem Code aus index.php:Wie man PHP im img src Tag anruft? Diese

<div class="row"> 
<?php 
    $conn = mysql_connect("localhost","root",""); 
    mysql_select_db("imdb_db"); 
    $res = mysql_query("select * from `film` ORDER BY ID DESC"); 
    while($row = mysql_fetch_array($res)) { 
     ?><div class='col-xs-2'><?php 
     ?><p style="position:relative;left:-40px"><?php echo $row["Cim"];?></p><?php 
     ?> <img src="php/imageView.php?ID=<?php echo $row["ID"];?>" class="img-responsive" style="width:200px;height:250px;" alt="Image"> <?php 
     ?></div><?php 
    } 
    mysql_close($conn); 
?> 
</div> 

Dies ist imageView.php:

<?php 
    $conn = mysql_connect("localhost","root",""); 
    mysql_select_db("imdb_db") or die(mysql_error()); 
    if(isset($_GET['ID'])) { 
     $sql = "SELECT `Boritokep` FROM `film` WHERE ID=". $_GET['ID']; 
     $result = mysql_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysql_error()); 
     $row = mysql_fetch_array($result); 
     echo $row["Boritokep"]; 
    } 

    mysql_close($conn); 
?> 

Und das ist das Ergebnis:

enter image description here

Mit php/imageView.php?ID=<?php echo $row["ID"] erhalte ich den Pfad meiner Datei:

uploads/film/pic/5.jpg 

Warum wird das Bild nicht angezeigt?

+2

a) warum die * was * öffnen Sie einen PHP-Tag und wieder schließen, ohne zwischendurch etwas zu tun? b) Ihr Code ist anfällig für SQL-Injection. Stellen Sie sich vor, jemand fragt nach der ID '1; DROP TABLE Film' c) Verwenden Sie nicht mysql, es ist veraltet und in PHP7, entfernt, verwenden Sie stattdessen mysqli oder pdo. –

Antwort

2

Warum wird das Bild nicht angezeigt?

Weil php/imageView.php?ID=<?php echo $row["ID"];?> den Pfad eines Bildes zurückgibt und das Bild nicht zurückgibt.

imageView.php kann diesen Weg nehmen und die User-Agenten, um es umleiten:

header(sprintf('Location: %s', $row["Boritokep"]));