2011-12-15 44 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)。