Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Práce se Session

Aktivity
Avatar
Kejmou
Člen
Avatar
Kejmou:13.3.2015 23:30

Ahoj,

chci se zeptat, jak by jste udělali script, že nepřihlášený uživatel neuvidí tlačítko a přihlášený uživatel to tlačítko vidí.

Děkuju.

 
Odpovědět
13.3.2015 23:30
Avatar
Patrik Smělý
Tvůrce
Avatar
Odpovídá na Kejmou
Patrik Smělý:13.3.2015 23:38

Ahoj, jednoduše při přihlášení dám uživateli Session jmeno. A na stránce kde je to tlačítko dám jednoduchou podmínku.

if($_SESSION['jmeno']) {
   echo '<button>Tlačitko</button>';
}

tato metoda je jen ukázková proto neobsahuje nějaké zabezpečení např jako tokeny v db.

 
Nahoru Odpovědět
13.3.2015 23:38
Avatar
Kejmou
Člen
Avatar
Odpovídá na Patrik Smělý
Kejmou:13.3.2015 23:40

Já jsem dělal... (viz přiklad)

if(empty($_SESSION["login"])){

}
else{
if(isset($_SESSION["login"])){
echo '<button>Tlačitko</button>';

}
}
a nefunkční
 
Nahoru Odpovědět
13.3.2015 23:40
Avatar
Patrik Smělý
Tvůrce
Avatar
Odpovídá na Kejmou
Patrik Smělý:13.3.2015 23:45

No děláš jednu věc několikrát, stačí když uděláš

if(isset($_SESSION["login"])){
echo '<button>Tlačitko</button>';
}
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
13.3.2015 23:45
Avatar
Odpovídá na Kejmou
Michal Šmahel:14.3.2015 0:11

Toto by možná i fungovalo, jen tam máš nějak divně zapsané

else if

Vypadalo by to takto:

if(empty($_SESSION["login"])){

}
else if(isset($_SESSION["login"])){
    echo '<button>Tlačitko</button>';
}

Ale lepší způsob psal Patrik Smělý.

Editováno 14.3.2015 0:12
Nahoru Odpovědět
14.3.2015 0:11
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Kejmou
Člen
Avatar
Kejmou:14.3.2015 0:16

Spokojenost, jde to podle mých představ. :-) Děkuji

 
Nahoru Odpovědět
14.3.2015 0:16
Avatar
Creevek
Člen
Avatar
Creevek:14.3.2015 9:14

Tohle jsem dělal asi před třemi dny s tím rozdílem že tlačítko bylo vidět pořád ale měnilo se value a funkce celého tlačítka. :D

Nahoru Odpovědět
14.3.2015 9:14
Lenost matka pokroku.
Avatar
Neaktivní uživatel:14.3.2015 9:47

No a když už jsme taky u toho, tak by bylo vhodně používat šablonovací php:

        ...
        ...
    </div>
<? if( isset( $_SESSION[ "login" ] ) ) : ?>
    <button>Tlačtko pro přihlášeného
<? endif ?>
    <div class="...">
        ...
Nahoru Odpovědět
14.3.2015 9:47
Neaktivní uživatelský účet
Avatar
Kejmou
Člen
Avatar
Odpovídá na Neaktivní uživatel
Kejmou:14.3.2015 11:02

Mohu se zeptat, co je to endif?

 
Nahoru Odpovědět
14.3.2015 11:02
Avatar
Odpovídá na Kejmou
Martin Konečný (pavelco1998):14.3.2015 11:03

Konec ifu :D
Je to jako konec složené závorky.

if (podmínka) {
  // kód
}

je stejné jako

if (podmínka):
  // kód
endif;
Nahoru Odpovědět
14.3.2015 11:03
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Kejmou
Jan Lupčík:14.3.2015 11:04

Příkaz k ukončení if. Místo {} použiješ : a endif. :)

Jak píše Martin Konečný (pavelco1998), který byl rychlejší. :D

Editováno 14.3.2015 11:05
Nahoru Odpovědět
14.3.2015 11:04
TruckersMP vývojář
Avatar
Odpovídá na Kejmou
Lukáš Červený:14.3.2015 11:07

Alternativní (šablonovací) forma zápisu if. HTML kód mezi

if(podmínka) : <HTML> endif;

se vypíše pouze při splněné podmínce. Stejně tak funguje

elseif (podmínka):
else :

Tady je dokumentace: http://php.net/…e-syntax.php

 
Nahoru Odpovědět
14.3.2015 11:07
Avatar
Odpovídá na Kejmou
Neaktivní uživatel:14.3.2015 16:05

Ostatní už odpověděli :) Tento přístup bych vždy preferoval (samozřejmě krom frameworků, které mají často svojí vlastní šablonovací syntaxi).

// Stejně tak jde napsat třeba i for, foreach nebo while

Editováno 14.3.2015 16:06
Nahoru Odpovědět
14.3.2015 16:05
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.