Autor | Zpráva | ||
---|---|---|---|
kesaj Profil |
#1 · Zasláno: 13. 6. 2014, 18:30:35
Dobrý deň prajem.
Chcem sa spýtať, ako zabezpečiť, aby sa mi niekto nedostal na podstránku, iba keď je prihlásený? Mám prihlásenie pomocou jednoduchéhé php+mysql. index.php <title>Prihlásenie</title> <body> <form action="login.php" method="post"> <table> <legend>Prihlásenie zboru</legend> <tr> <td>Číslo zboru: </td> <td><input type="number" name="nick" value="" size="25" tabindex="1" /></td> </tr> <tr> <td>Heslo: </td> <td><input type="password" name="heslo" value="" size="25" tabindex="2" /></td> </tr> <tr> <td colspan="2"><input type="submit" name="submit" value="Prihlásiť sa" /></td> </tr> </table> </form> </body> login.php <?php include "mysql.php";/* pripojenie k databáze */ $login = mysql_real_escape_string($_POST["nick"]);/* cislo zboru zadané vo formulárí */ $heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané vo formulári */ $md5heslo = md5($heslo);/* Pomocou funkcie md5() heslo zahashujeme */ /* — DOTAZ K MYSQL PRE OVERENIE PRIHLASOVACICH DAT — */ $dotaz = mysql_query("select * from zbory where cislo_zboru = '$login' and heslo = '$heslo'"); $overeni = mysql_num_rows($dotaz); $row = mysql_fetch_array($dotaz); if($overeni == 1) { session_start(); $_SESSION['login'] = stripslashes($login); $_SESSION['id'] = $row["id"]; header("Location: stiahni.php"); die(); } else { echo"Zadali ste nespravne cislo zboru alebo heslo!"; } ?> stiahni.php <meta http-equiv="refresh" content="2;url=subory/audio.rar"> <p style="text-align:center;font-size:20px;color:red;">Začína sa sťahovanie nahrávky...</p> teraz sa bezproblémov dostanem na http://www.xxx.sk/stiahni.php keď však skúšam cez session, tak mi vypíše: Warning: session_start(): Cannot send session cache limiter - headers already sent |
||
Jcas Profil * |
#2 · Zasláno: 13. 6. 2014, 18:46:20
Jsem laik, takže nevím, jestli je to zcela správně. Ale v každém souboru, kam chceš přístup jen po přihlášení musíš dát jako první session_start() a pak nějaké ověření.
Já mám v každém takovém souboru na začátku toto: session_start(); //-----KONTROLA PŘIHLÁŠENÍ----- if(!isset($_SESSION['user'])) { // - není přihlášen session_unset(); session_destroy(); // ukonči session header("Location: ./../login.php"); // přesměruj na přihlášení } elseif($_SESSION["access_time"] < strtotime("-30 minutes")) { //vypršel čas header("Location: ./../login.php"); } |
||
kesaj Profil |
#3 · Zasláno: 13. 6. 2014, 20:28:37
vdaka za radu.
uz som to vyriesil, mal som problem s medzerou (BOM) spravil som to takto: <?php session_start(); ?> <?php if($_SESSION['id']!=""){ echo'<strong>Si prihlaseny ako </strong> <a href="logout.php">Odhlasit</a> </br> <a href="subory/audio.rar">Stiahni si subor s nahravkou</a> '; } else { echo'Tato stranka je pristupna iba prihlasenym uzivatelom! <a href="index.php">Prihlasit sa mozete tu</a>'; } ?> |
||
Časová prodleva: 11 let
|
0