Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с фотоальбомом!
 
 автор: Artemy   (15.11.2004 в 17:48)   письмо автору
 
 

Тут загрузил на хост Ваш фотоальбом, но он неработает, дома делал, с PHP 5.0.1 всё работает, а у них стоит 4.0.какой-то, может ли быть в этом причина?

Да, я его не много усовершенствовал, с помощью JavaScripts, в итоге пропадает нужда использвать 2 страницы (photo.php and show.php).
По-моему так проще.
В странице photos.php изменяем строку
$image = "<a title='Увеличить фотографию' target=_blank href='photo.php?img=".$par['big']."' target=_blank><img border=0 src=".$par['small']."></a>";

на
$size_img = getimagesize($filename);
    // Вызываем с помощью ява-скрипта новое окно с изображением и закрываем текущее окно.
    $image = "<a title='Увеличить фотографию' onclick=\""."pic('".$par['big']."','".$size_img[0]."','".$size_img[1]."','".$par['name']." - Фотоальбом','#FFFFFF','hug image','0');return document.MM_returnValue"."\" href='javascript:;'><img border=0 src=".$par['small']."></a>";

а блок <head></head> вставляем сам скрипт
<SCRIPT language=JavaScript>
<!--
function pic (imageName,imageWidth,imageHeight,alt,bgcolor,hugger,hugMargin) {
// by E Michael Brandt of ValleyWebDesigns.com - Please leave these comments intact.
// version 3.0.4  

    if (bgcolor=="") {
        bgcolor="#FFFFFF";
    }
    var adj=10
    var w = screen.width;
    var h = screen.height;
    var byFactor=1;

    if(w<740){
      var lift=0.90;
    }
    if(w>=740 & w<835){
      var lift=0.91;
    }
    if(w>=835){
      var lift=0.93;
    }
    if (imageWidth>w){    
      byFactor = w / imageWidth;            
      imageWidth = w;
      imageHeight = imageHeight * byFactor;
    }
    if (imageHeight>h-adj){
      byFactor = h / imageHeight;
      imageWidth = (imageWidth * byFactor);
      imageHeight = h; 
    }
       
    var scrWidth = w-adj;
    var scrHeight = (h*lift)-adj;

    if (imageHeight>scrHeight){
        imageHeight=imageHeight*lift;
      imageWidth=imageWidth*lift;
    }

    var posLeft=0;
    var posTop=0;

    if (hugger == "hug image"){
      if (hugMargin == ""){
        hugMargin = 0;
      }
      var scrHeightTemp = imageHeight - 0 + 2*hugMargin;
      if (scrHeightTemp < scrHeight) {
        scrHeight = scrHeightTemp;
      } 
      var scrWidthTemp = imageWidth - 0 + 2*hugMargin;
      if (scrWidthTemp < scrWidth) {
        scrWidth = scrWidthTemp;
      }
      
      if (scrHeight<100){scrHeight=100;}
      if (scrWidth<100){scrWidth=100;}

      posTop =  ((h-(scrHeight/lift)-adj)/2);
      posLeft = ((w-(scrWidth)-adj)/2);
     }

    if (imageHeight > (h*lift)-adj || imageWidth > w-adj){
        imageHeight=imageHeight-adj;
        imageWidth=imageWidth-adj;
    }
    posTop = parseInt(posTop);
    posLeft = parseInt(posLeft);        
    scrWidth = parseInt(scrWidth); 
    scrHeight = parseInt(scrHeight);
    
    var agt=navigator.userAgent.toLowerCase();
    if (agt.indexOf("opera") != -1){
      var args= new Array();
      args[0]='parent';
      args[1]=imageName;
      var i ; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
    } else {
    newWindow = window.open("vwd_justso.htm","newWindow","width="+scrWidth+",height="+scrHeight+",left="+posLeft+",top="+posTop);
    newWindow.document.open();
    newWindow.document.write('<html><title>'+alt+'</title><body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" bgcolor='+bgcolor+' onBlur="self.close()" onClick="self.close()">');  
    newWindow.document.write('<table width='+imageWidth+' border="0" cellspacing="0" cellpadding="0" align="center" height='+scrHeight+' ><tr><td>');
    newWindow.document.write('<img src="'+imageName+'" width='+imageWidth+' height='+imageHeight+' alt="Щелкните, чтобы закрыть!" >'); 
    newWindow.document.write('</td></tr></table></body></html>');
    newWindow.document.close();
    newWindow.focus();
    }
}
//-->
</SCRIPT>

Вот и всё!
Вы можете сказать именно из-за этого и не работает, но нет со стандарным видом то же не фурычит! :)

   
 
 автор: cheops   (15.11.2004 в 17:59)   письмо автору
 
   для: Artemy   (15.11.2004 в 17:48)
 

Посмотрите на хостинге список расширений, которые он поддерживает или спросите в службе поддержки имеется ли у них GDLib и какая версия? А Фотогалерея что-нибудь пишет и как проявляется её неработа?

   
 
 автор: glsv (Дизайнер)   (15.11.2004 в 21:49)   письмо автору
 
   для: Artemy   (15.11.2004 в 17:48)
 

>Да, я его не много усовершенствовал
Да, можно и так. Нам просто не очень хотелось для каждой отображаемой фотографии вызывать

$size_img = getimagesize($filename);

И формировать страницу Ява-скриптом ()

document.write('<html><title>….........
………………………….


Вот и вынесли эти участки кода в отдельные файлы.

Как и сказал cheops для того, что мы понять почему он не работает нужно знать какие ошибки он выдает.

   
 
 автор: Artemy   (16.11.2004 в 11:56)   письмо автору
 
   для: glsv (Дизайнер)   (15.11.2004 в 21:49)
 

Простите, так увлёкся рассказом об изменении, что забыл написать это!

Во-первых, при отрытии фотогалерии выводиться описание фото, но нет самой фото, если открыть HTML , то ячейка где должна быть фотография пустая, я попросил админов поставить GDLib, они поставили, но все-равно ничего не работает, во-вторых в папке files не создаётся ни сама копия фото, ни уменьшенная копия фото, но в БД создаются записи, и имена копий фото!

Здесь можно посмотреть http://www.boxer-dmk.ru/photo/

   
 
 автор: Artemy   (18.11.2004 в 10:12)   письмо автору
 
   для: Artemy   (16.11.2004 в 11:56)
 

Может кто-нибудь поможет?!

   
 
 автор: cheops   (18.11.2004 в 12:22)   письмо автору
 
   для: Artemy   (18.11.2004 в 10:12)
 

А права доступа на папку где хранятся фотографии выставлены нормально? Т.е. туда скрипты фотогалереи могут писать?

   
 
 автор: Artemy   (18.11.2004 в 12:37)   письмо автору
 
   для: cheops   (18.11.2004 в 12:22)
 

ЗАРАБОТАЛО!
Я сейчас поставил права доступа 0777, а какие надо поставить чтобы всё работало и было защищено!

   
 
 автор: cheops   (18.11.2004 в 14:31)   письмо автору
 
   для: Artemy   (18.11.2004 в 12:37)
 

Лучше 744 или 700, если скрипт выполняется от имени владельца директории, если нет, тогда наверное придётся поставить что-то вроде 666 или (777 для директории).
Вы можете сами подобрать нужные вам права доступа - они обсуждаются по ссылке ниже.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=158

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования