| 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: 13 let
|
|||
0