Diskuze: odhlášení php
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


používám toto:
<ul class="navbar-nav ml-auto">
<?php if(isset($_SESSION['user_id'])) : ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/logout"><i class="fa fa-sign-out" aria-hidden="true"></i> Logout</a>
</li>
<?php else : ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/register">Register</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/login">Login</a>
</li>
<?php endif; ?>
</ul>
používám nějaký základní systém co parsuje url a podle toho vola třídu/metodu kontroleru, to asi používáš také
Ahoj, sice neznám pravila MVC, ale používám jednoduché funkční řešení.
mám stránku odhlasit.php, kde zničím SESSION, COOKIE (uložený token) provedu nějaký zápis do DB k tokenu a přesměruju uživatele někam.
Příklad (bez mého SQL):
<?php
session_destroy() ;
setcookie('token', $token, time() - 3600) ;
header('Location: ./index.php?logOff') ;
exit() ;
a na každé stránce má uživatel k dispozici tlačítko pro odhlášení, které ho přesměruje pouze na stránku odhlasit.php
Ahoj děkuji za odpověď ale já nemám problém s php kodem ale spíše jak danou funkci (metodu) zavolat.
resp asi bych mohl udělat něco jako
<form action="odhlaseni.php" method="post">
<button type="submit" name="odhlaseni" class="btn btn-primary">Odhlášení</button>
</form>
Ale když už teda dělám to mvc, tak bych si představoval že bych měl logku spíše v modelu.
Ještě mě teď napadla jedna věc že bych si udělal statickou metodu na odhlaseni a tu bych dal do "action" bylo by to dobře i po stránce mvc architektury ?
Aha... Jak jsem psal. MVC neznám. S tím ti asi neporadím.
Já mám tlačítko velice jednoduše a tupě vytvořené jen takto:
<a href="./odhlasit.php"><button type="button">Odhlásit</button></a>
Hele architektura mvc nemá žádná pravidla pro odhlášení.
Jen řeší oddělení prezentace (View), řídícího kódu (Controller) a
toho, co ta aplikace vlastně dělá (Model)
takže se připojuju, k tomu, co výše sepsal Zdeněk Srb
A ještě malá poznámka:
Pokud kód, který se provádí v nějaké akci nějakého Controlleru, není moc velký, tak nemusí nutně být oddělen zvlášť do samostatné Model třídy
Takže klidně ten kód pro odhlášení můžeš mít klidně v té
odhlašovací akci toho users controlleru nebo authentication controlleru, nebo
co tam máš ... protože zničení session fakt není dlouhý kód 
oddělit odhlašování nebo jakýkoli jiný modelový kód zvlášť do modelové třídy má smysl až ve chvíli, kdy
Asi bych se jako podíval na ten kurz objektový redakční systém MVC v PHP, tohle se tam určitě řeší.
Ahoj,
určitě máš nějaký login controler, který můžeš zavolat přes js a on ti něco vrátí, tzn. button bude mít value = "logout", tu pošleš do controleru, ten tě odhlásí, response bude třeba string "lotOutSuccess" a přesměruješ v JS.
Jednoduché, funkční a hlavně asi správné.
Podle nějakých "pravidel" MVC se to dá řešit tím způsobem, že v controlleru, např. UserController budeš mít metodu logout, na kterou když se odkážeš přes url: localhost/user/logout. Dovnitř do té metody jen napíšeš co chceš, aby se stalo potom. Takže podle toho co jsem vyčetl tak zničíš session a přesměruješ to na login.
A ako sa riesi, ked uzivatel zavrie okno bez odhlasenia, a v odhlaseni je status na offline update uzivatela??
Js event window.onbeforeunload spousti js na udalost tesne pred zavrenim
okna. Muzes uzivatele odhlasit. Ale chces to opravdu? Ja treba oteviram i 50
oken, kdyz neco delam, rekneme v 10 je jeden program. Kdyz by mi pri
vykrizkovani jednoho okna odhlasil uzivatele, tak asi nekoho prastim. Musel bys
nejakym zpusobem sledovat otevrena a zavrena okna a to neni moc spolehlive.
Proste, bud tam das velke cervene tlacitko odhlasit a nebo musis pockat, az
vyprsi session (server ma tusim 17 minut)
Zobrazeno 13 zpráv z 13.