2013-02-15 98 views
0

我試圖隱藏網站上的一個網址,條件是查詢結果爲空白或等於上傳/但我似乎無法使其工作。php條件不起作用

我基本上有一個名爲file的字段的MySQL表,現在用戶提交表單,文件字段不是必需的,但它會保存數據庫上的「upload /」。例如,如果我提交表單兩次,一次以文件附件和不帶附件:第二個,我的表看起來就像這樣:現在

fileID | filename 
1  | upload/file1.txt 
2  | upload/ 

,我的網頁上,我只希望它顯示結果,如果有文件上傳,但我似乎無法使其工作。以下是我已經試過:

if ($filename = "upload/") { 
    echo "No file uploaded"; 
} else { 
    echo "<div class='span2' style='padding-left:10px;'><a href='".$filename."'>Download Attachment</a></div>"; 
} 

但echo'es了「不上傳的文件」不管我有一個文件上傳或不。

+0

感謝所有的回覆,我想我可能會比我想象中的那麼難以入睡。 – 2013-02-15 07:42:22

回答

3

使用相等運算符的==代替=

if ($filename == "upload/") { 
echo "No file uploaded"; 
}else { 
    echo "<div class='span2' style='padding-left:10px;'><a href='".$filename."'>Download Attachment</a></div>"; 
} 
3

您正在使用賦值運算符而不是等號運算符。

更改第一行:

if ($filename == "upload/") { 
2

你做的一項任務。

if ($filename = "upload/") 

基本上轉化爲「$文件名的值設置爲‘上傳’,然後檢查是否有一個值。當然,它總是會在這一點上有一個值,因此返回true。

你需要使用比較操作這樣突然出現的太容易

if ($filename == "upload/") 

問題,是由於=和==是如此的相似。有些程序員遵循將不能更改(常量的值的慣例,文字,函數調用等),如果他們交流而不是==程序會錯誤地輸出,而不是展示你正在觀察的那種行爲,使得發現這樣的錯誤變得容易很多。

​​

如果你不小心寫

if ('upload/' = $filename) 

那麼PHP將嘗試分配一個新值不變。這顯然會失敗,並且您的PHP腳本將以致命錯誤終止,並確切地告訴錯誤發生的位置。找到並修復它變得非常容易。

+0

+1用於推理Yoda條件 – 2013-02-15 07:45:46