Autor Zpráva
Nox_
Profil *
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 *
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... :(

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: