Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Na stronie wkradł się tekst
Forum PHP.pl > Forum > Po stronie przeglądarki
ratosluaf
Witam, na mojej stronie wdarły się do tekstu spacje, i za cholerę nie wiem, gdzie one są.
Adres: http://aterium.pl
Chodzi mi o spacje nad górnym panelem (szukaj, rejestracja, logowanie)

Nie wiem, gdzie one mogą być. Czy ktoś wie, jak to zlokalizować?
binprogrammer
Tymczasowe rozwiązanie: możesz dodać do css

  1. #body_container2 {
  2. margin-top: -18px;
  3. }


ale nie wiem czy to będzie zgodne ze standardem, ponieważ nie optymalizuję kodu

edit: nie mogę znaleźć źródła problemu sad.gif może sprawdź w logach ostatnie modyfikacje MyBB (w panelu admina jest takie cos), może jakiś admin się bawił przez PA i zostało to zapisane?
ratosluaf
Tymczasowe rozwiązanie nie zadziała, ponieważ po wejściu do forum, wątku wszystko jest ok.
zegarek84
zaraz za początkiem body a przed komentarzem html - w operze można live zmieniać źródło strony i zastosować zmiany...

swoją drogą mozilla dziwnie zinterpretowała źródło - w firebugu title i inne poleciały do body - ale suma sumarum to mozilla na opensuse mi się już sypie ;D

// edit
jednak spacje masz przed DOCTYPE ;p - zastosowanie zmian spowodowało tylko reinterpretację html... gdzies w php masz echo lub za późno zaczyna Ci się znacznik <?php
być może w jakimś kontrolerze lub modelu... lub nie potrzebnie stosujesz domknięcia ?> w kontrolerze, modelu i za nim masz spację - widoki jeśli korzystasz z framworka są buforowane, a takie dodatkowe echo nie...
binprogrammer
Co do tymczasowego rozwiązania to daj do index.php, ale do index.php tylko (chyba w MyBB się tak dało biggrin.gif)

  1. <style type="text/css">
  2. #body_container2 {
  3. margin-top: -18px;
  4. }
ratosluaf
Nie mogę tego znaleźć nigdzie.

Dodatkowo:
jeśli jestem gościem, to odstęp jest tylko w indeksie

jeśli jestem userem, to odstęp jest wszędzie
zegarek84
masz to gdzieś na domyślnym routingu - prawdopodobnie kontroler Index, akcja Index (chyba, że ustawiłeś inną domyślną akcję - zresztą nie wiem z czego korzystasz) - idź tą drogą, sprawdź kontrolery, modele wywoływane w tych akcjach domyślnych czy znacznik otwierający <?php nie jest za późno, oraz na końcu tych plików usuń znaczniki domykające interpretację php czyli usuń ?> gdyż za nim możesz mieć spację... w tych plikach też kliknij crlt+f i poszukaj echo - jeśli gdzieś masz odkomentowane to zakomentuj lub usuń... w niektórych framworkach da się jeszcze czyścić bufor przed wyświetleniem widoku, być może to też podejdzie pod wyłączenie wyświetlania błędów...

// edit - to co pisałem, sprawdź przedewszystkim domyślny kontroler, akcję to tylko echo, wywoływane modele i to co mówiłem, w plikach nie widoków nie zamykaj interpretacji PHP
ratosluaf
Zupełnie ciebie nie zrozumiałem.

W index.php nie ma żadnego echo, po usunięciu '?>' nic się nie zmienia.
zegarek84
ale wywołujesz inne klasy i albo korzystasz z jakiegoś framworka albo nie... i dalej albo ręcznie sam inkludujesz pliki z definicją innych klas albo masz autoloader - najprawdopodobniej spację masz na początku lub na końcu pliku z definicją jakiejś wywoływanej klasy po drodze...

// edit
wszystko co masz przed <?php lub po ?> to tak jakbyś na tym wykonał echo....
ratosluaf
Mam coś takiego:
  1. function parse_page($contents)
  2. {
  3. global $lang, $theme, $mybb, $htmldoctype, $archive_url, $error_handler;
  4.  
  5. $contents = str_replace('<navigation>', build_breadcrumb(1), $contents);
  6. $contents = str_replace('<archive_url>', $archive_url, $contents);
  7.  
  8. if($htmldoctype)
  9. {
  10. $contents = $htmldoctype.$contents;
  11. }
  12. else
  13. {
  14. $contents = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n'.$contents;
  15. }
  16.  
  17. $contents = str_replace("<html", "<html xmlns=\"http://www.w3.org/1999/xhtml\"", $contents);
  18.  
  19. if($lang->settings['rtl'] == 1)
  20. {
  21. $contents = str_replace("<html", "<html dir=\"rtl\"", $contents);
  22. }
  23.  
  24. if($lang->settings['htmllang'])
  25. {
  26. $contents = str_replace("<html", "<html xml:lang=\"".$lang->settings['htmllang']."\" lang=\"".$lang->settings['htmllang']."\"", $contents);
  27. }
  28.  
  29. if($error_handler->warnings)
  30. {
  31. $contents = str_replace("<body>", "<body>\n".$error_handler->show_warnings(), $contents);
  32. }
  33.  
  34. return $contents;
  35. }


Co tu jest nie tak?
adamantd
Dlaczego w 9 linijce zamknąłeś pojedynczym cudzysłowem a nie podwójnym od razu za znakiem nowej lini?

$contents = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n'.$contents;
ratosluaf
Błąd, poprawione. Nadal jest źle.

Nie wiem, gdzie tego szukać sad.gif
Daiquiri
Ratosluaf, następnym razem stosuj odpowiednie tagi do tematu i do prezentowania kodu (php)
ratosluaf
@up: okej

@topic: Problem wywoływały 2 pluginy, może dlatego, że to był gdzieś ukryty malutki znaczek 'bom'?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.