2011-12-15 47 views
0

我是PHP新手,我有这个功课要做。老师要求我们向用户显示一个应该如下所示的问候消息:图片不出现

良好(早/晚/夜),用户名,实际日期(从系统中获取)。

PHP:

$username = "Foo"; 

if (date("H") > 0 && date("H") < 12) { 
    $msg = "Good day"; 
    $image = "r_sun"; 
} 
else if (date("H") >= 12 && date("H") < 18) { 
    $msg = "Good evening"; 
    $image = "sun"; 
} 
else { 
    $msg = "Good Night"; 
    $image = "moon"; 
} 

if (date("d") == 1) { 
    $c = "st"; 
} 
else if (date("d") == 2) { 
    $c = "nd"; 
} 
else if (date("d") == 3) { 
    $c = "rd"; 
} 
else { 
    $c = "th"; 
} 

echo $msg . "<img src='images/" . $image . ".png' border='0' />, " . $username . "! Today is " . date("F") . " " . date("d") . $c . ", " . date("Y"); 

我的问题是与图像。根据显示的信息(早上好,晚上或晚上),我必须显示3个不同的图像。出于某种原因,图片不会加载在页面上。

+0

目录`图像`与文件是否相同,图像的名称是否正确? – 2011-12-15 17:41:05

+1

嘿,图片是否存在于你的文件夹中? – ajreal 2011-12-15 17:41:42

+1

我的代码位于路径www/admin,图像位于www/images。这是问题吗?是的,他们存在! – VoteMeUp 2011-12-15 17:43:35

回答

2

你有你的src属性images路径之前添加../这样的:

<img src='../images/" . $image . ".png' border='0' /> 

这意味着你的image路径不是在相同的目录中的脚本,就像你做的事情。

加,只是一个尖,将date值上的变量:

$h = date("H"); 
$d = date("d"); 

if ($h > 0 && $h < 12) { 
    $msg = "Good day"; 
    $image = "r_sun"; 
} 

if ($d== 1) { 
    $c = "st"; 
} 

将清除代码;)基于以上的评论

0

我的代码在路径www/admin和图像在www /图像

这听起来像img标记只需稍作调整。试试这个:

echo $msg . "<img src='../images/" . $image . ".png' border='0' />, " . $username . "! Today is " . date("F") . " " . date("d") . $c . ", " . date("Y"); 

关键的区别是将../添加到路径的开始。这是一个relative path指定,它指示浏览器在查找指定的路径/文件之前上一个目录。

请注意,这不是专门针对PHP代码的问题。该代码正确发出了有效的img标记。问题在于该路径指向不存在的文件(www/admin/images/filename)而不是(www/images/filename)。

0

您指定img src的方式,images必须与您的脚本存在于同一个目录中(或者如果您在HTML头中设置了basehref)。先检查一下。

其次,检查images目录的权限。它必须至少是世界可执行的(0711)。

第三,检查图像文件的权限。它们必须至少是世界可读的(0644)。