Autor Zpráva
bigi
Profil *
Mám na stránkách přihlašování uživatelů pod individuálními hesly, vždy při přihlášení se vytvoří cookie a podle toho server pozná že má uživatel přístup. Ale přihlašování mi někdy funguje, a někdy dělá problémy (např. po zadání správného loginu a hesla se nepřihlásí, nebo chce údaje i při přechodu na další stránku...). Díky
Přikládám zdrojový kód který je na začátku každé stránky:
<?php

$user_passwords = array (
"uzivatel1" => "heslo1",
"uzivatel2" => "heslo2",
"uzivatel3" => "heslo3"
);

$logout_page = "logout.php";

$login_page = "login.php";

$invalidlogin_page = "invalidlogin.php";



if ($action == "logout")
{
Setcookie("logincookie[pwd]","",time() - 600);
Setcookie("logincookie[user]","",time() - 600);
include($logout_page);
exit;
}
else if ($action == "login")
{
if (($loginname == "") || ($password == ""))
{
include($invalidlogin_page);
exit;
}
else if (strcmp($user_passwords[$loginname],$password) == 0)
{
Setcookie("logincookie[pwd]",$password,time() + 600);
Setcookie("logincookie[user]",$loginname,time() + 600);
}
else
{
include($invalidlogin_page);
exit;
}
}
else
{
if (($logincookie[pwd] == "") || ($logincookie[user] == ""))
{
include($login_page);
exit;
}
else if (strcmp($user_passwords[$logincookie[user]],$logincookie[pwd]) == 0)
{
Setcookie("logincookie[pwd]",$logincookie[pwd],time() + 600);
Setcookie("logincookie[user]",$logincookie[user],time() + 600);
}
else
{
include($invalidlogin_page);
exit;
}
}
?>
krteczek
Profil
já to mám takhle, a funguje mi to dobře:
(je to přihlášení pro jednoho člověka ale jde to upravit...)

<!-- PŘIHLAŠOVACÍ FORMULÁŘ -->
<div>
<h3>Přihlášení</h3>
<form name="login" id="login" action="index.php" method="post">
<table>
<tr><td><label for="log_jmeno" >Jméno:</label></td><td><input id="log_jmeno" type="text" name="log_jmeno"></td></tr>
<tr><td><label for="log_psw" >heslo:</label></td><td><input id="log_psw" type="password" name="log_psw"></td></tr>
<tr><td colspan="2"><input type="submit" value="přihlásit">
</table>
</form>
</div>
<?php
//****************************************************************
// DEFINICE JMÉNA A HESLA
//
define("Jmeno_usera","jmeno");
define("Heslo_usera","heslo");
$hash=crypt(Jmeno_usera.Heslo_usera,"gdtw");
define("Kontrola_loginu",$hash);
//****************************************************************
// KONTROLA POST PŘIHLÁŠENÍ
//
if((!empty($_POST['log_jmeno']))and (!empty($_POST['log_psw'])))
{
$porovnej=crypt($_POST['log_jmeno'].$_POST['log_psw'],"gdtw");
if($porovnej==Kontrola_loginu)
{
setcookie("log",Kontrola_loginu,(time()+900));
header("location: /");
}
}
//*************************************************************
// KONTROLA EXISTENCE COOKIES A JEJÍHO OBSAHU A ZNOVU ZAPSÁNÍ
// PŘI PŘECHODU ZE STRÁNKY NA STRÁNKU V ČASOVÉM LIMITU
//
if((isset($_COOKIE['log']))and($_COOKIE['log']==Kontrola_loginu))
{
setcookie("log",Kontrola_loginu,(time()+900));
}
//*************************************************************
// ODHLÁŠENÍ Z ADMINU
//
if((isset($_COOKIE['log']))and($_COOKIE['log']==Kontrola_loginu)and(!e mpty($_GET['odhlasit']))and($_GET['odhlasit']=='ano'))
{
setcookie("log","",(time()-10));
header("location: /");
}
?>

krteczek
Hugo
Profil
bigi

A je nejaky duvod proc nepouzivas session? Jsou mnohem spolehlivejsi nez cookies.
krteczek
Profil
2Hugo: v čem jsou kokies nespolehlivé???
krteczek
Hugo
Profil
krteczek

Daji se vypnout
krteczek
Profil
no to ano, ale pokud dotyčný ví že to tak funguje tak není problém...
krteczek
Hugo
Profil
krteczek

Ano, pokud to vi ...
tark
Profil
Existuji session s dobou platnosti mesic? Pokud ne, tak je jeste stale pouzivat nebudu :-))
miso
Profil *
Nahodou neviete ako spravim select zo zakryptovanej cookie? teda nieco ako where blablabla=$cookie :)
Leo
Profil
Vztah session a cookies neni takovy, ze by to byly dve reseni tehoz problemu. Ovsem pokud hodlate udelat aplikaci tak, ze se spoleha na cookies s platnosti 1 mesic, tak vas nastaveni prohlizecu rady uzivatelu nepotesi. Leo
tark
Profil
Leo, je to možný, jenomže tyhle apps jsou pro mou soukromou potřebu a .. kdyby je někdo smazal, tak se v zásadě nic nestane :-) a navíc, já vím, odkud se loguju, umím se odhlašovat (v cookie místo příhlašovacích údajů slovo NEPŘIHLÁŠEN) apod.

kdybych dělal nějaký komerční či důležitější věci, tak to samozřejmě udělám jinak (= cookiekey platný jen po určitou dobu apod.)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0