Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Podstawienie funkcji - problem
mrRosso
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 2.01.2012

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


Witam (IMG:style_emoticons/default/smile.gif)


Jak widać jestem nowy na tym forum, znam HTML'a a z PHP to tylko początek...
i co do php mam pewien problem, myślę, że Wam uda się go rozwikłać. (jest to na pewno bardzo proste ale w php jestem naprawdę zielony)

GG Network pokazało przykład bota na swojej stronie https://boty.gg.pl/przyklady/
więc postanowiłem zrobić sobie bota który jak nie będzie mnie na GG to pokaże o której jestem, aczkolwiek żebym mógł aktualizować info o tym kiedy będę potrzebna jest funkcja do zapisu do pliku. (z odczytem nie będę miał problemu:) ) Nie będę owijał w bawełnę i przejdę do rzeczy,

  1. <?
  2. require_once 'GGBotApi/PushConnection.php';
  3. require_once('GGBotApi/MessageBuilder.php');
  4.  
  5. $info = 1; // info 1-on 0-off
  6. $info_file = 'temat.txt'; // Sciezka do pliku info.txt
  7.  
  8. $M=new MessageBuilder();
  9. $czas=date("G:i:s - m - j - Y");
  10.  
  11.  
  12.  
  13. switch ($HTTP_RAW_POST_DATA) {
  14.  
  15. case "/ver": $M->addBBcode('Wersja Bota v1.0[br] Autor: Mateusz Pietrzak [15:01 2012-01-02]'); break;
  16. case "/czas": $M->addText('aktualny czas: ."$czas".''); break;
  17.  
  18.  
  19.  
  20. default: $M->addBBcode('Nie ma mnie aktualnie na GG. Będę... $przykład'); break;
  21. }
  22. $M->reply();


i funkcja czas działa pięknie i bot tak samo. A chcę stworzyć komendę np. /info która będzie aktualizowała zapytanie
  1. $info


Zrobiłem taką funkcję:

  1.  
  2. $info = (implode(" ", $msg));
  3. if($fp = fopen($info_file, 'a+'));
  4. if(fwrite($fp, $info." "));
  5. if(fclose($fp));


ale nie wiem jak ją podstawić pod komendę 'case'. Nie mam na myśli abyście wykonali za mnie całą robotę bo nie w tym rzecz tylko żebyście mogli mnie jakoś nakierować (IMG:style_emoticons/default/smile.gif)

dzięki i pozdrawiam, Mateusz (IMG:style_emoticons/default/wink.gif)

czyli nikt mi nie pomoże...? ;|

Ten post edytował mrRosso 2.01.2012, 20:32:45
Go to the top of the page
+Quote Post
shinuexx
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 9
Dołączył: 2.02.2011
Skąd: undefined

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


rozumiem że chcesz wpisywać komende w postaci
Kod
/info informacja o tym kiedy będziesz

gdzie potem $msg="informacja o tym kiedy będziesz";
Niestety do tego nie użyjesz switch(a bynajmniej nie bezpośrednio z $HTTP_RAW_POST_DATA), ponieważ on wybiera spośród możliwych wartości(jak w przypadku "/ver" i "/czas") a tutaj masz wartość zmienną. Możesz albo wcześniej na $HTTP_RAW_POST_DATA użyć explode() i wtedy switchem, albo od razu w if'ach to zrobić.

Ten post edytował shinuexx 2.01.2012, 22:24:55
Go to the top of the page
+Quote Post
mrRosso
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 2.01.2012

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


czyli wyglądałoby to tak?

  1. } else if($msg[0] == "/info") {
  2. unset($msg[0]);
  3. $info = (implode(" ", $msg));
  4. if($fp = fopen($info_file, 'a+'));
  5. if(fwrite($fp, $info." "));
  6. if(fclose($fp));


wstawiłem to wyżej i wygląda to tak:


  1. <?
  2. require_once 'GGBotApi/PushConnection.php';
  3. require_once('GGBotApi/MessageBuilder.php');
  4.  
  5.  
  6. $M=new MessageBuilder();
  7. $czas=date("G:i:s - m - j - Y");
  8.  
  9.  
  10.  
  11. switch ($HTTP_RAW_POST_DATA) {
  12.  
  13. case "/ver": $M->addBBcode('Wersja Bota v1.0[br] Autor: Mateusz Pietrzak [15:01 2012-01-02]'); break;
  14.  
  15. else if($msg[0] == "/info" && $user_is_online == 1)
  16. unset($msg[0]);
  17. $info = (implode(" ", $msg));
  18. if($fp = fopen($info_file, 'a+'));
  19. if(fwrite($fp, $info." "));
  20. if(fclose($fp));
  21.  
  22.  
  23.  
  24.  
  25. default: $M->addBBcode('Nie ma mnie aktualnie na GG.'); break;
  26. }
  27. $M->reply();
  28.  


i po uruchomieniu skryptu oddaje błąd taki:

  1. <br />
  2. <b>Parse error</b>: syntax error, unexpected T_ELSE in <b>/home/gaduczat/public_html/ggbot.php</b> on line <b>15</b><br />


Ten post edytował mrRosso 3.01.2012, 00:25:54
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




żeby używać ELSE, najpierw musi być IF. U ciebie nie ma IF
Go to the top of the page
+Quote Post
shinuexx
post
Post #5





Grupa: Zarejestrowani
Postów: 78
Pomógł: 9
Dołączył: 2.02.2011
Skąd: undefined

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


Czym jest zmienna $msg[0]? Dodaj komentarze do linijek, żeby można było wiedzieć jak ten kod interpretujesz.
Go to the top of the page
+Quote Post
mrRosso
post
Post #6





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 2.01.2012

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


zrobiłem to tak jak kazaliście z tą zmienną $msg i wyszło to tak:

  1. <?
  2. require_once('GGBotApi/PushConnection.php');
  3. require_once('GGBotApi/MessageBuilder.php');
  4.  
  5.  
  6. $M=new MessageBuilder();
  7. $czas=date("G:i:s - m - j - Y");
  8.  
  9.  
  10.  
  11. switch ($HTTP_RAW_POST_DATA) {
  12. $message = trim($HTTP_RAW_POST_DATA);
  13. $msg = explode(" ", $message);
  14.  
  15. case "/ver": $M->addBBcode('Wersja Bota v1.0[br] Autor: Mateusz Pietrzak [15:01 2012-01-02]'); break;
  16.  
  17. else if($msg[0] == "/info" && $user_is_online == 1)
  18. unset($msg[0]);
  19. $info = (implode(" ", $msg));
  20. if($fp = fopen($info_file, 'a+'));
  21. if(fwrite($fp, $info." "));
  22. if(fclose($fp));
  23.  
  24.  
  25.  
  26.  
  27. default: $M->addBBcode('Nie ma mnie aktualnie na GG...'.$msg.""); break;
  28. }
  29. $M->reply();


ale nie za bardzo rozumiem Ciebie @nospor co mam dokładnie z IF'ami zrobić (IMG:style_emoticons/default/smile.gif)

Ten post edytował mrRosso 3.01.2012, 20:31:22
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




.....
Uzywasz ELSE nie wiedzac co to robi i jak to robi. Tlumacze ci ze ELSE bez IF jest bez sensu. Jak nie kumasz, to zajrzyj łaskawie do manuala, bo takich podstaw ci nikt tlumaczyc nie bedzie....
http://pl.php.net/manual/en/control-structures.if.php
Go to the top of the page
+Quote Post
gorden
post
Post #8





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


if, switch
przeczytaj, a potem

wsadziłeś niekompletny warunek w środek switcha. zrób to na warunku a nie na switchu
Go to the top of the page
+Quote Post
mrRosso
post
Post #9





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 2.01.2012

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


niby ok

  1. <?
  2. require_once('GGBotApi/PushConnection.php');
  3. require_once('GGBotApi/MessageBuilder.php');
  4.  
  5.  
  6. $M=new MessageBuilder();
  7. $czas=date("G:i:s - m - j - Y");
  8.  
  9.  
  10.  
  11. switch ($HTTP_RAW_POST_DATA) {
  12. $message = trim($HTTP_RAW_POST_DATA);
  13. $msg = explode(" ", $message);
  14.  
  15.  
  16.  
  17. if($msg[0] == "/info")
  18. unset($msg[0]);
  19. $info = (implode(" ", $msg));
  20. if($fp = fopen($info_file, 'a+'));
  21. if(fwrite($fp, $info." "));
  22. if(fclose($fp));
  23.  
  24.  
  25.  
  26.  
  27. default: $M->addBBcode('Nie ma mnie aktualnie na GG...'.$msg.""); break;
  28. }
  29. $M->reply();


ale taki błąd teraz jest

  1. <br />
  2. <b>Parse error</b>: syntax error, unexpected T_VARIABLE, expecting T_CASE or T_DEFAULT or '}' in <b>/home/gaduczat/public_html/ggbot.php</b> on line <b>12</b><br />


boję się cokolwiek ruszać bo doszczętnie zepsuje...;/
Go to the top of the page
+Quote Post
shinuexx
post
Post #10





Grupa: Zarejestrowani
Postów: 78
Pomógł: 9
Dołączył: 2.02.2011
Skąd: undefined

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


z tego co pokazujesz to wnioskuje że nie masz zielonego pojęcia co piszesz. Dodaj komentarze na końcu linijek jak po kolei interpretujesz kod, to powiem ci co robisz źle.
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: 23.08.2025 - 15:40