Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd podczas wchodzenia na stronę.
Forum PHP.pl > Forum > PHP
lukpio3
Witam.
Mam problem ze stroną. Znając życie błąd jest zapewne banalny tylko ja nie potrafię go znaleźć. Generuje go pogodyna (moduł wyświetlający pogodę na stronie) Otóż po wejściu na stronę czasem generowany jest następujący komunikat błędu:


« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »

PHP error debug
Error: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Start tag expected, '<' not found
Error type/ Nr.: Warning - 2
File: /home/users/gminaleszno/public_html/assets/snippets/pogodynka/pogodynka.php
Line: 163
Line 163 source: $pogodaXml = simplexml_load_string($pogodaXml);


Może potraficie jakoś pomóc bo ja w tym pliku pogodynka.php nic nie widzę. Wszystko jest ok. A może błąd jest generowany z innego powodu? Najdziwniejsze jest to że pojawia się to nie raz i zawsze jak odświeżę stroną, wszystko wraca do normy i wyświetla się ona prawidłowo.

Jeszcze wkleję tu zawartość pliku pogodynka.php. W pliku do kodu są porobione komentarze. Ja naprawdę nie wiem co tu może krzaczyć. Może Wy coś podpowiecie (wklejam na inną stronę i daję linka ponieważ tu jak próbuję wkleić to mam błąd że za długi post).

http://wklej.org/id/815579/
abort
CZYTAJ (I ROZUMIEJ!) KOMUNIKATY O BŁĘDACH.

"Start tag expected, '<' not found ".
Funkcja simplexml_load_string() potrzebuje mieć na początku zmiennej znak "<". U ciebie tego nie ma. Dlaczego? Nie wiem.
fander
file_get_contents powinno być używane z stream_context_create jeśli chesz czytać coś "z zewnątrz"
Poniżej masz przykład ze strony PHP
  1. // Create a stream
  2. $opts = array(
  3. 'http'=>array(
  4. 'method'=>"GET",
  5. 'header'=>"Accept-language: en\r\n" .
  6. "Cookie: foo=bar\r\n"
  7. )
  8. );
  9.  
  10. $context = stream_context_create($opts);
  11.  
  12. // Open the file using the HTTP headers set above
  13. $file = file_get_contents('http://www.example.com/', false, $context);


Lepszy rozwiązaniem byłoby przebudowanie metody z użyciem curla.
lukpio3
Cytat(abort @ 21.08.2012, 20:25:08 ) *
CZYTAJ (I ROZUMIEJ!) KOMUNIKATY O BŁĘDACH.

"Start tag expected, '<' not found ".
Funkcja simplexml_load_string() potrzebuje mieć na początku zmiennej znak "<". U ciebie tego nie ma. Dlaczego? Nie wiem.



Ok, tylko nie bardzo wiem gdzie mam ten znak wstawić bo jak teraz przeglądam różne przykłady użycia tej funkcji to nigdzie czegoś podobnego znaleźć nie mogę. Wybaczcie, nie mam praktycznie żadnego doświadczenia w php stąd moje problemy i to pytanie. Ale z drugiej strony, czemu strona zazwyczaj ładuje się normalnie? Bo nie mogę powiedzieć, ona się otwiera, pogodę pokazuje, wszystko jest ok. Działa ładnie tylko raz czy dwa na 10 odświeżeń zdaży się właśnie ten błąd.
kudlatypawelek
Może dane spływające do simplexmla są nieprawidłowe? Raz dostajesz prawidłowo sformatowane dane, a innym razem nie.
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.