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を次のように指定すると$imgpath =base_url()."images/".$value;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); ?> … />する必要がある場合に使用します。

それとは別に、attributes: を引用して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 に答える