Korzystając z tej strony zgadzasz się z polityką prywatności i regulaminem.
Akceptuj
WebInside.plWebInside.plWebInside.pl
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
Szukaj
  • Kontakt
  • Forum
WebInside.pl © 2023.
Czytasz: Sesje z pomocą ADOdb
Udostępnij
Zaloguj się
Powiadomienia
Aa
WebInside.plWebInside.pl
Aa
Szukaj
  • Strona główna
  • Aktualności
  • Technologie webowe
  • Publicystyka
  • E-marketing
  • Poradniki
  • AI
  • Technologie
  • Artykuły partnerskie
  • Więcej
    • Kontakt
    • Mapa strony
Masz już konto? Zaloguj się
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
WebInside.pl © 2023.
WebInside.pl > Technologie webowe > Sesje z pomocą ADOdb
Technologie webowe

Sesje z pomocą ADOdb

WebInside.pl
Ostatnia aktualizacja: 10.07.2004
WebInside.pl
Udostępnij
Udostępnij

Wielu początkujących programistów PHP użera się z sesjami. Wiem to po sobie, bo jeszcze kilka miesięcy temu miałem nie-lada kłopot z zapisywaniem rekordów sesji w bazie MySQL. Jak zwykle pomógł mi serwis php.net.

Jeszcze nie tak dawno opisywałem tworzenie własnych funkcji obsługi sesji z wykorzystaniem MySQL. Stanąłem jednak przed pewnym problemem. Mianowicie co zrobić, jeśli skrypt, który pisze, będzie musiał współpracować z różnymi bazami danych?

Na pomoc przyszła mi biblioteka ADOdb (Active Data Objects DataBase). Jest to świetny produkt na licencji lesser GPL (w praktyce dla laika oznacza to, iż można wykorzystywać ją w komercyjnych produktach bez ponoszenia jakichkolwiek kosztów z nią związanych).

Co takiego spowodowało, iż zwórciłem uwagę na ADOdb? Przede wszystkim mnogość funkcji, przenośność kodu i prostota stosowania. W chwili, kiedy piszę ten artykuł, z oficjalnej strony projektu można ściągnąć wersję 4.04. Obsługuje ona MySQL, PostgreSQL, Oracle, Interbase, Microsoft SQL Server, Access, FoxPro, Sybase, ODBC i ADO. Z jej pomocą możesz napisać aplikację współpracującą z tymi wszystkimi (a przynajmniej większością) baz danych na raz. Czyż to nie wspaniałe? Do tego ADOdb oferuje funkcje testowania wydajności bazy, cache’owania wyników czy też obsługi sesji. Właśnie tą ostatnią możliwością zajmę się w tym artykule.

Po więcej informacji na temat ADOdb zapraszam na oficjalną stronę projektu ().

Tymczasem przechodzimy do meritum…

Ściągamy z oficjalnej witryny projektu jego najnowszą wersję (w moim wypadku plik „ADOdb404.zip”). Rozpakowujemy go, zmieniamy nazwę nowopowstałego folderu na „ADOdb” i kopiujemy do głównego katalogu naszej witryny (w większości przypadków jest to folder „public_html” w naszym katalogu domowym). Po wykonaniu tych czynności stajemy się dumnymi posiadaczami ADOdb (4.04).

Teraz tworzymy tabelę w naszej bazie danych. Nazwijmy ją „sesje”. Oto, jak powinien wyglądać jej kod (w wypadku bazy MySQL):

CREATE TABLE sesje
(
sesskey CHAR(32) NOT NULL
, expiry INT(11) UNSIGNED NOT NULL,
expireref VARCHAR(64),
data TEXT NOT NULL,
primary key (sesskey)
) TYPE=MyISAM;

Kiedy już nasza baza danych jest wyposażona w tabele możemy wziąć się za stworzenie pliku odpowiadającego za konfigurację obsługi sesji oraz jej start. Nazwijmy go „sesja.inc.php”. Oto, jak powinien wyglądać:

<?php

$ADODB_SESSION_DRIVER = „mysql”;
$ADODB_SESSION_CONNECT = „localhost”;
$ADODB_SESSION_USER = „root”;
$ADODB_SESSION_PWD = „”;
$ADODB_SESSION_DB = „test”;
$ADODB_SESSION_TBL = „sesje”;
if($_SERVER[’DOCUMENT_ROOT’])
{
$_root .= $_SERVER[’DOCUMENT_ROOT’] . str_replace(basename($_SERVER[’PATH_INFO’]), „”,
$_SERVER[’PATH_INFO’]);
}
require($_root . „adodb/adodb.inc.php”);
require($_root . „adodb/adodb-cryptsession.php”);
session_start();

?>

Powyższy skrypt łączy się z serwerem MySQL, który siedzi pod adresem „localhost”. Uzyskuje do niego dostęp jako użytkownik „root”. Autoryzacja nie jest wymagana, więc hasło nie zostało podane. Nazwa bazy, z którą się łączy, to „test”. Tabela mająca na celu obsługę sesji zwie się „sesje”.

NOTKA: Od wersji 4.1 skrypty obsługujące sesje znajdują się w katalogu „ścieżka/do/biblioteki/ADOdb/session”. Poza tym dodano możliwość szyfrowania przy pomocy MCrypt i ogółem kod odpowiedzialny za obsługę sesji napisano od nowa (a dokładniej napisał go Ross Smith).

Teraz wystarczy na początku każdego pliku, który ma być brany pod uwagę przez sesję, dopisać linijkę „<?php require_once(’sesja.inc.php’); ?>” (owy kod zadziała prawidłowo tylko przy odpowiednio zdefiniowanej zmiennej „include_path”).

Zmienne rejestruje się standardowo – poprzez „session_register(’nazwa zmiennej’);”. Jak je odczytywać? Równie prosto – „$_SESSIONS[’nazwa zmiennej’]”.

Jak widzicie, korzystanie z sesji przy pomocy ADOdb nie jest wcale trudne. Prócz prostoty użytkowania oraz przenośności kodu otrzymujemy jeszcze jedną rzecz – bezpieczeństwo. Rekordy sesji są szyfrowane… jest to kolejny plus ADOdb. Naprawdę polecam korzystanie z tej biblioteki. Po więcej informacji i przykładów jej wykorzystania zapraszam na moją domową witrynę. W razie jakichkolwiek problemów – piszcie.

NOTKA: Kiedy będziecie chcieli korzystać z obsługi sesji PHP 4.3.* będą męczyły Was komunikaty ostrzegawcze. Jak nim zaradzić? Dodajcie do swoich „php.ini” poniższe dwie linijki.

session.bug_compat_42=off
session.bug_compat_warn=off

Nie wiem, czy przy korzystaniu z wbudowanych funkcji obsługi sesji (za pomocą plików) owe ostrzeżenia również się wyświetlają… zresztą – nieważne.

Może Cię zainteresować

Atak CSRF (Cross-Site Request Forgery) – na czym polega i jak się przed nim chronić?

Co to jest SFTP i czym różni się od FTP i FTPS?

Dlaczego warto wybrać React.js do budowy interfejsów użytkownika?

Co to jest LAMP? Konfiguracja stosu Linux, Apache, MySQL i PHP

Różnice między SSL a TLS – który protokół jest bezpieczniejszy?

WebInside.pl 2004-07-10 2004-07-10
Udostępnij ten artykuł
Facebook Twitter Kopiuj link Wydrukuj
Udostępnij
Poprzedni artykuł Własny mechanizm sesji, część 2
Następny artykuł Smarty: Generowanie statycznych stron HTML
Zostaw komentarz lub opinię

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

Atak CSRF (Cross-Site Request Forgery) – na czym polega i jak się przed nim chronić?
Technologie webowe
Co to jest IMAP i dlaczego jest lepszy od POP3 do obsługi poczty?
Poradniki
eSIM vs karta SIM – co lepsze w codziennym użytkowaniu?
Technologie
Daemon Tools zainfekowany przez hakerów — twój komputer mógł zostać przejęty
Aktualności
Ile kosztuje Google Workspace? Cennik i przegląd dostępnych planów
e(Biznes)
Co to jest SFTP i czym różni się od FTP i FTPS?
Technologie webowe
Dlaczego warto wybrać React.js do budowy interfejsów użytkownika?
Technologie webowe
Co to jest LAMP? Konfiguracja stosu Linux, Apache, MySQL i PHP
Technologie webowe
Jak sprawdzić, czy domena internetowa jest wolna?
Poradniki
Kim jest IT Product Manager i jakie ma obowiązki?
Poradniki
banner
Chcesz umieścić swoją reklamę w portalu WebInside.pl?
Skontaktuj się z nami, a zaproponujemy interesujące formy reklamy.
Skontaktuj się

Inne polecane artykuły

Technologie webowe

Atak CSRF (Cross-Site Request Forgery) – na czym polega i jak się przed nim chronić?

15 min czytania
Technologie webowe

Co to jest SFTP i czym różni się od FTP i FTPS?

15 min czytania
Technologie webowe

Dlaczego warto wybrać React.js do budowy interfejsów użytkownika?

14 min czytania
Technologie webowe

Co to jest LAMP? Konfiguracja stosu Linux, Apache, MySQL i PHP

16 min czytania
Technologie webowe

Różnice między SSL a TLS – który protokół jest bezpieczniejszy?

16 min czytania
Technologie webowe

Lista domen najwyższego poziomu (TLD) – krajowe, globalne i sponsorowane

17 min czytania
Technologie webowe

Rekordy DNS – typy (A, CNAME, MX, NS) i ich rola w działaniu domeny

19 min czytania
Technologie webowe

Co oznacza opcja SAN w certyfikatach SSL i kiedy jej używać?

16 min czytania
//

WebInside.pl – portal technologiczny. Aktualności ze świata technologii, webmastering, marketing internetowy, AI, poradniki.

 

Partnerzy



Wszystkie kategorie

  • AI
  • Aktualności
  • Artykuły partnerskie
  • E-marketing
  • e(Biznes)
  • Poradniki
  • Publicystyka
  • Technologie
  • Technologie webowe

Ostatnio dodane

  • Atak CSRF (Cross-Site Request Forgery) – na czym polega i jak się przed nim chronić?
  • Co to jest IMAP i dlaczego jest lepszy od POP3 do obsługi poczty?
  • eSIM vs karta SIM – co lepsze w codziennym użytkowaniu?
  • Daemon Tools zainfekowany przez hakerów — twój komputer mógł zostać przejęty

Kontakt

Chcesz się z nami skontaktować? Jesteś zainteresowany reklamą lub artykułem sponsorowanym?

Skorzystaj z formularza kontaktowego lub napisz do nas na kontakt@webinside.pl

WebInside.plWebInside.pl
WebInside.pl © 2023 | Mapa strony | Forum | Polityka prywatności
Witaj ponownie!

Zaloguj się do swojego konta

Zapomniałeś hasła?