| | |
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Autor | Správa |
---|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice |
Mam jednoduchy script na prihlasenie uzivatela: Kód: <? Header("Pragma: No-cache"); Header("Cache-Control: No-cache, Must-revalidate"); Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");
$MC = MySQL_Connect("xxxxxx", "xxxxxx", "xxxxxx"); $MS = MySQL_Select_Db("xxxxxxx");
If ((IsSet($_POST[login])) AND (IsSet($_POST[password]))): $password=$_POST[password]; $login=$_POST[login]; $p = MD5(sha1($password));
$MSQ = MySQL_Query("SELECT * FROM users WHERE (login LIKE '$login') AND (password LIKE '$p')");
If (MySQL_Num_Rows($MSQ) <> 1): echo "Neautorizovaný prístup"; Exit;
Else: $SN = "autorizacia"; Session_name("$SN"); Session_start(); $sid = Session_id(); $date = Date("U"); $at = Date("U") - 1800;
$MSQ = MySQL_Query("INSERT INTO autorizacia VALUES ('$sid', $date)"); $MSQ = MySQL_Query("DELETE FROM autorizacia WHERE date < $at"); Endif; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> <head> <title>Autorizacia</title> </head>
<body> Prihlasenie prebehlo v poriadku. Tu bude stranka.
Dalsia podstranka <a href='stranka.php'>Link</a>
<? Elseif (IsSet($lo)):
$SN = "autorizacia"; Session_name("$SN"); Session_start(); $sid = Session_id();
$MSQ = MySQL_Query("DELETE FROM autorizacia WHERE id = '$sid'"); echo "Boli ste odhlaseny"; Else: ?> <form action="autorizacia.php" method="post"> <input type="Text" name="login"> <br> <input type="Password" name="password"> <br> <input type="Submit" value="Prihlasenie"> </form> <?Endif;?> </body> </html> Toto funguje dobre - teda po prihlaseni skontroluje udaje s udajmi v databaze a vypise Prihlasenie prebehlo v poriadku. Tu bude stranka. Potom tam mam link na nejaku dalsiu podstranku: Kód: Dalsia podstranka <a href='stranka.php'>Link</a>
Ked sa otvori tato dalsia stranka, includujem do nej script napr. overenie.php, ktory overi, ci ma uzivatel pristup na tuto stranku - teda iba ak je prihlaseny. Ten script overenie.php je tu: Kód: <?
$MC = MySQL_Connect("xxxxxx", "xxxxxx", "xxxxxx"); $MS = MySQL_Select_Db("xxxxxx");
$SN = "autorizacia";
Session_name("$SN"); Session_start(); $sid = Session_id(); $date = Date("U"); $ad = Date("U") - 300;
$MSQ = MySQL_Query("SELECT * FROM autorizacia WHERE (id = '$sid') AND (date >= $ad)");
If (MySQL_Num_Rows($MSQ) <> 1): echo "Neautorizovaný prístup"; Exit; Else: $MSQ = MySQL_Query("UPDATE autorizacia SET date = $date WHERE id = '$sid'"); Endif; MySQL_Close($MC);
?> Teda ta podstranka vyzera napr. takto /stranka.php/: Kód: include ('overenie.php');
bla blabla ....
<a href="autorizacia.php?lo=true">Odhlásit sa</a> Problem je v tomto includovanom scripte pri funkcii Session_start(); - tu mi vypisuje Kód: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /domains1/...../root/stranka.php:2) in /domains1/.../root/overenie.php on line 9 Line 9 je presne to Session_start();. Lenze ja to musim pouzit v kazdej podstranke. Neviem ake headers boli uz poslane, ked je ten script includovany na samom zaciatku stranky. Viete mi prosim poradit v com je chyba? Diky
|
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | Napísal mondzo: 26.03.2008 12:35 | |
|
Skontroluj si, ci v subore overenie.php si neodoslal uz nieco na obrazovku pred tym ako volas session_start();
To znamena, ze aj jedna medzera (jeden space) moze sposobovat problemy. Skontroluj si to. Inak tam chybu nevidim. Malo by to fungovat.
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
Kód: <? Header("Pragma: No-cache"); Header("Cache-Control: No-cache, Must-revalidate"); Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");
$MC = MySQL_Connect("xxxxxx", "xxxxxx", "xxxxxx"); $MS = MySQL_Select_Db("xxxxxxx");
If ((IsSet($_POST[login])) AND (IsSet($_POST[password]))): $password=$_POST[password]; $login=$_POST[login]; $p = MD5(sha1($password));
$MSQ = MySQL_Query("SELECT * FROM users WHERE (login LIKE '$login') AND (password LIKE '$p')");
If (MySQL_Num_Rows($MSQ) <> 1): echo "Neautorizovaný prístup"; Exit;
Else: $SN = "autorizacia"; Session_start(); Session_name("$SN"); $sid = Session_id(); $date = Date("U"); $at = Date("U") - 1800;
$MSQ = MySQL_Query("INSERT INTO autorizacia VALUES ('$sid', $date)"); $MSQ = MySQL_Query("DELETE FROM autorizacia WHERE date < $at"); Endif; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> <head> <title>Autorizacia</title> </head>
<body> Prihlasenie prebehlo v poriadku. Tu bude stranka.
Dalsia podstranka <a href='stranka.php'>Link</a>
<? Elseif (IsSet($lo)):
$SN = "autorizacia"; Session_start(); Session_name("$SN"); $sid = Session_id();
$MSQ = MySQL_Query("DELETE FROM autorizacia WHERE id = '$sid'"); echo "Boli ste odhlaseny"; Else: ?> <form action="autorizacia.php" method="post"> <input type="Text" name="login"> <br> <input type="Password" name="password"> <br> <input type="Submit" value="Prihlasenie"> </form> <?Endif;?> </body> </html> Kód: <? $MC = MySQL_Connect("xxxxxx", "xxxxxx", "xxxxxx"); $MS = MySQL_Select_Db("xxxxxx");
$SN = "autorizacia"; Session_start(); Session_name("$SN"); $sid = Session_id(); $date = Date("U"); $ad = Date("U") - 300;
$MSQ = MySQL_Query("SELECT * FROM autorizacia WHERE (id = '$sid') AND (date >= $ad)");
If (MySQL_Num_Rows($MSQ) <> 1): echo "Neautorizovaný prístup"; Exit; Else: $MSQ = MySQL_Query("UPDATE autorizacia SET date = $date WHERE id = '$sid'"); Endif; MySQL_Close($MC);
?>
1, najkôr spusti session ($session_start()) až tak do používaj
2, session je ako header a mal by byť pre znakovým výstupom ...
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 26.03.2008 13:04 | |
|
nie, nie, mondzo, tomu session start predchadza len toto Kód: $MC = MySQL_Connect("xxxxxx", "xxxxxx", "xxxxxx"); $MS = MySQL_Select_Db("xxxxxx");
$SN = "autorizacia";
Session_name("$SN");
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
veď ti vravím ak môžeš používať:
Session_name("$SN");
keď si nespustil session
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 26.03.2008 13:13 | |
|
nie, to som tak uz skusal, to iste vypisuje. Ved ten prvy script autorizacia.php fungoval aj tak. Problem je len s tym overenim.
|
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | Napísal mondzo: 26.03.2008 13:44 | |
|
to Tominator: session_name sa vzdy vola pred session_start ak pouzivas vlastne session name.
to neopagan -> ja som vravel len medzera, jeden space, pozri si to, biele znaky, urcite jeden niekde najdes, naposledy som mal taky isty problem za bodkociarkou, pripadne niekde inde, skus vymazat vsetko a skus len session_name a session_start v overenie subore a ceckni ich cez isset napr, hod do session jednu premennu a tak krok po kroku hladaj chybu.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 26.03.2008 14:17 | |
|
mondzo: nahodil som este raz cely script a napodiv teraz to funguje ... no nechapem...
jeden problem vsak este mam - ak dam ze odhlasit, tak mi vyhodi opat prihlasovaciu tabulku, to je OK. Ale ak teraz zadam adresu stranka.php, tak ma tam v pohode pusti, berie to ako keby som bol stale prihlaseny. A ked v prehliadaci vymazem cookies, tak uz ma nepusti. Mal by som dat pri odhlaseni session destroy alebo co? Teraz to len vymaze z databazy to session id.
|
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | Napísal mondzo: 26.03.2008 14:30 | |
|
nieco mas zle pri tom odhlasovani.
Ved aj ked vymazes session_id z databazy, tak by ta to uz nemalo pustit aj v pripade ze neskoncis php session.
Pri odhlaseni:
1. vymaz session id z databazy -> to vravis ze mas
2. znic php session nasledovne:
Kód: // php session // unset vsetky premenne session, ktore si nastavil unset($_SESSION['tvoje premenna1']); unset($_SESSION['tvoje premenna2']); $_SESSION = array(); session_destroy();
// browser session cookie if (isset($_COOKIE[$SN])) setcookie($SN, "", time()-3600, "/");
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 26.03.2008 18:48 | |
|
Aha tu som mal chybu: Kód: <? Elseif (IsSet($lo)):
$SN = "autorizacia"; Session_start(); Session_name("$SN"); $sid = Session_id();
$MSQ = MySQL_Query("DELETE FROM autorizacia WHERE id = '$sid'"); echo "Boli ste odhlaseny"; Else: ?> namiesto Elseif (IsSet($lo)): som dal IsSet ($_GET['lo']), lebo nemal tu premennu $lo. Teraz ju dostane z URL, pretoze odkaz na odhlasenie je takyto: <a href="autorizacia.php?lo=true">Odhlásit sa</a>
Ok, teraz to uz slape ako ma....
|
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | Napísal mondzo: 27.03.2008 10:15 | |
|
aj tak by som doporucoval ten kod poupravit troska a zaroven znicit aj php session.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 27.03.2008 10:39 | |
|
Ok, to som tam doplnil. Vdaka.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Session problem v PHP, ASP | 16 | 1100 | 02.06.2008 14:20 Tominator | | Session -- problem :( [ Choď na stránku: 1, 2 ] v PHP, ASP | 32 | 1593 | 14.06.2009 18:23 sedlák | | Problem so session v PHP, ASP | 7 | 502 | 26.08.2011 11:49 kruzin99 | | problém so Session v PHP, ASP | 10 | 498 | 20.10.2010 10:07 davider137 | | problem so session v PHP, ASP | 10 | 421 | 01.12.2011 12:34 Bajzik | | Problem so Session v PHP, ASP | 17 | 714 | 18.02.2008 15:38 Blackshadow | | problem so session v PHP, ASP | 2 | 422 | 10.01.2009 13:02 blackman545 | | problém so session v PHP, ASP | 26 | 916 | 29.01.2010 19:34 M1rcO_o | | Problem so session v PHP, ASP | 14 | 1439 | 21.11.2007 15:07 Blackshadow | | Problém so session v PHP, ASP | 0 | 321 | 20.03.2010 18:21 M1rcO_o | | problem zo session v PHP, ASP | 3 | 444 | 08.12.2009 21:32 pilná lama glama | | [VYRIESENE] Problém so session v PHP, ASP | 2 | 496 | 30.03.2009 19:02 martin90 | | ďalší problém so session v PHP, ASP | 9 | 572 | 14.10.2008 20:17 rooobertek | | Problém so session v XP v Operačné systémy Microsoft | 1 | 356 | 07.07.2007 18:57 br4n0 | | Problém so session v Chrome v PHP, ASP | 4 | 426 | 14.11.2017 19:40 zaciatocnik | | Problem so session na CD v Audio programy | 5 | 687 | 15.03.2008 23:28 uniqat |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|