2013-02-15 3 views
0

Я пытаюсь скрыть URL-адрес сайта на основании условия, что результат запроса либо пуст, либо равен загрузке/но я не могу заставить его работать.php условие не работает

У меня в основном есть таблица MySQL, в которой есть поле, называемое файлом, теперь один пользователь отправляет форму, поле файла не требуется, но оно сохраняет «upload /» в базе данных. Например, если я отправить форму в два раза, один с вложенным файлом и 2-й один без вложений, моя таблица будет выглядеть следующим образом:

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

спасибо за все ответы, я думаю, что я мог бы быть сонным, чем я думал, что пропустил это. –

ответ

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/") 

в основном переводится как «Установить значение $ файла, чтобы„загрузить“, а затем проверить, если это имеет значение. Конечно, всегда будет иметь значение в этой точке и, следовательно, возвращает истину.

Вы должны использовать операции сравнения

if ($filename == "upload/") 

Проблемы, как этот урожай до всех слишком легко из-за = и == быть настолько похожи. Некоторые программисты следовать соглашению сдачи значение, которое не может изменить (константы, литералы, вызовы функций и т. д.) слева, так что если они cidentally type = вместо == программа будет выходить из строя, вместо того, чтобы показывать поведение, которое вы наблюдаете, делая поиск таких ошибок намного проще.

if ('upload/' == $filename) 

Если вы случайно написать

if ('upload/' = $filename) 

затем PHP попытается присвоить новое значение постоянной. Это, очевидно, не удастся, и ваш PHP-скрипт завершится с фатальной ошибкой, указывающей, где именно произошла ошибка. Поиск и исправление этого становится довольно простым.

+0

+1 для обоснования условий Йоды –

Смежные вопросы