用php链接图像显示外来字符

时间:2012-11-29 16:27:03

标签: php html database

我正在编写用于显示数据库中特定图像的php代码:

    $imageid=$_GET['id'];
    $sql="SELECT * FROM image_try where id=$imageid";
    $result= mysql_query($sql);


   while($row = mysql_fetch_array($result)){

   echo '<img src=/new/uploaded/"'.$row['name'].'" />';}

但是当我检索图像时,我在链接中看到了外来字符! 如何删除这些垃圾[%22]?

result

3 个答案:

答案 0 :(得分:1)

尝试

    $imageid=$_GET['id'];
    $sql="SELECT * FROM image_try where id=$imageid";
    $result= mysql_query($sql);


   while($row = mysql_fetch_array($result)){

   echo '<img src=/new/uploaded/'.$row['name'].' />';}

删除引号(“)符号或将符号放在src=

之后
 $imageid=$_GET['id'];
    $sql="SELECT * FROM image_try where id=$imageid";
    $result= mysql_query($sql);    

   while($row = mysql_fetch_array($result)){

   echo '<img src="/new/uploaded/'.$row['name'].'" />';}

但绝不要在制作中使用这样的代码:

  1. 这不安全(看看“SQL Injuction”)
  2. 不要SELECT * FROM table_name。使用SELECT column1, colum2 FROM table_name
  3. 时,性能会更好
  4. 不推荐使用Mysql模块。最好使用PDO mysql module page MySQL API comparison

答案 1 :(得分:1)

%22是ASCII字符的URL编码“(双引号)。从您调用图像的代码中取出不必要的双引号,并将它们放在它们所属的位置。

答案 2 :(得分:0)

您可以通过URL编码和解码来完成此操作

要对网址进行编码,您可以使用urlencodeurldecode进行解码

警告您的代码容易受到SQL Injection

的攻击

您还在使用已弃用的mysql_*函数,因此请使用PDOMysqli

一些好的读物:

  1. Pdo for beginners ( why ? and how ?)
  2. PDO Tutorial for MySQL Developers