1

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>

4 Answers4

0

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">';
Latheesan
  • 23,247
  • 32
  • 107
  • 201
0

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]
Community
  • 1
  • 1
Martijn
  • 15,791
  • 4
  • 36
  • 68
0

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" />';
Pete
  • 57,112
  • 28
  • 117
  • 166
0

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>
Daan
  • 2,680
  • 20
  • 39
  • Not worth a downvote, but: IMO html-attributes should always be wrapped in double quotes, your example uses singles. Almost everything you find on the internet is double, and IMO you should not use both (so, pick 1->double) – Martijn May 02 '14 at 12:16
  • Could be preference, in my opinion you should always use double quotes and use single quotes if you use another language. So main language here is PHP, HTML is echo'd out, so you should use a single quote for HTML. Weren't sure if it actually mattered, seems like it doesn't. – Daan May 02 '14 at 12:17