ratosluaf
3.11.2012, 13:42:17
Witam, na mojej stronie wdarły się do tekstu spacje, i za cholerę nie wiem, gdzie one są.
Adres:
http://aterium.plChodzi mi o spacje nad górnym panelem (szukaj, rejestracja, logowanie)
Nie wiem, gdzie one mogą być. Czy ktoś wie, jak to zlokalizować?
binprogrammer
3.11.2012, 13:49:29
Tymczasowe rozwiązanie: możesz dodać do css
#body_container2 {
margin-top: -18px;
}
ale nie wiem czy to będzie zgodne ze standardem, ponieważ nie optymalizuję kodu
edit: nie mogę znaleźć źródła problemu

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
3.11.2012, 13:59:47
Tymczasowe rozwiązanie nie zadziała, ponieważ po wejściu do forum, wątku wszystko jest ok.
zegarek84
3.11.2012, 14:00:42
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
3.11.2012, 14:08:38
Co do tymczasowego rozwiązania to daj do index.php, ale do index.php tylko (chyba w MyBB się tak dało

)
#body_container2 {
margin-top: -18px;
}
ratosluaf
3.11.2012, 14:08:52
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
3.11.2012, 14:16:07
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
3.11.2012, 14:19:13
Zupełnie ciebie nie zrozumiałem.
W index.php nie ma żadnego echo, po usunięciu '?>' nic się nie zmienia.
zegarek84
3.11.2012, 14:28:10
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
3.11.2012, 14:39:53
Mam coś takiego:
function parse_page($contents)
{
global $lang, $theme, $mybb, $htmldoctype, $archive_url, $error_handler;
$contents = str_replace('<navigation>', build_breadcrumb
(1
), $contents); $contents = str_replace('<archive_url>', $archive_url, $contents);
if($htmldoctype)
{
$contents = $htmldoctype.$contents;
}
else
{
$contents = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n'.$contents;
}
$contents = str_replace("<html", "<html xmlns=\"http://www.w3.org/1999/xhtml\"", $contents);
if($lang->settings['rtl'] == 1)
{
$contents = str_replace("<html", "<html dir=\"rtl\"", $contents); }
if($lang->settings['htmllang'])
{
$contents = str_replace("<html", "<html xml:lang=\"".$lang->settings['htmllang']."\" lang=\"".$lang->settings['htmllang']."\"", $contents); }
if($error_handler->warnings)
{
$contents = str_replace("<body>", "<body>\n".$error_handler->show_warnings(), $contents); }
return $contents;
}
Co tu jest nie tak?
adamantd
3.11.2012, 15:07:08
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
3.11.2012, 15:11:52
Błąd, poprawione. Nadal jest źle.
Nie wiem, gdzie tego szukać
Daiquiri
3.11.2012, 18:46:50
Ratosluaf, następnym razem stosuj odpowiednie tagi do tematu i do prezentowania kodu (php)
ratosluaf
3.11.2012, 21:55:20
@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.