Autor | Zpráva | ||
---|---|---|---|
Fastman Profil |
#1 · Zasláno: 10. 2. 2014, 18:20:14
Dobrý den,
Chtěl bych do: elseif (isset($_SESSION['steamid'])) zadat ještě jednu $_SESSION do stejného řádku. Například: $_SESSION[cas]. Jak to lze udělat? Děkuji za odpověď. |
||
xROAL Profil |
#2 · Zasláno: 10. 2. 2014, 18:51:05
Asi máš na mysli niečo takéto:
elseif(isset($_SESSION['steamid']) && isset($_SESSION['cas'])) Pozri si logické operátory. |
||
Fastman Profil |
Děkuji za odpověď.
Bohužel mi to nefunguje. Tady je zdroják. <head> <link rel="stylesheet" href="./style.css" type="text/css"/> <link href='http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz' rel='stylesheet' type='text/css' /> <meta http-equiv="content-type" content="text/html"; charset=UTF-8" /> </head> <?php $path = "/wp/skin/2/"; // máte-li stránky v rootu, nechte bezezměny, pokud je provozujete v nějakém podadresáři, zadejte jeho jméno // např. stránky mám na moje-domena.cz/adresar/, tak zadám $path = "/adresar/"; // funkce pro ošetření vstupních dat od uživatele // viz http://cz.php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc function db_escape($str) { return mysql_real_escape_string(@get_magic_quotes_gpc() ? stripslashes($str) : $str); } include "connect.php"; // soubor pripojeni_db.php zajistí připojení k databázi a výběr databáze, se kterou pracujeme session_start(); // tohle je nezbytné a je nutné uvést tuto funkci na všech stránkách, kam se přihlášený uživatel dostane // možnost nastavit automatické spouštění session_start() nechávám stranou // zjistíme, co chce uživatel dělat if (isset($_SESSION['steamid']) && isset($_GET['logout'])) { // uživatel je přihlášen a chce se odhlásit, takže smažeme údaje o přihlášení $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } session_unset(); session_destroy(); // a přesměrujeme na index.php header("location:.$path."index.php].$path."index.php]http://".$_SERVER['SERVER_NAME'].$path."index.php", TRUE, 303); exit; } elseif(isset($_SESSION['steamid'])) { //session_regenerate_id(); // ochrana před session fixation, lze vynechat // uživatel je přihlášen a nechce se odhlásit, zde zobrazíme obsah pro registrované // můžeme využit include apod. // tohle informuje uživatele, že je přihlášen a vypíše odkaz pro odhlášení // můžeme to ale přemístit do includovaného souboru (kam se nám hodí) echo "<div class=\"info\"><p>Vítejte v administraci VIP CMG 1.0. <br> Momentálně jste přihlášen jako:<b> $_SESSION[steamid] </b><a href=\".$path."index.php?logout=1\">odhlásit</a></p></div>\n].$path."index.php?logout=1\">odhlásit</a></p></div>\n]http://".$_SERVER['SERVER_NAME'].$path."index.php?logout=1\">odhlásit</a></p></div>\n"; echo '<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript"> $(function() { /* For zebra striping */ $("table tr:nth-child(odd)").addClass("odd-row"); /* For cell text alignment */ $("table td:first-child, table th:first-child").addClass("first"); /* For removing the last border */ $("table td:last-child, table th:last-child").addClass("last"); }); </script>'; echo '<div id="content"> <table cellspacing="0"> <tr><th>STAV SLUŽEB</th><th></th> <tr><td>Zaplacený skin:</td><td>$zaplaceno</td></tr> <tr><td>Datum vypršení:</td><td>$cas</td></tr> <tr><td>Nastaveno:</td><td>$stavnastaveni</td></tr> </table> </div>'; } else { // uzivatel není přihlášen // pokud odeslal přihlašovací údaje, snaží se přihlásit if (isset($_POST['steamid']) && isset($_POST['heslo'])) { // ošetříme vstupní údaje od uživatele // funkce trim() má význam hlavně u hesla, ořeže bílé znaky (např. mezery) na začátku a konci řetězce $steamid = db_escape(trim($_POST['steamid'])); $heslo = db_escape(trim($_POST['heslo'])); // zjistíme, jestli je v databázi daný uživatel a jestli se prokazuje platným heslem // více o ukládání hesel, např. o tzv. solení, najdete na http://php.vrana.cz/ukladani-hesel.php $result = mysql_query("SELECT COUNT(*) FROM seznam WHERE steamid = '$steamid' AND heslo = sha1('$heslo')"); if (mysql_result($result, 0)) // předpokládáme, že dotaz proběhl úspěšně, pokud ne, bude stejně vráceno false // true (a splnění podmínky) nastane pouze tehdy, když v databázi existuje správná kombinace uživatelského jména a hesla { // uložíme potřebné SESSION proměnné $_SESSION['steamid'] = $steamid; $_SESSION['cas'] = $cas; $_SESSION['cas_prihlaseni'] = time(); // čas, kdy se uživatel přihlásil, pozor, nejedná se o čas poslední akce, nevím, jestli ho využijete, může být smazán // po přihlášení uživatele přesměrujeme na index.php header ("location:.$path."index.php].$path."index.php]http://".$_SERVER['SERVER_NAME'].$path."index.php", TRUE, 303); exit; // aby bylo pravidlům učiněno zadost, zde stejně končí podmínka a jiná nemůže být splněna } else { // uživatel zadal neplatné přihlašovací údaje // přesměrujeme ho na index.php a zobrazíme chybovou hlášku header ("location:.$path."index.php?incorrect_login=1].$path."index.php?incorrect_login=1]http://".$_SERVER['SERVER_NAME'].$path."index.php?incorrect_login=1", TRUE, 303); exit; } } else { // uživatel není přihlášen a ani neodeslal přihlašovací formulář, tak mu ho zobrazíme echo "<div>"; if (isset($_GET['incorrect_login'])) { echo '<div class="error">Zadali jste neplatné uživatelské jméno nebo heslo.</div>'; } // zobrazíme formulář pro přihlášení ?> <form action="index.php" method="post"> <h1><center>Administrace VIP CMG</center></h1> <fieldset id="user-details"> <label for="steamid">Tvoje SteamID:</label> <input type="text" name="steamid" value="" /> <label for="heslo">Heslo:</label> <input type="password" name="heslo" value="" /> <input type="submit" value="Přihlásit" name="submit" class="submit" /> <br> </fieldset> <!--end user-details--> </fieldset> <!-- end user-message --> </form> <?php } } ?> Momentálně jste přihlášen jako: $_SESSION[steamid] tohle funguje (ukáže se jeho ID pomocí něhož se přihlásil). Jak ale přidám do tabulky ( po přihlášení, jako je to u $_SESSION[steamid]), aby to vypsalo z databáze hodnotu "cas", proměnná $cas nebo jiné hodnoty, například: "zaplaceno" ; "stavnastaveni". Děkuji za odpověď. |
||
Časová prodleva: 10 let
|
0