Autor Zpráva
Jason
Profil *
Jaka je nejlepsi metoda php pro Login - Jmeno heslo do pristupu do administrace?
Mam to udelat pres phpsession?
mig
Profil *
Obvykle ano.
Jan Tvrdík
Profil
Našel jsem tohle: http://www.prievan.sk/2006/02/06/ako-na-to-ii-diel-zaheslovanie-strank y/

Já to řešil takhle:

<?php

session_start();
if(!isset($_SESSION["admin"])){
$_SESSION["admin"] = false;
}
/* tady je spojeni s DB, uložené do proměnné $spojení */
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
<title></title>
</head>

<body><div id="vsechno">

<div id="obsah">
<?php
if(!isset($_POST["odeslano"])) $_POST["odeslano"] = false; //inicializace $odeslano
if($_POST["odeslano"]):
do{
/* Test hesla - 1. spojka s DB */
$vysledek = mysql_query("SELECT * from nastaveni WHERE polozka = 'heslo'", $spojeni); //nacteme heslo z DB
$zaznam = mysql_fetch_array($vysledek);
if(md5($_POST["heslo"]) == $zaznam["hodnota"]){
$_SESSION["admin"] = true;
}
}while(false);
endif; // konec odesláno

/******************** VLASTNI TEXT STRANKY - ZACATEK ***********************/
if($_SESSION["admin"] == true): /* 3. Pokud přístup povolen, zobrazíme skrytý text: */ ?>
xxx: you're Master!
<?php
endif; //konec pro povolený přístup
/******************** VLASTNI TEXT STRANKY - KONEC ***********************/


if(!$_SESSION["admin"]): /* Pokud přístup není povolen, zobraz fomular */ ?>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<input name="heslo" type="password" />&nbsp;<input name="" type="submit" value="Přihlásit" />
<input name="odeslano" type="hidden" value="true" />
</form>
<?php
endif;
?>
</div>
<?php
echo "\n\n";
include("menu.php");
echo "\n\n";
include("../hlavicka.php");
echo "\n\n";
?>
</div>
</body>
</html>
24k
Profil *
do{
/* Test hesla - 1. spojka s DB */
$vysledek = mysql_query("SELECT * from nastaveni WHERE polozka = 'heslo'", $spojeni); //nacteme heslo z DB
$zaznam = mysql_fetch_array($vysledek);
if(md5($_POST["heslo"]) == $zaznam["hodnota"]){
$_SESSION["admin"] = true;
}
}while(false);



Muzu vedet proc to tam je tenhle falesny cyklus?
Jan Tvrdík
Profil
Aha, ani jsem si nevšim. To mám z toho, že jsem to osekal. Správně by tam měli bejt podmínky :-)
-error414
Profil *
Tenhle falesny cyklus je stary zpusob vyhazovani vyjimek, jen takova amulace. Napriklad

do{

$kontrola = mysql_neco(");

if(!$kontrola){
break;
}

mysql_neco(");
mysql_neco(");
mysql_neco(");

}while(false);


je to proto ze kdyz napriklad selze coonect u pripojeni do db tak aby se neprovadely ostatni mysql dotazy. Je to hooodne stare myslim ze to pochazi z PHP3 a ze to mel pan Kosek v knizce. Ale ruku do ohne bych za to nedal.
24k
Profil *
JJ u Koska sem to videl, ale pak uz sem nikdy nikde nevidel ze by to nekdo pouzival, tka me to to trosku udivilo.
Me to pripomina PHP5 -> Try - Catch ;)
Kauka
Profil *
nejsou session nebezpecne?tedy jestli neexistuje neco bezpecnejsiho
Toto téma je uzamčeno. Odpověď nelze zaslat.

0