A szekciók és a php-engedélyek helyes feldolgozása

  • PHP
  • A felhasználók azonosítása
  • HTTP cookie

Két lehetőség közül választhat:
1. Session + DB. A munkamenet időtartama egy hétig áll, és nem fürödünk. Az asztal ülés adatbázis írási session_id, user_id, USER_AGENT, session_expire és ellenőrzések / frissítse őket minden kérést, kivéve az AJAX-szerű, bár az is lehetséges számukra.

"random_hash" csak egy véletlenszerű betűkészlet, amely az első példában az session_id helyére lép. Egy ilyen ideiglenes jelszó, ez biztonságosabb, mint egy felhasználó jelszó hash.
A jelszó megváltoztatásakor vagy a felhasználó kérésére az összes munkamenet törlődik az adatbázisból, és az összes cookie / session érvénytelenné válik.

Eddig az első lehetőség felé néztem.

Alexander Kazakevich. A bejelentkezéseket és a felhasználói ügyintézőket és a munkameneteket egy halomba kevered, de miért? A munkamenet elég jól működik önmagában, ugyanakkor senki nem zavarja meg, hogy legalább az adatbázisban naplókat írjon, még a fájlokban is.

Alexander Kazakevich. beszélsz a polimorfizmusról. A munkamenetek osztályának nem kell tudnia, hogy a munkameneteket ténylegesen tárolják-e. Ehhez le kell írnia a munkamenet-tároló felületet. A tárolási osztálynak (illesztőprogramnak) ezt az interfészt kell végrehajtania. A munkamenetosztály-konstruktornál elfogadjuk a paraméterünk által megadott paramétert.

Összességében kiderül, hogy nem függ az adattárból. Bármely illesztőprogram átvihető a munkamenetosztály-konstruktornak, amely végrehajtja az interfészt, és minden megváltozik a kód megváltoztatása nélkül.

Most az előnyökről. A php-ben lévő munkamenetek fájlokban tárolódnak. Ez azt jelenti, hogy ha tesz egy terheléselosztót mögött 2+ backend szerver, akkor kéri a kliens indul, hogy jöjjön ugyanazon a szerveren, majd a másik. A felhasználó a kérésről a kérelemre lesz, majd jelentkezzen be, majd eltávolításra kerül. Természetesen léteznek olyan megoldások, ragadós munkamenetek, amelyek a php-be konfigurálhatók a redis tárolására. De a legjobb megoldás az, hogy figyelmen kívül hagyja a munkamenet tárolórendszer az osztályban ülés fel és több különböző tárolási és használati konfiguráció a nagyon tehetséges, a megfelelő időben, hogy módosítsa a tároló motor az egyik a másikra, és még írni a saját, ha nem elégedett a szabvány.

De a kezdő számára nehéz lesz megérteni. Először meg kell olvasnod egy egyszerű mintakönyvből, ahol meg fogod tudni, mi a kompozíció, miért van szüksége rá, és mi jobb, mint az örökség.

Általánosságban elmondható, hogy a PHP, mint az első nyelv nem túl jó, sok szabadságot biztosít, és ezért sok doltishby kód van rá. Ha egy erősen beírt nyelvvel kezdjük, mint a Java, akkor a tanulási hatékonyság sokszor magasabb lesz, de a belépési küszöb emelkedni fog, de nem időnként. De ez persze ideális. Én magam is elkezdtem a PHP-vel.

A webes programozással foglalkozom

ez nagyon egyszerű
például a php-t fogom használni
ha azt szeretné, hogy a felhasználó ne tudjon bejutni a privát irodába egy bizonyos munkamenet nélkül, akkor használhatja
ha (! isset ($ _ SESSION ['login'])) // ez azt jelenti, hogy ha nincs munkamenet,
fejléc ("Location./index.php"); / / Itt adjon meg egy linket ehhez a fájlhoz

$ authdb = új OEM ('mysql: host = localhost; dbname = root', 'toor', 'password');

a táblázat mysql táblázata beillesztésre kerül a users.sql fájlba és a kiszolgálóra feltölti

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00: 00";

/ *! 40101 SET @OLD_CHARACTER_SET_CLIENT = @@ CHARACTER_SET_CLIENT * /;
/ *! 40101 SET @OLD_CHARACTER_SET_RESULTS = @@ CHARACTER_SET_RESULTS * /;
/ *! 40101 SET @OLD_COLLATION_CONNECTION = @@ COLLATION_CONNECTION * /;
/ *! 40101 SET NAMES utf8 * /;

--
-- Adatbázis: `adatbázisnév`
--

--
-- A "felhasználók" tábla szerkezete
--

CREATE TABLE Amennyiben nem létezik `users` (
`id` int (11) NOT NULL AUTO_INCREMENT,
`login` varchar (100) COLLATE utf8_unicode_ci NOT NULL,
`jelszó` varchar (100) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar (100) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) MOTOR = MyISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;

/ *! 40101 SET CHARACTER_SET_CLIENT = @ OLD_CHARACTER_SET_CLIENT * /;
/ *! 40101 SET CHARACTER_SET_RESULTS = @ OLD_CHARACTER_SET_RESULTS * /;
/ *! 40101 SET COLLATION_CONNECTION = @ OLD_COLLATION_CONNECTION * /;

általában minden
A nyomtatóban található parancsfájlok itt vásárolhatók itt scriptekhez

Kapcsolódó cikkek