Mały błąd wielka strata

Ależ mnie dziś przeszkoliło. Po reinstalacji systemu zainstalowałam sobie nowsze wersje prawie wszystkiego. Między innymi EasyEclipse zamiast Eclipse, oraz nową wersję xamppa. Potem motałam w mojej instalacji xamppa, bo chciałam sobie skonfigurować debugera. Kiedy uruchomiłam skrypt nad którym pracuję okazało się, że nie jest on interpretowany prawidłowo. Fragmenty kodu php w template, w ogóle się nie wykonywały.

Oczywiście godzina była późna, ja zmęczona i w takim stanie zaczęłam szukać problemu. Mój stan szybko przeszedł do stanu lekkiej paniki. Wreszcie zarzuciłam wszelkie działania i poszłam spać.

Dziś rano na wszelki wypadek reinstalacja xamppa, bo doszłam do wniosku, że coś w nim namotałam za ostro. Po reinstalacji problem oczywiście nie raczył samoistnie zniknąć. Wtedy nastąpiło olśnienie. Parser ignorował fragmenty kodu otoczone znacznikami <? ?>, natomiast poprawnie wykonywał kod otoczony znacznikami <?php ?>

No pomroczność jasna. Odetchnęłam z ulgą i w te pędy w pliku php.ini ustawiłam wartość ‘short_open_tag’ na ‘On’. Ale co to? Jakiś błąd z bazą? Jak to nie ma bazy? Przecież zrobiłam kopię? Czyżbym w szaleńczym transie reinstalacji ją usunęła? Naprawdę?

Teraz przez takie dwa głupie znaczki <? i ?> stracę dzień czy dwa na odtwarzaniu struktury danych. Nic już więcej nie pisze tylko zabieram się do roboty.

19 komentarzy do wpisu „Mały błąd wielka strata”

  1. Vokiel: Nie doczytałeś. Ja zrobiłam backup ale go w tej zawierusze skasowałam.

    scanner: rozwiniesz czy rzucisz linkiem? Bo mi się w template podobają short_open_tag, kiedy wstawki php są niewielkie w porównaniu z reszta kodu.

  2. korzystanie z short_open_tag to nie jest dobre rozwiązanie właśnie dlatego, że MOŻE nie zadziałać przy pewnych ustawieniach serwera. wiem, że czasem te trzy znaczki “php” to zbyt dużo, ale naprawdę warto się przyzwyczaić. ja w szablonach używam języka szablonów, bo korzystam z OPTa, więc nie mam tego problemu.

  3. Drogi kochany notatniko, jako biedny student z trudem poszerzajacy swoje kompetencje w programowaniu php itd itd. pragne cie poprosic o notke o zasadnosci uzywania debugera, zasadzie dziala i instalacji.

    Do tego pory debuguje swoje skrypty dwoma poleceniami

    die() i print_r()

  4. Och. Naprawdę trzeba Cię przekonywać o zasadności? Ja wygodna jestem więc używam narzędzi wygodnych dla mnie. Po co mam wstawiać printy i jeszcze zgadywać gdzie mam je wstawić skoro mogę sobie prześledzić jak leci skrypt i jakie wartości przyjmują zmienne?

  5. istnieje sytuacja, że nie będzie można wymusić, bo nie zawsze masz dostępny serwer na którym można ustawiać sobie dowolnie zmienne w php.ini. życzę ci oczywiście, żebyś zawsze miała serwer spełniający wymagania Twojego kodu, ale naprawdę, powinno się go pisać w taki sposób, aby działał na jak największej możliwej liczbie miejsc.

  6. chyba ci się machnęły posty, bo odpowiedziałaś mi w innym. :)

    w kwestii odpowiedzi – co prawda flaga short_open_tag ma status PHP_INI_ALL według manuala php [http://www.php.net/manual/en/ini.list.php], czyli może być zmieniana za pomocą dyrektyw htaccessa, jednak mogą one [te dyrektywy :)] zostać zablokowane w httpd.conf, do którego masz zwykle dostęp jedynie na własnym dedyku albo czymś podobnym, tak więc ISTNIEJE sytuacja w której nie będziesz miała dostępu do takich rzeczy i skrypt się po prostu nie wykona, co więcej zostanie wypluty na wyjście jako tekst, więc przy okazji ktoś będzie mógł podejrzeć twój kod. ew dostaniesz błąd Internal Server Error [500] :)

    oczywiście no offence, nie chcę tutaj zaczynać flame’a, tylko informuję, uczmy się nawzajem od siebie.

    co do bloga – w jaki sposób wyświetlić listę postów, bo jak klikam w “strona główna” to wyświetla mi się stona “o blogu”

  7. Linka niestety nie dam – ale dam doświadczenie – nie raz i nie dwa godzinami szukałem błędu w naprawdę skomplikowanym kodzie naszych mentaxowych aplikacji, po czym okazywało się, że jeden z nas sobie wymyślił, że te trzy znaczki to za dużo.

    Jakoś tworząc plik XML, nie skracasz raczej <?xml do <?, nieprawdaż?

  8. Tomku, nie chodzi rzecz jasna o flame’a, tylko naukę. Nigdy nie robiłam z siebie guru PHP i jestem otwarta na sugestie. Wynik będzie taki sam jeśli zastosujemy ini_set()?

    Scanner, nie skraca, w XML. Może dlatego, że używam ich sporadycznie :)

    Matipl, to nawracaj, tylko konkretnie :)

  9. tak, dyrektywa php_flag z htaccessa to właśnie coś w stylu wywołania ini_set(); w kodzie php, wynik w każdym razie będzie ten sam.

    szkoda, że nie mogę wyświetlić sobie listy postów, bo przekopałem się i tak przez twojego bloga, miałbym łatwiej. :) rozumiem, że ustawiłaś w wordpressie stronę “o blogu” jako stronę główną? ja wolę jednak listę postów, tak jak mam u siebie [zapraszam :)].

  10. No to może przyjdzie mi przemyśleć rozstanie z short_open_tag. Kto wie?

    Co do ustawień mojego bloga, to rzeczywiście. Tak właśnie mam ustawioną stronę główną. Jakoś tak wolę :) W ukłonie dla użytkowników poszukujących odblokowałam kalendarz i archiwum w panelu bocznym.

  11. @Joanna skasowany backup to już nie jest backup, to wspomnienie po nim.

    Wracając do short_open_tag, jak poprzednicy, chociaż czasem mi się zdarza użyć, ale się wystrzegam. A jak sięgam do starszego kodu, w którym są, to przydatnym jest narzędzie wielokrotnej zmiany znajdź

    zastąp

  12. Nie mniej jednak mam zwyczaj backupy wykonywać :) Za dużo w moim życiu zależało od wyrobienia sobie tego zwyczaju, jeszcze zanim zanim zaczęłam się parać programowaniem w php :)

  13. Dokładnie, short_open_tag to złłło ;) niektórzy mają je wyłączone w php.ini – gorzej jak na serwerze nie możesz dać własnego php.ini, ale dodatkowo short_open_tag mają nie długo zniknąć ;)

Leave a Reply