hej. dík chalani. u mna to bolo sposobené oboma príčinami ktoré ste spomenuli. už mi to chybu nevyhadzuje. v každom prípade mi to teraz nejako nefunguje. mám teda súbor login ktorý obsahuje tento kod na začiatku
Kód:
<?php
$email=$_POST['email'];
session_start();
$_SESSION ["logged"] = $email;
potom mám další súbor - v podstate úvodnú stránku po prihlásení
Kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="styl.css" />
<link rel="shortcut icon" href=""/>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"
/>
<title>Materiály</title>
</head><body>
<?php if (!isset($_SESSION['logged']))
{
echo "Nejste přihlašen!<br />";
echo "<a href='index.php'>"."Přihlašte se"."</a>";
die;
}
else
{
echo "Materialy";
?>
<br />
<a href="logout.php">Odhlaste se</a>
<?php
}
?>
</body></html>
no a problém je v tom že mi to ukazuje že nie som prihlásený.
no a nechápem tomu lebo ved to by mala byt globálna premenná prístupná ktorémukolvek skriptu a ked potom v tom druhom súbore volam
!isset($_SESSION['logged'], tak by sa malo zistit ze to je nastavene a pustit ma to k obsahu pre prihlásených.
nasiel som nejake navody k tomu ktore používali session_register ale dozvedel som sa že sa to už nejak prestáva používat a že vlastne náhradou za to je práve $_SESSION.
experimentoval som s tým že som upravil ten súbor pre prihlásených takto:
Kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="styl.css" />
<link rel="shortcut icon" href=""/>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250"
/>
<title>Materiály</title>
</head><body>
start session ();
<?php if (!isset($_SESSION['logged']))
{
echo "Nejste přihlašen!<br />";
echo "<a href='index.php'>"."Přihlašte se"."</a>";
die;
}
else
{
echo "Materialy";
?>
<br />
<a href="logout.php">Odhlaste se</a>
<?php
}
?>
</body></html>
teda som tam dal na začiatok
start session (); => to mi síce sposobilo radost ze prihlasenie fungovalo, ale hned som zistil že to funguje furt; aj ked sa prihlasim blbými udajmi alebo neprihlásim
čo vlastne robím zle? uvazoval som ci by som nemal tie session premenné nejako postovat tej dalsej stranke ale sa mi to zda blbost ked by to mala byt globalna premenna a mala by byt pristupna vsetkym skriptom na servry
register_globals v php.ini mam zapnuté na on a tiež expiracia je tam nastavena na nejaké 3 hodiny, čiže sa nemohlo stat že by som tam mal napr. 0 a okamžite ta session expirovala