Autor | Zpráva | ||
---|---|---|---|
Nox_ Profil * |
#1 · Zasláno: 7. 11. 2007, 19:42:28
Ahoj, mám problém při přenášení hodnot v sessions.
mám skript login.php if (!empty($_POST['Login']) and !empty($_POST['Heslo'])) { // jsou vyplneny policka ve formulari if (strlen($_POST['Login'])<32 and strlen($_POST['Heslo'])<32) { // delka Loginu a Hesla neni vetsi nez 32 $_POST['Heslo'] = md5($_POST['Heslo']); $dotaz = mysql_query("SELECT IDHrace, Typ_uctu, Povoleny FROM Hraci WHERE Login LIKE '".$_POST['Login']."' AND Heslo LIKE '".$_POST['Heslo']."'") or die(mysql_error()); if (mysql_num_rows($dotaz) != 0) { // záznam je v DB $pristup = MySQL_Fetch_Array($dotaz); // if ($pristup['Povoleny']==0) { echo "Účet nebyl povolen, nebo je blokován."; } $_SESSION['IDHrace'] = $pristup['IDHrace']; $dotaz = mysql_query("SELECT UNIX_TIMESTAMP(Start) AS Start, UNIX_TIMESTAMP(Konec) AS Konec FROM System"); $system = mysql_fetch_array($dotaz); if ($system['Start']<time(now) and time(now)<$system['Konec'] or $pristup['Typ_Uctu']==1 or $pristup['Typ_uctu']==2 or $pristup['Typ_uctu']==3) { $dotaz = mysql_query("SELECT IDPostavy FROM Postavy WHERE (IDHrace LIKE '".$_SESSION['IDHrace']."')"); if (mysql_num_rows($dotaz)==0) { Header("Location: http://../logout.php"); } else { $pristup = mysql_fetch_array($dotaz); $_SESSION['IDPostavy'] = $pristup['IDPostavy']; Header("Location: http://../php/index.php"); } } Ten nastavuje $_SESSION['IDHrace'] a $_SESSION['IDPostavy'] a přesměrovává na index.php v jinem adresari. Index.php obsahuje: <?php session_start(); if (!isset($_SESSION['IDHrace'])) { Header("Location: http://heroonline.mysteria.cz/php2/logout.php"); } else { include("opendb.php"); } ?> A logout.php <?php session_start(); session_destroy(); Header("Location: http://heroonline.mysteria.cz/php2/login.php"); ?> Je tam někde nějaké bordel, díky čemu vždy zkončim na login.php, můžete mi pomoct jej odhalit? |
||
Nox_ Profil * |
#2 · Zasláno: 7. 11. 2007, 20:30:19
Upřesnění border je někde tady:
if ($system['Start']<time(now) and time(now)<$system['Konec'] or $pristup['Typ_Uctu']==1 or $pristup['Typ_uctu']==2 or $pristup['Typ_uctu']==3) { // Hra právě probíhá // Nebo neprobíhá, ale je přístupná pouze pro 'Testery'=3, 'Vyvojáře'=2 nebo 'Administratora'=1 $dotaz = mysql_query("SELECT IDPostavy FROM Postavy WHERE (IDHrace LIKE '".$idhrace."')"); if (mysql_num_rows($dotaz)==0) { Header("Location: http://heroonline.mysteria.cz/php2/index.php?p=create_hero"); } else { $pristup = mysql_fetch_array($dotaz); $_SESSION['IDPostavy'] = $pristup['IDPostavy']; Header("Location: http://heroonline.mysteria.cz/php2/index.php"); } } na login.php vypisuju obsah promennych $_SESSION['IDHrace'] a $_SESSION['IDPostavy'] a jen IDHrace má hodnotu. Aby se to vypisovalo, je nutne zapoznamkovat radek session_destroy() v logout.php Podle mě je syntaxe v pořádku, takže jde nejspíš o překlep, ale po třech hodinach čumění do toho jej už fakt nevidim... :( |
||
Časová prodleva: 16 let
|
0