{"id":357,"date":"2009-04-14T23:14:29","date_gmt":"2009-04-14T22:14:29","guid":{"rendered":"http:\/\/www.plagosus.net\/blog\/?p=357"},"modified":"2010-12-02T12:01:45","modified_gmt":"2010-12-02T11:01:45","slug":"ispravljanje-krive-drine","status":"publish","type":"post","link":"https:\/\/www.plagosus.net\/blog\/dev\/php-programiranje\/ispravljanje-krive-drine\/","title":{"rendered":"Ispravljanje krive Drine \u2013 LAMP i problem sa belinama"},"content":{"rendered":"<p style=\"text-align: justify;\">Pro\u0161le no\u0107i sam izgubio 4h na debagovanje i modifikaciju koda koji je bio ispravan, ali nije radio &#8211; a ja sam jedva provalio o \u010demu se radi. Glavni krivac bio je Windows, a \u0161ta se desilo, kako sam otkrio o \u010demu se radi i kako sam problem re\u0161io, sazna\u0107ete vrlo brzo \ud83d\ude42 Naime, razre\u0161enje ove misterije nije i\u0161lo gore pomenutim redosledom, pa upravo zato i re\u0161ih da svoje iskustvo podelim sa ostatkom svet.<\/p>\n<p style=\"text-align: justify;\">Pretpro\u0161le no\u0107i krenuh u realizaciju jednog mog mini WEB projekta. Kako su pitanju XHTML\/CSS + PHP\/MySQL tehnologije, krenuo sam sa radom u lokalu. Startovah <a href=\"http:\/\/en.wikipedia.org\/wiki\/LAMP_(software_bundle)\" target=\"_blank\"><acronym title=\"Linux Apache MySQL PHP\">LAMP<\/acronym><\/a> pa se bacih na izradu baze i <em>back panel<\/em>-a. Zaklju\u010dno sa sistemom za logovanje korisnika, privedoh rad kraju za taj dan (no\u0107 zapravo) pa sam sve do tada ura\u0111eno oka\u010dio na server. Probao sam skriptu i sve do tada implementirano je radilo bez ikakvih problema.<\/p>\n<p style=\"text-align: justify;\">Onda pro\u0161le no\u0107i re\u0161ih da malo sredim kod, formatiranje  i komentare, pa sam sve ponovo svuk&#8217;o u lokal, sredio i vratio online. Jedina razlika bila je \u0161to sam ovog puta radio sa <a href=\"http:\/\/en.wikipedia.org\/wiki\/WAMP\" target=\"_blank\"><acronym title=\"Windows Apache MySQL PHP\">WAMP<\/acronym><\/a>-om na ma\u0161ini sa Windowsom. Ni\u0161ta zna\u010dajno nisam menjao \u0161to se koda ti\u010de, ali ipak re\u0161ih da jo\u0161 jednom proverim da li je sve ok. Kad imam \u0161ta i da vidim: na svakom fajlu pucaju neke funkcije (2-3 uproseku). Od svega su se najvi\u0161e bunile sesije (kreiranje i promena podataka). Tu je krenulo 4h pakla sa istra\u017eivanjem \u0161ta ta\u010dno ne radi i za\u0161to se od jednom buni, a prethodnog dana je radilo.<\/p>\n<p style=\"text-align: justify;\">Probao sam sve i sva\u0161ta. \u010cak sam i potpuno promenio sistem za logovanje. Menjao pam\u0107enje nekih stvari u cookie umesto u sesiju i sva\u0161ta drugo \u0161to mi je palo na pamet. No na kraju je ipak negde pucalo. Onda re\u0161ih da sklonim komentare sa po\u010detka fajla, jer sam \u010ditao da neke PHP funkcije moraju biti apsolutno na po\u010detku koda (iako su u demo primerima, \u010dak i u dokumentaciji, radile i ako pre njih ima belina ili komentara). Iz web-editora sam otvorio, izmenio i sa\u010duvao svaki fajl ponaosob, posle \u010dega je, na moje zaprepa\u0161\u0107enje, sve ponovo proradilo bez ikakvih gre\u0161aka. U neverici sam ponovo vratio komentare, kako bih bio siguran da je do toga, no i dalje je sve radilo. Nekoliko minuta sam gledao u kod i \u010de\u0161kao se po glavi dok se nisam setio sli\u010dnih problema jednog prijatelja. <a title=\"IE7 puca sa JavaScript-om\" href=\"http:\/\/sudologic.blogspot.com\/2009\/04\/ie7-goes-kaboom-on-cr-lf-issues.html\" target=\"_blank\">Branku je pucao <acronym title=\"Internet Explorer 7\">IE7<\/acronym><\/a> prilikom izvr\u0161avanja JavaScript-a pisanog na Windows platformi, pa sam pomislio da i ovde <a href=\"http:\/\/en.wikipedia.org\/wiki\/Newline\" target=\"_blank\">CR-LF<\/a> pravi probleme.<\/p>\n<p style=\"text-align: justify;\">Ovu teoriju sam eksperimentalno dokazao na slede\u0107i na\u010din: Prvo sam sve fajlove upload-ovao preko <acronym title=\"File Transfer Protocol\">FTP<\/acronym>-a (text-modom) gde sistem autoamtski sre\u0111uje <acronym title=\"End Of Line\">EOL<\/acronym>. Pokrenuo sam skriptu sa servera i nije bilo nikakvih gre\u0161aka. Zatim sam iste fajlove arhivirao i ponovo upload-ovao (ovaj put kao jednu arhivu, binarnim modom) pa otpakovao na serveru. Prilikom pokretanja skripte, ponovo su se javile misteriozne gre\u0161ke o nemogu\u0107nosti pokretanja sesija.<\/p>\n<p style=\"text-align: justify;\">Suma sumarum: Ukoliko se bavite <a href=\"http:\/\/sr.wikipedia.org\/wiki\/%D0%A0%D0%B0%D0%B7%D0%B2%D0%BE%D1%98_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D1%81%D0%BE%D1%84%D1%82%D0%B2%D0%B5%D1%80%D0%B0\" target=\"_blank\">WEB development<\/a>-om i radite pod Windows-om, imajte na umu da je ve\u0107ina WEB servera pod nekim UNIX-olikim operativnim sistemom (Linux, BSD, Solaris, MacOS&#8230;) te da je preporu\u010dljivo da svoje fajlove spakujete u odgovaraju\u0107i format kako ne bi dolazilo do ovakvih problema. Sa druge strane, ako radite u Linux okru\u017eenju, a koristite komponente koje su razvijala tre\u0107a lica, obavezno proverite da li su sami fajlovi sa\u010duvani na odgovaraju\u0107i na\u010din. Na taj na\u010din u\u0161tede\u0107ete vreme i sebi i drugima ukoliko do\u0111e do ovakvih problema.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pro\u0161le no\u0107i sam izgubio 4h na debagovanje i modifikaciju koda koji je bio ispravan, ali nije radio &#8211; a ja&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[148],"tags":[46,45,47],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/posts\/357"}],"collection":[{"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/comments?post=357"}],"version-history":[{"count":0,"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/posts\/357\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/media?parent=357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/categories?post=357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.plagosus.net\/blog\/wp-json\/wp\/v2\/tags?post=357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}