Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][MySQL][PHP]Wyświetlanie rss
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Mam taki skrypt odpowiedzialny za rss. Powiem tak jakiś czas temu dzialal bo przeciez nie bede sprawdzal codziennie czy rss dziala.

Teraz pokazuje blad:

  1. Błąd przetwarzania XML: deklaracja XML lub tekstu nie jest na początku jednostki
  2. Obszar: <a href="http://www.xxxxxxxxxxxxx/guest/rss.php" target="_blank">http://www.xxxxxxxxxxxxx/guest/rss.php</a>
  3. Numer wiersza: 2, kolumna 2: <?xml version="1.0" encoding="utf-8"?>
  4. --------^


Kiedyś jak było coś podobnego to chodziło o kodowanie utf ale przeciez nic nie bylo zmieniane jest ustawione kodowanie utf8 bez boom.
Jeszcze gdzies slyszalem ze jakies spacje sa dosc istotne ale nie wiem czy i gdzie ten probolem ew moze byc

Wie ktos o co moze chodzic?
  1. <?php
  2. header("Content-Type: text/xml");
  3. $file='../ustawienia/c_on.fig.php';
  4. if (file_exists($file)) {
  5. include($file);
  6. }
  7. else{
  8. echo "Nie można załączyć $file!";
  9. }
  10. $zapytanie = 'SELECT * FROM news WHERE aktywny="1" ORDER BY data DESC LIMIT 15';
  11.  
  12. $wynik= mysql_query($zapytanie) or die(mysql_error());
  13.  
  14.  
  15. echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n";
  16. echo "<rss version=\"2.0\">\n ";
  17. echo "<channel>\n";
  18.  
  19. echo " <title>Ogłoszenia</title>\n";
  20. echo " <link>Adres URL</link>\n";
  21. echo "<description> </description>\n";
  22. echo "<language>pl</language>\n";
  23. echo "<copyright>Copyright Š Firma</copyright>\n";
  24. echo "<lastBuildDate>".date("r")."</lastBuildDate>\n";
  25. echo "<image>\n";
  26. echo "\t<title>Logo</title>\n";
  27. echo "\t<url>".$hostUrl."/images/logo.png</url>\n";
  28. echo "\t<link>".$hostUrl."</link>\n";
  29. echo "<width>100</width>\n";
  30. echo "<height>100</height>\n";
  31. echo "</image>\n";
  32.  
  33. while($row = mysql_fetch_array($wynik))
  34. {
  35. echo "<item>\n";
  36. echo "<title>".$row["tytul"]."</title>\n";
  37. echo "<author>".htmlspecialchars($row["login"])."</author>\n";
  38. echo "<link>".$hostUrl."/?s=newsc&amp;a=wys&amp;id=".$row["id"]."</link>\n";
  39. echo "<description>".$row["tytul"]."</description>\n";
  40. echo "<pubDate>".date($row["data"])."</pubDate>\n";
  41. echo "</item>\n\n";
  42. }
  43. echo "</channel>\n</rss>\n";
  44.  
  45. ?>
  46.  
  47.  
Go to the top of the page
+Quote Post
com
post
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


do xmla masz np http://php.net/manual/en/book.simplexml.php bo tak to jest szukanie igły w stogu siana (IMG:style_emoticons/default/wink.gif)

z komunikatu o błędzie wynika iż masz coś w pierwszej lini a nie powinno tam być, za komentuj header na chwile i sprawdź (IMG:style_emoticons/default/wink.gif)

Ten post edytował com 29.12.2014, 23:54:14
Go to the top of the page
+Quote Post
viamarimar
post
Post #3





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Nie bardzo wiem jak ma mi to pomoc to simple xml


Cos takiego zwraca:
  1. Adres URL pl Copyright Š Firma Tue, 30 Dec 2014 00:27:12 +0100 http://www.x/images/logo.png http://www.x 100 100 123456 http://x/?s=newsc&a=wys&id=111 Typowy test ogloszenia 2014-12-29 23:02:57 root http://www.x/?s=newsc&a=wys&id=110 test 2014-12-29 14:54:36 root http://www.x/?s=newsc&a=wys&id=109 gfgfdg 2014-12-26 04:03:59 root http://wwwx.pl/?s=newsc&a=wys&id=100 asd 2014-12-18 01:18:44 root http://www.x/?s=newsc&a=wys&id=99 asdasdtest 2014-12-18 01:18:25 root http://www.x/?s=newsc&a=wys&id=98 asdasdasd 2014-12-18 01:18:05

(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif)

Tylko wczesniej byl ten header i dzialalo. On musi tam byc chyab zeby rss dzialal


//jezeli to cos zmienia to tak mi sie zdaje ze jedyna zmiana jaka wproadzalem w pliku to

bylo

  1. $file='ustawienia/c_on.fig.php';


zrobilem bo inna sciezka teraz jest

  1. $file='../ustawienia/c_on.fig.php';


Ten post edytował viamarimar 30.12.2014, 00:24:45
Go to the top of the page
+Quote Post
com
post
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


tak iż zamiast robić echo i pisać to jako tekst zbudujesz całego xmla poleceniami, tak musi być header ale on maskuje błędy, a problemem jest najprawdopodobniej kodowanie

no i wszytko jasne przy tej zmianie zmieniło Ci się kodowanie z utf8 bez bom na te z bom (IMG:style_emoticons/default/smile.gif)

widać to chociażby tutaj :
  1. echo "<copyright>Copyright Š Firma</copyright>\n";
Go to the top of the page
+Quote Post
viamarimar
post
Post #5





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----




Tworze plik w taki sposob
  1. if(file_put_contents($file,$zawartosc))
  2. {


Zmienna zawartosc to plik konfiguracyjny

blad polega na tym ze on zaczyna od drugiej lini jest jakis myk zeby wpisywal do pliku od pierwszej lini?
Go to the top of the page
+Quote Post
com
post
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


plik musi być pusty to po pierwsze po drugie on nie zaczyna od 2 lini zapewne w zawartość masz dodany biały znak (IMG:style_emoticons/default/wink.gif)

zrób tak
  1. if(file_put_contents($file,trim($zawartosc)))


Ten post edytował com 30.12.2014, 01:23:47
Go to the top of the page
+Quote Post
viamarimar
post
Post #7





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


To jest zawrtosc, nie ma co ukrywac za bardzo.. nie jakis przerw

  1. $zawartosc='<?php
  2. $db = "'.$_POST[db].'";'.'
  3. $db_user = "'.$_POST[db_user].'";
  4. $db_pass = "'.$_POST[db_pass].'";
  5. $db_name = "'.$_POST[db_name].'";'. '
  6. $polaczenie = mysql_connect($db, $db_user, $db_pass);
  7. if (!$polaczenie) {
  8. die("Not connected : " . mysql_error());
  9. }
  10.  
  11. $db_select = mysql_select_db($db_name,$polaczenie);
  12. if (!$db_select) {
  13. die ("Can\'t use".$db_name." : " . mysql_error());
  14. }
  15. $hostUrl="http://xxx";
  16. mysql_query("SET NAMES utf8");
  17. mysql_query("SET collation_connection = utf8_polish_ci");
  18. mysql_query("SET character_set_connection=utf8");
  19. mysql_query("SET character_set_client=utf8");
  20. mysql_query("SET character_set_results=utf8");
  21. ?>'; //zawartość pliku


trim nic nie zmienil i tak zaczyna od drugiej lini
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


masz tu jakąś magie, ta zmienna jakiemu celu ona służy? bo skoro masz to tak jak tu to to jest tekst który sie nie wykona (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
viamarimar
post
Post #9





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


ot cala magia. i plik sie tworzy tylko czemu od 2 lini?

no i file to adres oczywiscie

  1. if(file_put_contents($file,trim($zawartosc)))
  2. {
  3. // Odczyt i zapis dla właściciela, żadnych praw dla innych
  4. if(chmod($file, 0666))
  5. {
  6. echo '<div class="col-xs-8">Stworzono plik oraz nadano prawa dostępu</div>';
  7. }
  8. else
  9. {
  10. echo '<div class="col-xs-8">Stworzono plik jednak nie udało się nadać praw dostępu</div>';
  11. }
  12. }
  13. else
  14. {
  15. echo '<div class="col-xs-8">Nie udało się stworzyć pliku</div>';
  16. }


Ten post edytował viamarimar 30.12.2014, 01:37:15
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


nwm czemu Ci coś tworzy od 2 lini, spr to :
  1. <?php
  2. $_POST['db'] = 'localhost';
  3. $_POST['db_user'] = 'root';
  4. $_POST['db_pass'] = '';
  5. $_POST['db_name'] = 'test';
  6. $zawartosc='<?php
  7. $db = "'.$_POST['db'].'";'.'
  8. $db_user = "'.$_POST['db_user'].'";
  9. $db_pass = "'.$_POST['db_pass'].'";
  10. $db_name = "'.$_POST['db_name'].'";'. '
  11. $polaczenie = mysql_connect($db, $db_user, $db_pass);
  12. if (!$polaczenie) {
  13. die("Not connected : " . mysql_error());
  14. }
  15.  
  16. $db_select = mysql_select_db($db_name,$polaczenie);
  17. if (!$db_select) {
  18. die ("Can\'t use".$db_name." : " . mysql_error());
  19. }
  20. $hostUrl="http://xxx";
  21. mysql_query("SET NAMES utf8");
  22. mysql_query("SET collation_connection = utf8_polish_ci");
  23. mysql_query("SET character_set_connection=utf8");
  24. mysql_query("SET character_set_client=utf8");
  25. mysql_query("SET character_set_results=utf8");
  26. ?>';
  27. $file = 'x.php';
  28. if(file_put_contents($file,trim($zawartosc)))
  29. {
  30. // Odczyt i zapis dla właściciela, żadnych praw dla innych
  31. if(chmod($file, 0666))
  32. {
  33. echo '<div class="col-xs-8">Stworzono plik oraz nadano prawa dostępu</div>';
  34. }
  35. else
  36. {
  37. echo '<div class="col-xs-8">Stworzono plik jednak nie udało się nadać praw dostępu</div>';
  38. }
  39. }
  40. else
  41. {
  42. echo '<div class="col-xs-8">Nie udało się stworzyć pliku</div>';
  43. }


i znajdź różnice u siebie, bo ten kod tworzy dobrze ten plik (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
viamarimar
post
Post #11





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


to samo...

a jakby urzyc

  1. $plik = fopen("plik_testowy.txt","r");


tylko nie wiem jak w to zawrtosc wcisnac

bo niby r zapewnia od poczatku pliku zapis
Go to the top of the page
+Quote Post
com
post
Post #12





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


nie rozumiemy się widać, to rozwiązanie masz dobre i nie tu leży błąd, bo stworzyłem tym skryptem plik x.php który sie zaczyna poprawie od 1 lini, ale ten plik ma jakiś zwiazek z tym xml czy jak?
masz kodowanie bez bom ustawione?

Ten post edytował com 30.12.2014, 01:48:39
Go to the top of the page
+Quote Post
viamarimar
post
Post #13





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


caly czas edytowalem zle miejsce , chyba godzina zrobila swoje i tak dzieki , masakra ..

juz dziala rss i jest od 1 lini (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 18:52