Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Fatal error: Cannot use string offset as an array in - co zmienić?
Defozo
post 26.08.2009, 19:57:28
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.03.2007

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


Witam, mam taki kod:

jbot.php:
Wklej.to - Klik!
Lub:
  1. <?php
  2. /**********************************************
  3. Autor: Tracerout
  4. Kontakt:
  5. -mail: tracerout@o2.pl
  6. -jid: tracerout@jid.pl
  7.  
  8. Uzycie: php skrypt pokoj@serwer nick
  9. np: php jbot.php bar@conference.aqq.eu JBot
  10. **********************************************/
  11.  
  12. #przylaczam klase class.jabber
  13. require("class.jabber.php");
  14. #ustawiam dane bota
  15. $dane = array(server => "jid.pl", port => "5222", username => "defozobot", password => "niewiem", resource => ("$argv[2]"), enable_logging => TRUE, log_filename => "logfile.txt", room => $argv[1]);
  16. (empty($argv[2])) ? $jbot_nick=$dane['username'] : $jbot_nick=$argv[2];
  17. $vip="defozoo@aqq.eu";
  18. #lacze bota
  19. $jabb = new Jabber;
  20. $jabb->server = $dane['server'];
  21. $jabb->port = $dane['port'];
  22. $jabb->username = $dane['username'];
  23. $jabb->password = $dane['password'];
  24. $jabb->resource = $dane['resource'];
  25. $jabb->enable_logging = $dane['enable_logging'];
  26. $jabb->log_filename = $dane['log_filename'];
  27. $jabb->Connect() or die("Couldn't connect");
  28. $jabb->SendAuth() or die("Couldn't autheticate");
  29. $jabb->SendPresence();
  30. $jabb->wejdz($dane['room'], $jbot_nick);
  31. #otwieram plik z logami do zapisu
  32. $fp=fopen('log.php', 'a+');
  33. #pobieram czas
  34. $upt_start = time();
  35. #rozpoczynam petle
  36. while(1)
  37. {
  38. #odbieram pakiety i je `obrabiam`
  39. $oddaj=$jabb->mess();
  40. $message=$oddaj['message'];
  41. $sender=explode('/', $oddaj['sender']);
  42. $sender=$sender[1];
  43.  
  44. #jesli jest wiadomosc to wykonuje dalej
  45. if(!empty($message))
  46. {
  47. #wywalam puste znaki, rozbijam wiadomosc i sprawdza czy w tresci wiadomosci jest nick osoby ktora jest away
  48. $message=trim($message);
  49. $exp=explode(" ", $message);
  50. #zapisuje nadawce i wiadomosc do logow
  51. fwrite($fp, $oddaj['sender'].': '.$message."\n");
  52. #AI
  53. if($walka=="true")
  54. {
  55. if($message==$liczba && $sender==$koles1)
  56. {
  57. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "Gratulacje $koles1 ! Twoj wrog ( $koles2 ) nie zyje !"));
  58. $walka = "false";
  59. }
  60. else
  61. {
  62. if($message==$liczba && $sender==$koles2)
  63. {
  64. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "Gratulacje $koles2 ! Twoj wrog ( $koles1 ) nie zyje !"));
  65. $walka = "false";
  66. }
  67. }
  68. }
  69. if($exp[1]=="!walka")
  70. {
  71. $koles1 = $exp[2];
  72. $koles2 = $exp[3];
  73. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "Walka: $koles1 vs $koles2 !"));
  74. sleep(1);
  75. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "5"));
  76. sleep(10);
  77. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "4"));
  78. sleep(10);
  79. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "3"));
  80. sleep(10);
  81. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "2"));
  82. sleep(10);
  83. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "1"));
  84. sleep(10);
  85. $liczba = random(1,10);
  86. $walka = "true";
  87. $jabb->SendMessage($dane['room'], 'groupchat', null, array("body" => "Liczba: $liczba"));
  88. }
  89. }
  90. else#jesli wiadomosc `empty` spi 1 sekunde
  91. {
  92. sleep(1);
  93. }
  94. }
  95. fclose($fp);#zamyka plik po zakonczeniu petli(po co ja to tutaj wpisalem? sleep.gif")
  96. ?>


class.jabber.php:
Wklej.to - Klik!

Podczas odpalania jbot.php wyświetla się:
Kod
Fatal error: Cannot use string offset as an array in class.jabber.php on line 204


Linia 204 class.jabbera.php:
  1. $jid=explode("/", $packet['presence']['#']['x']['0']['#']['item']['0']['@']['jid']);


Podejrzewam, że chodzi o uzywanie tekstu (stringu) tak jakby był tablicą, lecz.. Jak to naprawić?

Proszę o pomoc,
Pozdrawiam,
Defozo

Ten post edytował Defozo 26.08.2009, 21:10:27
Go to the top of the page
+Quote Post
ayeo
post 26.08.2009, 20:27:41
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

Możesz nam wyjaśnić tajemnicze powody, dla jakich wrzucasz kod na jakieś dziwne wklej.to? Załóżmy, że za pół roku ktoś będzie miał podobny problem do Twojego, myślisz, że ten kod nadal tam będzie?

Pozdrawiam!


--------------------
Go to the top of the page
+Quote Post
varez
post 26.08.2009, 20:29:29
Post #3





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 17.06.2007

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


wklej.to nie kasuje tekstow z tego co wiem.. po to jest..
Go to the top of the page
+Quote Post
ayeo
post 26.08.2009, 20:32:23
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Cytat
Wszystkie paste przechowywane są tak długo dopóki nie zostanie ona usunięta przez użytkownika serwisu, lub minimum 90 dni po jej ostanim wyświetleniu.


--------------------
Go to the top of the page
+Quote Post
Defozo
post 27.08.2009, 13:28:34
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.03.2007

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


Cytat(ayeo @ 26.08.2009, 21:27:41 ) *
Witam!

Możesz nam wyjaśnić tajemnicze powody, dla jakich wrzucasz kod na jakieś dziwne wklej.to? Załóżmy, że za pół roku ktoś będzie miał podobny problem do Twojego, myślisz, że ten kod nadal tam będzie?

Pozdrawiam!

Wszystko dlatego, że w poście się nie zmieściło (ograniczenie znaków).
Jedynie teraz zmieniłem i dodałem jbota.php do postu (on się mieści).

A jakby ktoś szukał to jest to przeróbka (by me) przeróbki (by Tracerout) class.jabbera.php v0.4 (by Carlo "Gossip" Zottmann)...

Pozdrawiam,
Defozo

UWAGA! PROBLEM ROZWIĄZANY!
Przerejestrowałem bota na aqq.eu (wcześniej był na jid.pl) i już wszystko działa : )


Ten post edytował Defozo 28.08.2009, 12:11:39
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:08