zaheslování více stránek

5 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Vytvářel jsem podle různých návodů administraci k webu. Stránky jsou zaheslované pro jednoho uživatele a heslo je vloženo v kódu (index.php). Mám databází více uživatelů, kterým bych chtěl zpřístupnit tuto administraci. Chtěl jsem poprosit o radu, jak skript upravit, aby kontroloval uživatele z databáze, např. tabulky uzivatele a ne ze skriptu (pouze jednoho uživatele). Níže uvádím 3 hlavní skripty: 1. Přihlašovací formulář (login.php) <?php session_unset(); ?> <form action="index.php" method="post"> Uživatel: <input type="text" name="user"><br> Heslo: <input type="password" name="heslo"><br> <input type="submit" value="Příhlásit"> </form> 2. hlavní skript s kontrolou (index.php) <?php session_start(); $login = $_POST['user']; $pass = $_POST['heslo']; //přihlašovací údaje $login1 = 'admin'; $pass1 = 'heslo'; if (($login == $login1) and ($pass == $pass1) or ($_SESSION['authuser'] == 1)) { $_SESSION['authuser'] = 1; } else { echo "<meta http-equiv='Refresh' content='0 ; URL=login.php'>"; exit(); } ?> 3. skript (ten je ve všech ostatních stránkách) <?php if ($_SESSION['authuser'] != 1) { echo "<meta http-equiv='Refresh' content='0 ; URL=../index.php'>"; echo "<p>Nemáte oprávnění k prohlížení této stránky</p>\n"; exit(); } ?> Děkuji moc za pomoc
  2. no třeba se udělá z proměnné pole proměnných, viz http://cz.php.net/manual/en/function.array.php http://cz.php.net/manual/en/ref.array.php a údaje se uloží tam nebo se udělá opravdová tabulka v databázi odkud se data načtou http://cz.php.net/manual/en/book.mysql.php PS: místo: echo "<meta http-equiv='Refresh' content='0 ; URL=../index.php'>"; by bylo možná lepší použít http://cz.php.net/manual/en/function.header.php
  3. Není to přímo odpověď na otázku, ale mně se osvědčila HTTP autentizace přes .htpasswd - jednoduché a účinné.
  4. to jsem teď zkoušel. vytvořil jsem si v databázi tabulku s názvem USER a pokoušel se o porovnání dat s formuláře. Místo přihlašovacích údajů napsaných ve skriptu, jsem zkoušel se připojit k DB. Ovšem nevím, jak to upravit, aby to přesně fungovalo, protože teď to pustí každého (funkce while tam asi nemá být, nevím však, jak ji nahradit). Viz úprava skriptu níže: 2. hlavní skript s kontrolou (index.php) <?php session_start(); $login = $_POST['user']; $pass = $_POST['heslo']; //přihlašovací údaje include '../konfigurace.php'; //připojení databáze $overeni = MySQL_Query("SELECT * FROM user WHERE login = '$login1' AND heslo ='$pass1' ") or die($query_error); while ($entry = MySQL_Fetch_Array($fc_kontakt)): if (($login == $login1) and ($pass == $pass1) or ($_SESSION['authuser'] == 1)) { $_SESSION['authuser'] = 1; } else { echo "<meta http-equiv='Refresh' content='0 ; URL=login.php'>"; exit(); } endwhile; ?>
  5. no napr toto: <?php session_start(); $login = $_POST['user']; $pass = $_POST['heslo']; //přihlašovací údaje include '../konfigurace.php'; //připojení databáze $overeni = MySQL_Query("SELECT * FROM user WHERE login = '$login1' AND heslo ='$pass1' ") or die($query_error); if (MySQL_Num_Rows($overeni)>0){ $_SESSION['authuser'] = 1; }else{ echo "<meta http-equiv='Refresh' content='0 ; URL=login.php'>"; exit(); } ?>

← Zpět na všechna témata