![]() |
0 Всего найдено: 14
floiren
Сообщение
26/09/2011 06:14
Копия темы
Поможите чем можете! Ошибка в PHP, а проект сдавать сегодня! Не скачиваются файлы, выдается ошибка, такая: Parse error: syntax error, unexpected T_ELSE in /home/a/atkmar/public_html/components/com_phocagallery/views/category/tmpl/download .php on line 15 Код такой: <? $file=$_GET['img']; if (substr($file,0,6)!='images') exit(); if (strpos($file,'.jpeg')===false && strpos($file,'.jpg')===false && strpos($file,'.gif')===false && strpos($file,'.bmp')===false && strpos($file,'.JPG')===false && strpos($file,'.JPEG')===false && strpos($file,'.GIF')===false && strpos($file,'.BMP')===false && strpos($file,'.png')===false && strpos($file,'.PNG')===false && strpos(strtolower($file),'.tiff')===false && strpos(strtolower($file),'.tif')===false) exit(); $last=explode('/',$file); $last=$last[count($last)-1]; header("Content-Description: File Transfer"); if (strpos(strtolower($last),'.jpeg')!==false || strpos(strtolower($last),'.jpg')!==false) {header("content-type: image/jpeg");} else { if (strpos(strtolower($last),'.png')!==false) header("content-type: image/png"); } else { if (strpos(strtolower($last),'.gif')!==false) header("content-type: image/gif"); } else { if (strpos(strtolower($last),'.tif')!==false) header("content-type: image/tif"); } else { if (strpos(strtolower($last),'.tiff')!==false) header("content-type: image/tiff"); } else { if (strpos(strtolower($last),'.bmp')!==false) header("content-type: image/bmp"); } ; header("content-disposition: attachment; filename=$last"); header("Content-Transfer-Encoding: binary"); readfile(" ?>
DCopy
Сообщение
26/09/2011 06:24
Копия темы
Конструкции if else неправильные. Так нельзя писать if (strpos(strtolower($last),'.png')!= =false) header("content-type: image/png"); } else { } Вот как надо писать if (strpos(strtolower($last),'.png')!= =false) { header("content-type: image/png"); } else { } Далее - else if (strpos(strtolower($last),'.bmp')!= =false) { header("content-type: image/bmp"); } вместо else { if (strpos(strtolower($last),'.bmp')!= =false) header("content-type: image/bmp"); }
floiren
Сообщение
26/09/2011 06:29
Копия темы
Спасибо, щас попробую заменить. Я не программист. Мне сделали доработочку, ан не работает. Буду менять!
floiren
Сообщение
26/09/2011 06:38
Копия темы
Ребята, будьте дрУгами! Буду прям супер признательна если мне текст правильный напишете. Я тут правлю конструкции, но видимо, не так, потому что теперь уже на 13 строку ругается.
DCopy
Сообщение
26/09/2011 06:38
Копия темы
Лучше вообще без елс использовать пожалуй... <php? $file=$_GET['img']; if (substr($file,0,6)!='images') exit(); if (strpos($file,'.jpeg')===false && strpos($file,'.jpg')===false && strpos($file,'.gif')===false && strpos($file,'.bmp')===false && strpos($file,'.JPG')===false && strpos($file,'.JPEG')===false && strpos($file,'.GIF')===false && strpos($file,'.BMP')===false && strpos($file,'.png')===false && strpos($file,'.PNG')===false && strpos(strtolower($file),'.tiff')== =false && strpos(strtolower($file),'.tif')=== false) exit(); $last=explode('/',$file); $last=$last[count($last)-1]; header("Content-Description: File Transfer"); if (strpos(strtolower($last),'.jpeg')!= =false) { header("content-type: image/jpeg"); } if (strpos(strtolower($last),'.png')!= =false) { header("content-type: image/png"); } if (strpos(strtolower($last),'.gif')!= =false) { header("content-type: image/gif"); } if (strpos(strtolower($last),'.tif')!= =false) { header("content-type: image/tif"); } if (strpos(strtolower($last),'.tiff')!= =false) { header("content-type: image/tiff"); } if (strpos(strtolower($last),'.bmp')!= =false) { header("content-type: image/bmp"); } ; header("content-disposition: attachment; filename=$last"); header("Content-Transfer-Encoding: binary"); readfile("marriottphoto.ru/$file"); /* выдаем файл */ ?>
floiren
Сообщение
26/09/2011 06:50
Копия темы
Поставила... Ошибку перестал выдавать, но теперь после клика по скачке вываливается просто в белый экран, не предлагает сохранить (((
floiren
Сообщение
26/09/2011 07:06
Копия темы
Адресная строка белого экрана: Функция не срабатывает, видимо. Потому что сам файл есть:
DCopy
Сообщение
26/09/2011 07:16
Копия темы
В начале кода поправьте на <php? на <? или <?php я опечатался сверху :))
BlackOrchidey
Сообщение
26/09/2011 08:49
Копия темы
1. Лучше не вычислять в каждом условии "strpos(strtolower($last)", а организовать переменную, например $extentionFile=strpos(strtolower($last); 2. Солидарна с maksim000 case лучше в данном случае: switch ($extentionFile){ case '.gif': header("content-type: image/gif"); break case '.tif': header("content-type: image/tif"); break ... default: exit() 3. Попробуйте в своем варианте написать не "!= =", а "!=="
koz128901
Сообщение
26/09/2011 10:21
Копия темы
Краткость сестра таланта. <?php function ext($f){return substr(strrchr($f,'.'),1);} $mime["PNG"]="image/png"; $mime["JPEG"]="image/jpeg"; $mime["GIF"]="image/gif"; $mime["JPG"]="image/jpg"; $mime["BMP"]="image/bmp"; $mime["TIFF"]="image/tiff"; $mime["TIF"]="image/tif"; $file=$_GET['img']; if (substr($file,0,6)!='images') exit(); if (array_key_exists(strtoupper(ext($file)),$mime) != true) exit(); $last=explode('/',$file);$last=$last[count($last)-1]; header("Content-Description: File Transfer"); header("content-type: ".$mime[strtoupper(ext($file))]); header("content-disposition: attachment; filename=$last"); header("Content-Transfer-Encoding: binary"); @readfile("marriottphoto.ru/$file"); ?>
koz128901
Сообщение
26/09/2011 10:38
Копия темы
Как-то на Индусско-Китайский код похоже. ИМХО.
floiren
Сообщение
27/09/2011 07:14
Копия темы
0
Спасибо огромное всем! Друзья, спасибо за помощь, и особенно +++ Дмитрию. Спас вчера! |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |