|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Wysyłanie PW jako inny użytkownik (bot) |
Autor |
Wiadomość |
kevin_

Pomógł: 768 razy Posty: 2680
|
Wysłany: 21-12-2008, 08:53 Wysyłanie PW jako inny użytkownik (bot)
|
|
|
witam, mam dwie tabele związane z PW: phpbb_privmsgs oraz phpbb_privmsgs_text
Chciałbym aby mój skrypt wysyłał PW do danego użytkownika (id usera będzie pobierało z formularza), tylko nie wiem jak do tego się zabrać.
privmsgs_id - ' ' OK
privmsgs_type - o co w tym chodzi? - ??
privmsgs_subject - temat PW - OK
privmsgs_from_userid - od kogo? wpisuje ID użytkownika z FORUM (np. 2) - OK
privmsgs_to_userid - do kogo, ID usera tutaj wpisuje, id pobieram przez zmienna - OK
privmsgs_date - data, kiedy PW zostało wysłane, tak ? (data też się zakodowuje 1229845553)
privmsgs_ip - IP kto wysłał PW? Jako że to będzie BOT wpisać 127.0.0.1 ? ale IP się chyba w bazie zakodowuje np. 7f000001
Jak będzie wyglądać polecenie INSERT INTO ?
Kod: |
INSERT INTO `phpbb_privmsgs` (`privmsgs_id`, `privmsgs_type`, `privmsgs_subject`, `privmsgs_from_userid`, `privmsgs_to_userid`, `privmsgs_date`, `privmsgs_ip`, `privmsgs_enable_bbcode`, `privmsgs_enable_html`, `privmsgs_enable_smilies`, `privmsgs_attach_sig`) VALUES
('', 'TYP?', 'Wiadomosc od systemu', '2', '$zmienna_pobiera_id', 'zakodowana_data', 'zakodowane_ip', 1, 0, 1, 0);
|
Pytania: a) Jak zakodowac date? b) jak zakodować ip wysyłającego c) co to jest TYP? d) powyższy kod zawiera poprawną składnie?
Teraz tabela phpbb_privmsgs_text - pod skryptem wysyłającym dane do phpbb_privmsg dodać skrypt wysyłający dane do phpbb_privmsgs_text ?
privmsgs_text_id - ID PW, które wysłaliśmy w tamtym skrypcie? Jak pobrać ID ? wstawić ' ' i samo zdeklaruje?
privmsgs_bbcode_uid - o co chodzi? standardowo jest wartość 0
privmsgs_text - tekst PW
Kod: |
INSERT INTO `phpbb_privmsgs_text` (`privmsgs_text_id`, `privmsgs_bbcode_uid`, `privmsgs_text`) VALUES
('', '0', 'Dostales PW od Bota!:)');
|
Pytania: a) proszę o odpowiedź dot. struktury kolumn |
|
|
|
 |
Gadatliwa Kasia
|
|
|
|
koziolek


Pomógł: 675 razy Posty: 1925
|
Wysłany: 21-12-2008, 12:56
|
|
|
popek_ napisał/a: | a) Jak zakodowac date? | Ona nie jest zakodowan tylko normalna. To jest ilość sekund jakie mineły od początku uniksowej epoki czyli od 1.01.1970 r. 0:00:00 GMT. Skorzystaj z funkcji php time().
popek_ napisał/a: | b) jak zakodować ip wysyłającego | Użyj funkcji phpBB encode_ip() z pliku includes/functions.php
popek_ napisał/a: | c) co to jest TYP? | Wysłana, odebrana, nowa, zapsana, itd. Tobie raczej będzie tutaj potrzebne 1 - najlepiej używać stałych (np. PRIVMSGS_NEW_MAIL) z includes/constans.php linijki 93-100
popek_ napisał/a: | d) powyższy kod zawiera poprawną składnie? | Musisz to i tak jeszcze przypisać do jakiejś zmiennej bo tak "samo" w kodzie nie może być.
Jak podajesz dane liczbowe to nie dawaj apostrofów '.
privmsgs_id jest auto_increment więc możesz pominąć tą kolumnę w zapytaniu.
Przykład: Kod: | $sql = "INSERT INTO `phpbb_privmsgs` (`privmsgs_type`, `privmsgs_subject`, `privmsgs_from_userid`, `privmsgs_to_userid`, `privmsgs_date`, `privmsgs_ip`, `privmsgs_enable_bbcode`, `privmsgs_enable_html`, `privmsgs_enable_smilies`, `privmsgs_attach_sig`) VALUES
(" . PRIVMSGS_NEW_MAIL . ", 'Wiadomosc od systemu', 2, $zmienna_pobiera_id, " . time() . ", '" . encode_ip('127.0.0.1') . "', 1, 0, 1, 0);"; |
popek_ napisał/a: | privmsgs_text_id - ID PW, które wysłaliśmy w tamtym skrypcie? Jak pobrać ID ? wstawić ' ' i samo zdeklaruje? | Nie, bo ta kolumna nie ma auto_increment - czyli nie zwiększa sobie automatycznie numerków. Musisz dowiedzieć się jaki jest ID tego co wstawiłeś w ostatnim zapytaniu. W php to funkcja mysql_insert_id(). W phpBB: $db->sql_nextid().
popek_ napisał/a: | privmsgs_bbcode_uid - o co chodzi? standardowo jest wartość 0 | Szczerze? Sam do końca nie wiem, ale napewno coś z BBCode Użyj make_bbcode_uid() to wygeneruje Ci ten kod. I jak będziesz używał BBCode w wiadomości to powinieneś jeszcze treść wiadomości przepuścić przez funkcję prepare_message().
Przykład: Kod: | $privmsg_message = prepare_message($HTTP_POST_VARS['message'], $html_on, $bbcode_on, $smilies_on, $bbcode_uid); |
|
_________________ #4 /xg.xrybvmbx.jjj//:cggu |
|
|
|
 |
kevin_

Pomógł: 768 razy Posty: 2680
|
Wysłany: 21-12-2008, 13:20
|
|
|
Dzięki za wyjaśnienia, odnośnie tego privmsgs_bbcode_uid najmniej mnie interesowało ;-D
Mam problem z pobraniem wartości ostatnio wysłanej PW ( mysql_insert_id() )
Kod: |
(44, 0, 'Nowa wiadomosc systemowa')";
|
Zamiast "44" co mam dokładnie wstawić? bo się motam, a mysql_insert_id() nie wstawie przecież w miejsce 44. |
_________________ Prezes |
|
|
|
 |
Radek


Pomógł: 955 razy Posty: 4614
|
Wysłany: 21-12-2008, 13:50
|
|
|
Kod: | $sql = "INSERT INTO `phpbb_privmsgs` (`privmsgs_type`, `privmsgs_subject`, `privmsgs_from_userid`, `privmsgs_to_userid`, `privmsgs_date`, `privmsgs_ip`, `privmsgs_enable_bbcode`, `privmsgs_enable_html`, `privmsgs_enable_smilies`, `privmsgs_attach_sig`) VALUES
(" . PRIVMSGS_NEW_MAIL . ", 'Wiadomosc od systemu', 2, $zmienna_pobiera_id, " . time() . ", '" . encode_ip('127.0.0.1') . "', 1, 0, 1, 0);";
$db->sql_query($sql);
$nexitd = $db->sql_nextid();
$sql = "INSERT INTO `phpbb_privmsgs_text` (`privmsgs_text_id`, `privmsgs_bbcode_uid`, `privmsgs_text`) VALUES
($nextid, '0', 'Dostales PW od Bota!:)');
$db->sql_query($sql); |
Wyjaśnienie - wykonujesz pierwsze zapytanie, pobierasz id poprzez $db->sql_nextid() i przypisujesz do zmiennej $nextid, później w zapytaniu wstawiasz $nextid. |
|
|
|
 |
koziolek


Pomógł: 675 razy Posty: 1925
|
Wysłany: 21-12-2008, 13:54
|
|
|
Kod: | $sql = "INSERT INTO `phpbb_privmsgs_text` (`privmsgs_text_id`, `privmsgs_bbcode_uid`, `privmsgs_text`) VALUES
(" . mysql_insert_id() . ", '0', 'Dostales PW od Bota!:)');"; | Znowu musi być w zmiennej
Jeszcze jedna sprawa Jeżeli będziesz wysyłał wiadomość od użytkownika o id np. 2, to po przeczytaniu wiadomości (przez tego do kogo wysyłałeś) użytkownik o id 2 będzie miał tą wiadomość w folderze "Wysłane".
Jeżeli będziesz wysyłał wiadomości od użytkownika od id = -1 (gość, anonymous) to wtedy nie zapisze mu w wyłanych, nie będzie guzika odpowiedz, cytuj, profil, itd. i jako nadawca będzie wyświetlane: "Obsługa forum" - można zmienić w langach w pliku language/lang_polish/lang_main.php: Kod: | $lang['forum_service'] = 'Obsłga forum'; |
RuseK szybszy |
_________________ #4 /xg.xrybvmbx.jjj//:cggu |
|
|
|
 |
kevin_

Pomógł: 768 razy Posty: 2680
|
Wysłany: 21-12-2008, 15:11
|
|
|
Dzięki za pomoc, ale jednak mam problem z pokazywaniem się że dostałem nową wiadomość.
Cały skrypt działa, dostarcza PW, ale np. nie pokazuje mi informacji że dostałem nową PW.
W czym może leżeć problem?
PS. To nie może być wina stylu, ani skryptu (forum) gdyż wysyłam PW do testowego użytkownika, i dostaje info że dostałem nową wiadomość. |
|
|
|
 |
koziolek


Pomógł: 675 razy Posty: 1925
|
Wysłany: 21-12-2008, 15:29
|
|
|
To trzeba jeszcze wykonać zapytanie: Kod: | $sql = "UPDATE `phpbb_users` SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = " . time() . " WHERE user_id = $zmienna_pobiera_id;"; | |
_________________ #4 /xg.xrybvmbx.jjj//:cggu |
|
|
|
 |
Gadatliwa Kasia
|
|
|
|
kevin_

Pomógł: 768 razy Posty: 2680
|
Wysłany: 21-12-2008, 15:50
|
|
|
No i wszystko gra, temat można zamknąć.
Pozdro |
_________________ Prezes |
|
|
|
 |
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,11 sekundy. Zapytań do SQL: 11 | |
 |
|