To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Wersja 1.12.0 Beta 2 - [Ważne] Wersja 1.12.0 Beta 2 - testy

chelloPL - 21-11-2005, 13:45

Przemo, już rozumiem. W takim razie co sądzisz o tym, aby zostawić Twój kod oraz zmodyfikować 2 zapytania SQL:
1.
Kod:
    $sql = "UPDATE " . SESSIONS_TABLE . "
        SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_admin = $admin
        WHERE session_id = '" . $session_id . "'
            AND session_ip = '$user_ip'
            AND session_time > " . ($current_time - $board_config['session_length']);

na:
Kod:
    $sql = "UPDATE " . SESSIONS_TABLE . "
        SET session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_admin = $admin
        WHERE session_id = '" . $session_id . "'
            AND session_ip = '$user_ip'
            AND session_user_id = $user_id
            AND session_time > " . ($current_time - $board_config['session_length']);

Aktualizujemy tutaj tylko wówczas, jeśli session_ip i user_id się nie zmienia.
Jeśli user_id się zmieni, wówczas ktoś się loguje/wylogowuje. A jeśli tak, to UPDATE nie wykona się (bo user_id się nie zgadza) i zostaną sprawdzone wszystkie warunki: zabezpieczenia i bany (czyli chyba to o co nam chodzi).

Ale aby to wszystko miało ręce i nogi, to następne zapytanie INSERT również trzeba zmodyfikować, aby poprawnie wstawiało i jednocześnie aktualizowało rekord:
Kod:
        $sql = "INSERT INTO " . SESSIONS_TABLE . "
            (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged__in, session_admin)
            VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)";

na:
Kod:
        $sql = "REPLACE INTO " . SESSIONS_TABLE . "
            (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged__in, session_admin)
            VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)";

Dlaczego replace? Dlatego, że:
1. kluczem podstawowym jest session_id
2. REPLACE działa tak jak INSERT jeśli podstawowy klucz nie istnieje w tabeli (czyli session_id).
3. Jeśli podstawowy klucz w tabeli istnieje, to rekord jest kasowany i wstawiany nowy (ponieważ podajemy wszystkie kolumny w tabeli, stąd działa jak UPDATE)

MySQL documentation napisał/a:
REPLACE works exactly like INSERT, except that if an old record in the table has the same value as a new record for a PRIMARY KEY or a UNIQUE index, the old record is deleted before the new record is inserted

Jednej rzeczy nie mogę tylko znaleźć w dokumentacji. Forum powinno działać również na mysql 3.x - nie mogę odnaleźć dokumentacji i sprawdzić, od której wersji REPLACE istnieje.

Co sądzisz o tym rozwiązaniu? Widzę pewne niedogodności (jeśli ktoś będzie się co chwila logował i wylogowywał, to sesje nie będą kasowane), ale chcę uniknąć tworzenia dodatkowych zapytań SQL.
Ewentualnie (ale w tym też mogą być logiczne błędy) można sprawdzać, przed REPLACE czy session_id jest puste i jeśli tak, to generujemy nowy - jeśli nie, to używamy aktualnego. Wówczas REPLACE zamieni istniejący wpis.

// zamotałem chyba to strasznie.

Xmen - 21-11-2005, 13:50

Paszczak000 napisał/a:
Po wykasowaniu kategori i for mam w PA:
Kod:
Błąd Ogólny
No forum access control lists exist

i nic się z tym nie da zrobić ;]

[ Dodano: 19-11-2005, 21:08 ]
Cytat:
Jeżeli pole jest oznaczone Obsługa au_tpl au_lng oznacza to, że ciącg znaków au_tpl zostanie zamieniony na nazwę stylu a au_lng na język przeglądająccego.


Ja mam nastepujace pytanie może ktos już z was wie jak przywrocić , albo jak można ten bląd usunać ??

chelloPL - 21-11-2005, 14:20

Xmen napisał/a:
Ja mam nastepujace pytanie może ktos już z was wie jak przywrocić , albo jak można ten bląd usunać ??

Tak... zainstaluj jeszcze raz forum (skoro usunąłeś wszystkie fora, to nie masz na nim nic) i zamiast usuwać wszystko, masz przycisk Edytuj... zrób z niego użytek.

Mam prośbę: niech ktoś sprawdzi jak (i czy wogóle) działa dodawanie pól w profilu jeśli mamy wpisany suffix i prefix.
Konkretniej: jako prefix wpisuję: <b><font color="#0000FF">
jako suffix: </font></b>
Wpisuję również przykładowe wartości z calto:// i też nie działa. Pole nie pojawia się ani pod avatarem, ani w profilu. Jedyne miejsce gdzie jest to przy edycji profilu przez admina - ale nigdzie więcej.

Crack - 21-11-2005, 15:19

chelloPL napisał/a:
Jednej rzeczy nie mogę tylko znaleźć w dokumentacji. Forum powinno działać również na mysql 3.x - nie mogę odnaleźć dokumentacji i sprawdzić, od której wersji REPLACE istnieje.

Na 100% istnieje w wersjach 3.23.x. W changelogu do 3.23.15 znalazłem wzmiankę o REPLACE.

PHOENIX - 21-11-2005, 15:25

ChelloPL thx chodzi !
ChelloPL na admina :P
Btw Przemo o co biega z tym błędem bo wydaje mi sie że związane to jest z PHP 5.0 czyż tak ? ;>
Pozatym w Operce licho chodzi BBCode
Np : zaznaczam text i zaznacze np "Jakis" i Nacisne B to
Kod:
[b]
wyskakuje mi na koncu napisu "Jakis"

Test


I albo mi się wydaje albo Cień nie chodzi
TESTTTT
bez cienia

TESTTTT[
Widziecie tu cień bo ja nie :/

gimradio - 21-11-2005, 15:49

po zalogowaniu się do PA mam :

Kod:
Warning: ob_start(): output handler 'ob_gzhandler' conflicts with 'zlib output compression' in /srv/www/htdocs/web395/html/forum/admin/page_header_admin.php on line 47


a w liście modułów mam:
Kod:
Warning: ob_start(): output handler 'ob_gzhandler' conflicts with 'zlib output compression' in /srv/www/htdocs/web395/html/forum/admin/page_header_admin.php on line 47


aha i jeszcze jedno może przerobić ten moduł status ?? tzn. chodzi mi o to że powiedzmy było do wyboru czy użytkownik chce informacje o statusie jako grafika czy jako txt.. np.
Status: Online (na zielono)

chelloPL - 21-11-2005, 15:49

chelloPL napisał/a:
Mam prośbę: niech ktoś sprawdzi jak (i czy wogóle) działa dodawanie pól w profilu jeśli mamy wpisany suffix i prefix.

Oczywiście, że nie działa.
Sytuacja:
- mam włączony prefix i suffix (jak w poście wyżej)
- mam wartości w jumpboxie

W viewtopic.php tworzymy z tego ciąg znaków:
$prefix.$user_field.$suffix
A później porównujemy to z $user_field (czyli wartością wpisaną w bazie), czyli nigdy to nie będzie równe sobie.

2 metody:
1. albo najpierw porównujemy wartości a później tworzymy ciąg do wyświetlenia, // ta wydaje mi się lepsza
2. albo przy porównywaniu używamy strip_tags($user_field)

Dziwne, ale po tej przeróbce działa ;)

PHOENIX, sprawdziłem pod Windowsem i Operą 8.50 i działa poprawnie. Jesteś w stanie sprawdzić na nowszej operze pod linuxem czy błąd dalej wystepuje?

PHOENIX - 21-11-2005, 15:52

Nie chce mi sie updatowac opery .. na ff sprawdzalem i nie chodzi ;/ dziwne ...
A na twoim linuxie i mozilli ? chodzi?

FF sprawdzalem nie chodzi ... Biały napis
Opera j.w
Mozilla j.w

Może dlatego że freebsd ... :roll:

chelloPL - 21-11-2005, 15:58

PHOENIX napisał/a:
A na twoim linuxie i mozilli ? chodzi?

Tak, chodzi u mnie na:
linux + mozilla
windows + ff 1.0.7
windows + opera 8.50

Co do cienia i ognia:
Cytat:
FF sprawdzalem nie chodzi ... Biały napis

To działa poprawnie tylko na IE. Pod innymi przeglądarkami nie działa ale to jest już wiadomo od dawna.

Przemo - 21-11-2005, 16:01

PHOENIX, cień nie wszędzie działa juz kiedys byla o tym mowa.
chelloPL, odnośnie zmian zapytań sql to absolutnie nie bedziemy tego az tak drastycznie zmieniac, to jest skomplikowane i bardzo wazne, strach ryzykować bo może się to wiązac nawet z włamaniem na forum. Ja tylko przeniosłem sprawdzanie zabezpieczeń IP i warningi nieco niżej. Czyli user podaje w jakiś sposób swój numer ID, pobierane są wszystkie jego dane potem jezeli ID sesji istnieje w bazie to jest aktualizowany czas sesji i wszystkie inne czasy oraz wizyty a jezeli nie istnieje to wtedy jest tworzona i wpisywana nowa sesja oraz są sprawdzane zabezpieczenia.

Odnośnie prefixów to powinno działać. Spóbuj ten przykład który podałem. Inni niech też sprawdzą. Powinno się dać na przykład zrobić drugi przycisk dokładnie obok przycisku GG pod postem

PHOENIX - 21-11-2005, 16:04

Dobra ok juz wszystko wiem ... Opera + Win nie chodzi
IE + Win chodzi a kilka osob sprawdzalo na linuksie i nie chodzilo...
Czyli cień poprostu nie chodzi...
@Przemo nic z tym nie da się zrobić ?
A co do tego że była o tym mowa to nic nie kojarze :roll:

Przemo - 21-11-2005, 16:10

PHOENIX napisał/a:
@Przemo nic z tym nie da się zrobić ?
Pewnie się da trzeba by odszukac odpowiednie filtry dla innych przeglądarek niż IE

P.S.
Zrobiłem tutaj skypa w dodatkowych polach i chyba działa dobrze?
Kod:
nazwa pola: -#Skype
prefix: <a href="callto://
suffix: <img src= "templates/au_tpl/images/skype.gif" border="0"></a>
Widmo to był bardzo fajny pomysł :)

FoToGrAfIk - 21-11-2005, 16:53

Ja mam jeszcze małą prośbę, czy mogł byś zrobić żeby w pa można było ustawić, że portal jest stroną główną?
Jest to ważna i wygodna opcja...

Mariuszaraj - 21-11-2005, 17:03

FoToGrAfIk napisał/a:
Ja mam jeszcze małą prośbę, czy mogł byś zrobić żeby w pa można było ustawić, że portal jest stroną główną?
Jest to ważna i wygodna opcja...

http://www.przemo.org/php...opic.php?t=9735

chelloPL - 21-11-2005, 17:18

Przemo napisał/a:
Zrobiłem tutaj skypa w dodatkowych polach i chyba działa dobrze?

Napisałem, że nie działa przy jumpboxie i prefix+suffix. Teraz przy skype nie masz jumpboxa, tylko sam wpisujesz tekst.



Powered by phpBB modified by Przemo © 2003 phpBB Group