0

我在这个 foreach 中从数据库中获取图像路径

foreach($image as $row){ 
  $value = $row['dPath'];
  $imgpath =base_url()."images/".$value;//this is not taken
  $imgpath =  base_url()."images/con_icon.jpg";//this$imgpath is taken

  echo $value;

当我给 $imgpath 作为 $imgpath = base_url()."images/con_icon.jpg"; 它被接受

<img src="<?php echo $imgpath; ?>" and image is displayed

$imgpath =base_url()."images/".$value; 但是当我将 $imgpath 作为echo $value;结果时 con_icon.jpg 图像不显示是什么问题

编辑:

echo $imgpath =base_url()."images"."/".$value;
 echo $img =  base_url()."images/con_icon.jpg";

给了我这个

http://localhost/ssit/images/con_icon.jpg
http://localhost/ssit/images/con_icon.jpg 

那为什么我不能在我的<img>

<img src="<?php echo $imgpath; ?>" name=b1 width=90 height=80 
 border=0 onmouseover=mouseOver() onmouseout=mouseOut()>
4

2 回答 2

3

确保您$value的前端或末尾不包含额外的空格。采用

$value = trim($value);

删除空格。也不echo是快速调试变量的最佳方法,请var_dump改用。

请确保转义您的图像路径以防止 XSS

编辑

你不能说<img src="<?php echo $imgpath; ?>" name=b1 width=90 height=80 border=0 onmouseover=mouseOver() onmouseout=mouseOut()>,因为你的字符串末尾有空格。<img src="<?php echo trim($imgpath); ?> … />如果您必须以这种方式使用它,请使用它。

除此之外,请引用您的属性:onmouseover="mouseOver",不要在事件处理程序名称后使用括号(除非mouseOver()返回一个函数——我认为您没有这样做……)。并且您应该使用urlencode您的图像路径,以锁定所有那些想要伤害您的用户的恶意黑客

于 2010-05-11T07:11:52.767 回答
0

确保它$value不是空的:

var_dump($value);

另外,你可以试试这个:

$imgpath = get_bloginfo('template_url') . "/images/" . $value;
于 2010-05-11T07:13:32.357 回答