简体   繁体   中英

Echo not displaying image correctly

Part of the code that's supposed to display an image:

$userav = getUserAvatar($_SESSION['login']);
$image1 = '<img src="$userav" alt="avatar.gif" width="80" height="80"/>';
echo '<span class="devpanellog">userav: '.$userav.'</span>';
?>
<div style="position:absolute; top:3px; left:3px; font-size: 12">
    <?php
    echo $image1;
    ?>
</div>

With $userav being userav: /wamp/www/graphics/avatars/defaultavatar.gif, the files exists there, there's nothing wrong with the image itself.

And the image that's being echo'ed: http://prntscr.com/3ffb0j

I ran out of ideas, for now at least.

I have tried using /www/graphics/avatars and /graphics/avatars as the path to the dir but it didn't work either.

The script that's supposed to display the image is located in a different subfolder, /www/scripts/somescript.php while images are in /www/graphics/

After you noticed the pathetic fails I haven't noticed I fixed it to (also tried the other anwsers)

$image1 = '<img src="'.$userav.'" alt="avatar.gif" width="80" height="80"';

and it still doesn't display the image.

Fixed. The solution was wrong quotes, missing />(edit - it works even without /> lol) and wrong path.

Some random function($pathtoavatars = "/graphics/avatars/")


$userav = getUserAvatar($_SESSION['login']);
$image1 = '<img src='.$userav.' alt="avatar.gif" width="80" height="80"';
echo '<span class="devpanellog">userav: '.$userav.'</span>';
?>
<div style="position:absolute; top:3px; left:3px; font-size: 12">
    <?php
    echo $image1;
    ?>
</div>

This will never work:

$image1 = '<img src="$userav" alt="avatar.gif" width="80" height="80"';

Do this instead:

$image1 = '<img src=" /graphics/avatars/'. $userav .'" alt="avatar.gif" width="80" height="80">';

You are you single quotes , Single quotes mean literal display (the $var instead of its value).

To remedy this, you do this:

$image1 = '<img src="'.$userav.'" alt="avatar.gif" width="80" height="80" />';
      ---------------^^    ---^^

You can see the syntax highlighting change. Also, you forgot to close the image-tag :)

A topic with a more detailed explanation:
What is the difference between single-quoted and double-quoted strings in PHP?


Some examples:

$var = "Hello";
echo 'Say $var World'; // screen will say [Say $var World]
echo "Say $var World"; // screen will say [Say Hello World]
echo 'Say '.$var.' World'; // screen will say [Say Hello World]
echo "Say ".$var." World"; // screen will say [Say Hello World]

your image variable is wrong try:

$image1 = '<img src="' . $userav . '" alt="avatar.gif" width="80" height="80" />';

Also your $userav variable is wrong - you'll just need the path from your webroot so assuming your web root is www you just need the /graphics/avatars/defaultavatar.gif part of it

Or you could try

$image1 = '<img src="' . str_replace($_SERVER['DOCUMENT_ROOT'], '', $userav) . '" alt="avatar.gif" width="80" height="80" />';

Not sure but I think you should change the quotation marks from ' to " and vice versa. You didn't close the image tags and also, I think you don't input the image right.

Try this:

$userav = getUserAvatar($_SESSION['login']);
$image1 = "<img src='" . $userav . "' alt='avatar.gif' width='80' height='80'>";
echo "<span class='devpanellog'>userav: " . $userav . "</span>";
?>
<div style="position:absolute; top:3px; left:3px; font-size: 12">
    <?php
    echo $image1;
    ?>
</div>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM