phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
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 :P 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 :mrgreen:
 
     
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 :P 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 :P
_________________
#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 :mrgreen:
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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

Skocz do:  

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
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

serwis laptopów

phpbb

Design Cart - Tworzenie sklepu internetowego

iRonin.IT

• Zamów reklamę