2015-09-02 132 views
4

您好我有一些PHP腳本,顯示了基於客戶的IP國旗顯示PHP頁面的圖像

flags.php

<? 
require 'ip.php'; 
$ip=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=ip_info("$ip", "Country Code"); 

//header('Content-type: image/gif'); 
$file_to_check="flags/$two_letter_country_code.gif"; 
if (file_exists($file_to_check)){ 
    print "<img src=$file_to_check width=30 height=15><br>"; 
} 
else{ 
    print "<img src=flags/noflag.gif width=30 height=15><br>"; 
} 

然後在我的索引頁,我沒有

index.php

<img src="http://ip.dxing.si/flags/flags.php"> 

當我單獨運行腳本時,它顯示標誌很好,但是當我想在另一個頁面上顯示它時,它不起作用。

Here是腳本,here是破損圖像的索引頁。

+0

就包括你的'flags.php'在'index.php',你應該罰款 – Daan

回答

1

你不應該包含你的PHP文件在img標籤的src屬性,僅僅只包含PHP文件(和它呼應了img標籤)

的index.php

include 'flags.php'; //this will echo the entire img-tag 

或者使你的flags.php讀取並回顯整個標誌圖像。或者讓它回顯url(但是你可以直接運行它作爲一個函數,而不需要把它作爲一個單獨的文件保存)

0

這是因爲flags.php文件實際輸出的內容,因爲路徑是正確的包含文件但不包含index.php

它正在創建一個完整的img標記,而在索引文件中,您僅將它用作src屬性。

將flags.php更改爲 $ file_to_check =「flags/flags/$ two_letter_country_code.gif」; 如果(file_exists($ file_to_check)){ 打印$ file_to_check「; }其他{ 打印 」標誌/標誌/ noflag.gif「; }

+0

這是行不通的,它返回:標誌/SI.gif當我單獨訪問腳本,但是當我訪問索引頁時,它仍然是破碎的圖像(我不知道他們是如何做到這一點的e:http://www.shorter.in/#flag) – user3368585

+0

啊,那就是錯誤的路徑。我已經編輯了我的答案以解決此問題,但是如果您希望它對兩個文件都起作用,則需要爲圖像文件使用絕對路徑。 –

0

Flags.php返回img標籤,而不是SRC。

在index.php文件必須不加<img src="http://ip.dxing.si/flags/flags.php">,只是http://ip.dxing.si/flags/flags.php