| Autor | Zpráva | ||
|---|---|---|---|
| Werewolf Profil |
#1 · Zasláno: 29. 3. 2009, 14:01:43 · Upravil/a: Werewolf
Zdravím, mám problém se sessions:
- Pokud není "setnuta" session, zobraz login form. - Pokud je setnuta, zobraz ankety v databázi. - Pokud je setnuta a k tomu je action == "new", zobraz form pro novou anketu. - Pokud je setnuta a k tomu je action == "edit", zobraz form pro editaci ankety. - Pokud je setnuta a k tomu je action == "logout", "unsetni" ji. A ten problém: Při zadání hesla do login formu se nic nestane, až pokud ho zadám podruhé, zobrazí se ankety v databázi. Kód: admin.php <?php
session_start();
$seet = "tryanks_ank";
mysql_pconnect("localhost", "admin", "loling") or die("mysql_pconnect() selhal");
mysql_select_db("default") or die("mysql_select_db() selhal");
$pass = @$_SESSION['anks_logps'];
$ps = "df53ca268240ca76670c8566ee54568a";
$act = @$_GET['action'];
if($pass != $ps || !isset($pass)) { $inc = "ai/ps.php"; $tt = "Pro vstup zadejte heslo!"; }
if($pass == $ps && $act == 0) { $inc = "ai/act0.php"; $tt = "Přehled anket"; }
if($pass == $ps && $act == "new") { $inc = "ai/new.php"; $tt = "Nová anketa"; }
if($pass == $ps && $act == "edit") { $inc = "ai/edit.php"; $tt = "Editovat anketu"; }
if($pass == $ps && $act == "logout") { $tt = "Odhlásit se"; Header("Location: ?"); session_destroy(); }
if($pass == $ps && !isset($act)) { Header("Location: ?action=0"); }
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="copyright" content="Werewolf" />
<title>Anketní systém | <?php echo($tt); ?></title>
<style>
#menu {position: fixed; left: 0px; bottom: 0px; top: 0px; height: 100%; width: 200px; text-align: center; vertical-align: top; background-color: rgb(138, 138, 255);}
#mnitm {background-color: rgb(0, 0, 100); border: 3px solid red; width: 85%; height: 50px; margin: 20px auto; vertical-align: center; cursor: pointer;}
#menu A {text-decoration: none; font-family: Comic Sans MS; font-weight: bold; font-size: 12pt; color: white;}
#bottom {text-align: center; position: fixed; bottom: 0px; left: 0px; right: 0px; height: 20px; background-color: green; font-family: Courier New; color: white;}
TH {text-align: right; padding-right: 20px; border-right: 1px solid black; font-family: Comic Sans MS; font-size: 120%; width: 30%; width: 50%;}
TD {text-align: left; padding-left: 20px; border-left: 1px solid black; font-family: Comic Sans MS; font-size: 90%; width: 50%;}
FORM.new {margin: 25px;}
FORM.new FIELDSET LEGEND {font-family: Tahoma; font-size: 16pt; color: brown; padding: 20px;}
VOL {width: 25px;}
#content {position: absolute; left: 200px; bottom: 20px; top: 0px; right: 0px; padding: 10px;}
TD.submit {border: none; text-align: right; height: 50px; vertical-align: botttom;}
TABLE.act0 TD {border: 1px solid black; padding: 3px; font-weight: bold; width: 1%;}
TABLE.act0 TH {border: 1px solid blue; padding: 5px; text-align: center; font-size: 12pt; font-family: Arial; width: 1%;}
TABLE.edit TD, TABLE.edit TH {border: none; padding: 5px; text-align: left;}
</style>
</head>
<body>
<div id="menu">
<div id="mnitm" onClick="location.assign('?password=<?php echo($pass); ?>&action=0');">
<a href="?password=<?php echo($pass); ?>&action=0" title="Přehled anket, které sem dávali jiní">Přehled anket</a></div><hr />
<div id="mnitm" onClick="location.assign('?password=<?php echo($pass); ?>&action=new');">
<a href="?password=<?php echo($pass); ?>&action=new" title="Vytvořit novou anketu">Nová anketa</a></div><hr />
<div id="mnitm" onClick="location.assign('?password=<?php echo($pass); ?>&action=edit');">
<a href="?password=<?php echo($pass); ?>&action=edit" title="Editovat anketu zadáním hesla a ID">Editovat anketu</a></div><hr />
<div id="mnitm" onClick="location.assign('?password=<?php echo($pass); ?>&action=logout');">
<a href="?password=<?php echo($pass); ?>&action=logout" title="Odhlásit se">Odhlásit se</a></div>
</div>
<div id="content">
<?php if(isset($nt)) { echo($nt."<br /><br />"); } include($inc); ?>
</div>
<div id="bottom">
... ... ...
</div>
</body>
</html>ai/ps.php <form action="http://<?php echo($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']); ?>" method="post"> <h1>Pro vstup musíte zadat heslo!</h1> <input type="password" name="enterps" /> <input type="submit" name="entersb" value="OK" /> </form> <?php @$_SESSION['anks_logps'] = md5($_POST['enterps']); ?> Nevíte, prosím, někdo, čím to je? Díky |
||
| AM_ Profil |
#2 · Zasláno: 29. 3. 2009, 14:13:35
Protože ho ze začátku taháš ze session místo z POSTu. Nejdřív musíš ošetřit, jestli neposlal heslo POSTem, uložit ho do SESSION, a pak až ho kontrolovat.
|
||
| Werewolf Profil |
#3 · Zasláno: 29. 3. 2009, 14:17:31 · Upravil/a: Werewolf
Edit:
[...smazáno...] Vyřešeno, díky :-) |
||
|
Časová prodleva: 17 let
|
|||
0