Автор Тема: Галерия - част 3  (Прочетена 57876 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

HD

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 208
  • -Получени: 165
  • Публикации: 3077
Re: Галерия - част 3
« Отговор #45 -: 24 Ноември 2011, 18:13:35 »
Използвайте оцветяването на кода.. Това $pics oт къде ти идва?  Там ти е проблема. Не ти е дефинирано нещо както трябва.

HanKrum

  • Гост
Re: Галерия - част 3
« Отговор #46 -: 24 Ноември 2011, 18:32:27 »
$pics ти идва не като масив или NULL и за това ти дава тази грешка.
Провери го дали е NULL или дали не е масив преди да го дадеш на цикъла.

bgludost

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 41
Re: Галерия - част 3
« Отговор #47 -: 04 Май 2012, 00:10:57 »
имам проблем с показването на снимките.  Не успях да намеря грешка в кода си, но не ми се показват снимките, а си ми стоят с хиксче както като сложиш .htaccess файла. Като му задам директния път в браузера снимката ми се отваря пак с хикс. Даваше ми проблем при директно показване на снимката и заради това съм му сложил header. опитах се да дебъгна с firebug както показа на снимката, нещо не се получава. След които и иф да сложа echo или print_r във firebug в отговор не получавам нищо.
Код: PHP
  1. <?php
  2. include 'common.php';
  3.  if ($_SESSION['is_logged']===true) {
  4.      $pic_id=(int)$_GET['pic_id'];
  5.       if($pic_id>0)
  6.      {
  7.          $rs=run_q('SELECT p.pic_name FROM pictures as p, user_catalogs as uc WHERE
  8.                    p.pic_id='.$pic_id.' AND p.catalog_id=uc.catalog_id AND uc.user_id='.$_SESSION['user_id']);
  9.          $row=mysql_fetch_assoc($rs);
  10.          print_r($row);
  11.          if(strlen($row['pic_name'])>2 &&
  12.                          file_exists('user_pics'.DIRECTORY_SEPARATOR.$_SESSION['user_id'].DIRECTORY_SEPARATOR.$row['pic_name']))
  13.          {  header('Content-Type: image/jpeg');
  14.              readfile('user_pics'.DIRECTORY_SEPARATOR.$_SESSION['user_id'].DIRECTORY_SEPARATOR.'thumb_'.$row['pic_name']);
  15.          }
  16.      }
  17.      $pics=  fetch_all(run_q('SELECT uc.name,p.pic_id,coment FROM user_catalogs as uc,pictures as p
  18.         WHERE uc.user_id='.$_SESSION['user_id'].' AND p.catalog_id=uc.catalog_id'));}
  19.  

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 191
  • Публикации: 3624
Re: Галерия - част 3
« Отговор #48 -: 04 Май 2012, 03:32:03 »
Aми щом не се отваря и директно след като изпишеш пътя в браузъра, има две причини:
1. Или пишеш грешен път към фолдъра със снимката
2. Или снимката е под друго име
Виж си пътищата, във фолдъра със снимките създай някакъв файл, примерно - test.php (сложи му някакво еко) и се опитай да го достъпиш по начина по който достъпваш снимката.
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

bgludost

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 41
Re: Галерия - част 3
« Отговор #49 -: 04 Май 2012, 11:03:21 »
Аз мисля че проблема е друг, защото като опитам директно да въведа в урл пътя и ми излиза букви и цифри разбъркани. Опитах с header('Content-Type: image/jpeg'); както беше писано преди няколко поста тук, но при firefox ми изписва Изображението http://localhost/gallery/get_pic.php?pic_id=5 не може да бъде избрано, защото съдържа грешки , а при IE просто ми показва малка снимка с хиксче. Дали проблема не е в тези хеадъри които трябва да се напишат ?

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 191
  • Публикации: 3624
Re: Галерия - част 3
« Отговор #50 -: 04 Май 2012, 15:21:33 »
Ами дай да погледнем сорса на страницата, за да не стреляме в тъмното.
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

bgludost

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 41
Re: Галерия - част 3
« Отговор #51 -: 04 Май 2012, 18:02:46 »
Когато се опитам да отворя http://localhost/gallery/get_pic.php?pic_id=5 без хедара ми показва това
Код: HTML
  1. Array
  2. (
  3.     [pic_name] => 1336117801_1111.JPG
  4. )
  5. okяШяа�JFIF������яю�>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
  6. яЫ�C�           
  7. 
  8.  $.' ",#(7),01444'9=82<.342яЫ�C                        
  9.  
  10. 2!!22222222222222222222222222222222222222222222222222яА��Ё�И"�яД�����������   
  11. яД�µ���}�!1AQa"q2Ѓ‘Ў#B±БRСр$3br‚     
  12. %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzѓ„…†‡€‰Љ’“”•–—�™љўЈ¤Ґ¦§Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХЦЧШЩЪбвгдежзийкстуфхцчшщъяД��������    
  13. яД�µ��w�!1AQaq"2ЃB‘Ў±Б      #3RрbrС
  14. $4б%с&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ѓ„…†‡€‰Љ’“”•–—�™љўЈ¤Ґ¦§Ё©ЄІіґµ¶·ё№єВГДЕЖЗИЙКТУФХЦЧШЩЪвгдежзийктуфхцчшщъяЪ� ��?�чъ(ўЂ
  15. (ўЂ
  16. (ўЂ
  17. (ўЂ
  18. вuПНЈOtУНo
  19. ґ.Fщѕ?:н«Йьo¦Ё—6­u       “ж…XЯ0шгЇб@¬ю(Е{lУЗu
  20. Є¤®Бв!•c 1#·ЮSѓЙИв¦я�…ЋSGMRWтна9¶sЬЂp88лУ§­yМzќk
  21. ДЦz sБHдiЉоI@Кcw-‰
  22. ‚qЖ9аfы]G6�љ{hІЙhр§оюЫ"Ќp@И=�*r3ђW'µ!к|CG(«q;К!Ш!bБИОc+ЋщЖ:ћЛ{jуZK ЉЌґќ„sЂG^ДAо#ѓ\ —‘M¬нюЛЮehfyWPM¬ЫўЫ…Ь3Њ!sРgw;ђй6Vыmа ‚
  23. д–Ы„T'‘тўЋ=({П]P:QLaEPEPEPEPEPEPEPEPEP^Oв©™|BРmVЋIdvTт„0<єћ ?‡W'�љсMGUУ<M¶№ф¶ђ]$ЌцyмVufЫѓур2№ат>њ�T·‚Ж+™Гѕ�сўЌе!D1>ееЏ™к:cшG<PMіВk§ЙnЄт.Ыx™U      -еЮЂUЋzI㴬ґ­3н±ШjЬН":й±Ѓжs‡ PЬр_Р¬Z%­ґKdъх†ря�3>%VщI”>аћxОеЗS™жAfQ‚кP±Oclџ,Б^8ґaЂ@MАцP0x­€.¤Ѕ№xc—+"UВоќ¬H9г§р‘иjнѕ—б‹ЁФKw§МсЖЉ^[ULЂ7гАйњqZ6–z-јџe±љСQ†w@#�¶q·і“фЗi9++= QTґЌJ-gE±Х WHo-гёЌ\|Б]C�qЯ®ХЂQE�QE�QE�QE�QE�QEвЂ
  24. +3WЧ¬ґD¶{¶l\\ tЫЏѕA#?‚љКµсоЏwЁ%Љ Ґ№feШС—iЪrF@�аg=HЄQ“WH—8§fОўЉИЈ%Q@Яtэ+Г<.ЛeрЏHФеmЈЋ9IIWќ‚ђ#дџ3ЛнРµ{™WНю7рNµрПБKqmг-NеMМpГ-%єВvl!аv©’ёУ±йєN­o=ЬъKЯ[НukЙ¶)$/ећT±nнШKЙb0ЮЇб±a­Zj’DвkY.Sk!+ђm!Sо:‘^?рВMЖєхюЏuв}bЦрОo&o)Д‘ЌЫCЌЬ'ыUЯ‰љ?€~ЪiqЗг-Zц{йf’I„тЕˆ‚<ЖП~}сЪіцo№\З№¦›kїђ±|›ьЮXзvCg9хUг§йK…ј/‘   TЖҐU|щ
  25. гФ‚ШcЙддыЧЌь–уЕЪѕ©o®кЪЕЬPАЏя�iЬG†ЭЊеvЇ_ХѕYЭйwъ~§¬X]ИёЋлыVо_,ънip~†Џdы‡24< я�$уГ_ц
  26. µя�СK]gиZgц/‡ґЭ+ОуѕЕk·›·nэ€v2qњg5Ў[QE�QE�QE�QE�QE�ЙшЇЖћСem#ZЦЫO№љ гЛ
  27. Iѓ(8дКєК§w¤й·Т      nфыYдnщaV8фЙ'mPљєі9&УГЗJН%Ж§k,їj†Vі�‡Ь8bBб›пqђkR3бш™Ъ+kґgыЕm§№П?/<’~¦ґЏ‡46аиъyя�·dя�
  28. tЪњ»B€Fmоd‰GьТ®Srwl�УҐeЗю Zх‚ UЏQ`;› †эvWђш“гw€б¶—Xрю…iэЃЧШMНш>c\ЮFЕђzuйЧ'Щ"Уn rЛ«ЮH1ЃЛ(ъбыкѕBїрыe\И4=wы]µ' 'ЩЏЩЌё^Fqџ3qШ"¤»®ЉЗјшGв?‰Ї|sЁxЕMµ‘іґY;(ЮyD‡Л#;юRћPNzъЧмыCЁџы‡\сбя�tѓcсKU}&ГU±У›LэГjцДHAhIО02NHБыµоЋєёaеЙdЛЬґn§щљdєї€¬“ўФNtщщ?чЕbx’ТЩя�gjє{Ie+оЉИњMs·њз#КQЖNAзБиц№…”%ђ“gЛ&цЖоz®:tпП=)ъ~њ¶q–vуndжYОrзЇrp№' Рf•—V]"ѕf~Ќб›6юmHZЫG}4kyDE$…\{±$ћIф�[ЖъeЌю—e%Э¬SґZ•ђC"ѓЌЧQ>„®ћЄj:|Z•ІA+:ЄO аЎЭ‹"хн•цПJЈ…ўХМ? й:}†»вY­-!ЃЪц8ЙЌqт‹hHГ,Oг]=Uµ°ЉТжцxЩЛ^L&ђ1 #HшцДcсНZ¦ЙH(ўЉC
  29. (ўЂ
  30. (ўЂҐ-PEPEPФQE�QE�QE�QE�QE�QE�QE�•еш№y¬|P“БуipF‰uwЪОHЊ±Cѓм„RAЖ«і*©f ($ц®FСt _ЮjOіЉжЭдho°ЂЬyд;Г«)ЬѓёЋф иw8чЇ:шҐс.гбйТДtW†чОЭѕB»6*г юуѓфR;дz5qt7\ґґыmµµД±3¤i*‚q*т;Ђ‘‰6gЁРшwR}kГZ^«$b'ЅґЉбЈSђҐФ6зWе*“ШҐ±лЉ‡MЋТ
  31. > {([@‚(Ц,mPЈ� p1йSJС¬,eeXрw8ч 4шeс^гЗъНеЊЪTVkojІоIK–}Шn qКаvБдзЏO®'Бъ‹ўj7У[ZiцsцT6кЁ%‰Yќc©*кч)ПA]µ6¬�ьEшЅя�
  32. я�^·У€oьлa?™цЇ+f\caюп_zфИЫtjЮ б<mЎhЪЦ±§KwgevД5¤жD СFY\¶z‚:ЋаЙЖ9®в     b– a‘]S‘JЪRZ(ўЂ
  33. (ўЂ
  34. (ўЂ
  35. (ўЂ
  36. (ўЂ
  37. (ўЂ
  38. (ўЂ
  39. (ўЂ8пЛwГ"«@9lбUІy<{ЏЦ№•єф‚чсNa‚­јї/ж€ЙЙх?Ґz•АђАюPM§h=3Ъ№±i¬Б1љЮЖЙd#–TEcАОNzз'улЃљSеV°*|ЪЮЕЅu(ь8юz2Ьнc
  40. 7QЗЯ=k‰KЙMД¦YЈ†XеBЛpЊе†пќH‚GsП·zх1њ ЋkVіћжн
  41. iц—Q…ᧉX©Ь8Й=Пn:уТ’•µm.s>’цMqVЭs
  42. »y’.нЎ2pyЙЇТ­xЦkё."r¤ЪгЗ;sђqОИиEtzDwСЖйw"н¤#�q“Р‘ФгрпЦ­_›Ѓg'ЩcG›*ёИ?Ёюtskpд·»sО'Ѕ Ў-д†giт«e
  43. З°�№ЗМw зЬсТ»“R_ІІ?Ъц&>`№йхЗoВ›io©Cv<­6ОЭА‘ХUNЬњгзЊ ћз§\t=©№уt^·<І ДH‚K"Cqя�јЋH„…“i`®AЬAЗЅoxA5    /шam°п‘†‡ЫсзЋ�нТµо—Y’y
  44. [[•W""pI^0NOя�ИзZЗн?dЊЭнуИЛћќOJ牢йтлrНQR ўЉ(�ўЉ(�Ж(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ўЉ�(ЕPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPяЩok 2

А като сложа хедара след readfile и отворя отново ми показва
Код: HTML
  1. <html><head><meta content="width=device-width; height=device-height;" name="viewport"><link href="resource://gre/res/TopLevelImageDocument.css" rel="stylesheet"><title>get_pic.php (Изображение JPEG)</title></head><body><img alt="Изображението „http://localhost/gallery/get_pic.php?pic_id=5“ не може да бъде изобразено, защото съдържа грешки." src="http://localhost/gallery/get_pic.php?pic_id=5"></body></html>
Като дам на страницата информация за снимката и ми показва типа и големината на снимката както са си на снимката, но снимката не се показва.

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 191
  • Публикации: 3624
Re: Галерия - част 3
« Отговор #52 -: 04 Май 2012, 18:17:29 »
Wow....@bgludost, такова нещо само в учебниците съм срещал..   ::)
Оправи си енкодинга на редактора да пише на UTF-8 и пренапиши функциите и след това ще говорим отново. 
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

bgludost

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 41
Re: Галерия - част 3
« Отговор #53 -: 04 Май 2012, 18:55:47 »
Нали за това е функцията run_q да оправя инкодинга на UTF8.
Код: PHP
  1. function run_q($sql)
  2. {
  3.     mysql_query('SET NAMES UTF8');
  4. $rs=mysql_query($sql);
  5.     {
  6.     echo mysql_error().' SQL:  '.$sql; }
  7.     return $rs;
Но наистина си прав и IE ми отваря страницата със снимката с Wester Europein и като го прехвърля ръчно на UTF8 ми се показва пак снимка с хиксче и страницата няма source code.

NoBBy

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 4
  • -Получени: 38
  • Публикации: 309
Re: Галерия - част 3
« Отговор #54 -: 04 Май 2012, 19:35:26 »
имам проблем с показването на снимките.  Не успях да намеря грешка в кода си, но не ми се показват снимките, а си ми стоят с хиксче както като сложиш .htaccess файла. Като му задам директния път в браузера снимката ми се отваря пак с хикс. Даваше ми проблем при директно показване на снимката и заради това съм му сложил header. опитах се да дебъгна с firebug както показа на снимката, нещо не се получава. След които и иф да сложа echo или print_r във firebug в отговор не получавам нищо.
Код: PHP
  1. <?php
  2. include 'common.php';
  3.  if ($_SESSION['is_logged']===true) {
  4.      $pic_id=(int)$_GET['pic_id'];
  5.       if($pic_id>0)
  6.      {
  7.          $rs=run_q('SELECT p.pic_name FROM pictures as p, user_catalogs as uc WHERE
  8.                    p.pic_id='.$pic_id.' AND p.catalog_id=uc.catalog_id AND uc.user_id='.$_SESSION['user_id']);
  9.          $row=mysql_fetch_assoc($rs);
  10.          print_r($row);
  11.          if(strlen($row['pic_name'])>2 &&
  12.                          file_exists('user_pics'.DIRECTORY_SEPARATOR.$_SESSION['user_id'].DIRECTORY_SEPARATOR.$row['pic_name']))
  13.          {  header('Content-Type: image/jpeg');
  14.              readfile('user_pics'.DIRECTORY_SEPARATOR.$_SESSION['user_id'].DIRECTORY_SEPARATOR.'thumb_'.$row['pic_name']);
  15.          }
  16.      }
  17.      $pics=  fetch_all(run_q('SELECT uc.name,p.pic_id,coment FROM user_catalogs as uc,pictures as p
  18.         WHERE uc.user_id='.$_SESSION['user_id'].' AND p.catalog_id=uc.catalog_id'));}
  19.  

махни print_r който ти е на 10 ред. Нали пращаш на браузъра картинка, този тектс който ще ти генерира print_r трудно ще стане на валидна картинка

bgludost

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 41
Re: Галерия - част 3
« Отговор #55 -: 04 Май 2012, 21:08:14 »
NoBBy проблема не е там. Първо пробвах без него, но понеже не се получи и го сложих да видя дали имам някакъв проблем със заявката и какво ми показва и си ми показва името на снимката както трябва да е. Но нз къде е проблема и се надявам някои да ми помогне малко.

HD

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 208
  • -Получени: 165
  • Публикации: 3077
Re: Галерия - част 3
« Отговор #56 -: 05 Май 2012, 09:35:40 »
Имаш ли някакъв css  и въобще някакъв front end? Да приемем, че вадиш снимките по някакъв начин, след това по какъв начин ги подреждаш? И това е наистина доста стар код и при това е процедурен. Дай да видим целия код.

bgludost

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 41
Re: Галерия - част 3
« Отговор #57 -: 05 Май 2012, 10:37:18 »
Снимките се подреждат като първо се изписва името на каталога в които са записани и под него самите снимки послед името на др каталог и т.н.
Код: CSS
  1. <div>
  2.     <?php
  3.     $cat='';
  4.     foreach ($pics as $v)
  5.     {  
  6.         if($cat!=$v['name'])
  7.         {echo '<div><h1>'.$v['name'].'</h1></div>';}
  8.        
  9.         echo '<div style="width:100px;margin:10px;">
  10.           <div> <img src="get_pic.php?pic_id='.$v['pic_id'].'"></div>
  11.               <div>'.$v['coment'].'</div>
  12.                </div>'
  13.             ;
  14.     }
  15.    
  16.    
  17.     ?>
  18. </div>
 

bgludost

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 41
Re: Галерия - част 3
« Отговор #58 -: 05 Май 2012, 22:23:14 »
Никой ли не иска да ми помогне за да продължа напред с урока? Няма ли някой работещия код да ми до пеистне тук да видя къде и какво бъркам.

svet1bg

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 1
  • Публикации: 124
Re: Галерия - част 3
« Отговор #59 -: 06 Май 2012, 09:21:09 »
Хващам се на бас по бира че си под Win и ако направиш така :

Код: PHP
  1. file_exists('user_pics/'.$_SESSION['user_id'].'/'.$row['pic_name']))
  2.          {  header('Content-Type: image/jpeg');
  3.              readfile('user_pics/'.$_SESSION['user_id'].'/'.'thumb_'.$row['pic_name']);
  4.  

всичко ще си дойде на мястото   Д Е М О
Прочети това

Или казано по друг начин когато задаваш   УРЛ към снимка или линк ползжаш /           http://87.120.21.49/php/pic/b.jpg  ,
А когато задаваш път към ОС  ползваш DIRECTORY_SEPARATOR за да е преносим на други ОС .


Защото Иван когато е правил уроците ги е правил под Линух а там DIRECTORY_SEPARATOR = /   и УРЛ-то става правилно
а ти или аз когато сме под Уиндоус   DIRECTORY_SEPARATOR = \  и УРЛ-т става  http:\\87.120.21.49\php\pic\b.jpg
« Последна редакция: 06 Май 2012, 11:15:21 от svet1bg »