Autor Zpráva
cont
Profil *
Dobrý den :) snažim se udělat přihlášení ale přes sessions mi to nejde tak to chci zatim zprovoznit přes cookies.. ikdyž vim že sessions by byly určitě lepší. Zatim se mi heslo a login uloží do cookies, ale nevim jak si je na určité stránce vyžádat.. jednoduše uživatel už je přihlášenej, ale pokuď se chce dostat na nějakou stránku, tak aby mu ověřila heslo a jméno co má v cookies.. děkuju

cont
HajekJirka
Profil
if ($_COOKIE[jmeno]!="jmeno" && $_COOKIE[heslo]!="heslo") {
echo "NEpřihlášen";
}
else {
echo "přihlášen";
//Pokračování scriptu
}

Dejte to na začátek každé stránky.

Script ověří zda je uživatel přihlášen či nikoliv, ale existují i jiné možnosti.
cont
Profil *
j diky :)
cont
Profil *
můžu se ještě zeptat co má bejt

if ($_COOKIE[TADY]!="TADY" && $_COOKIE[TADY]!="a TADY") ? děkuju moc xP

cont
souki
Profil
HajekJirka
a) většinou se ty podmínky píší obráceně
b) ukládat do cookie heslo v textovém formátu je zhovadilost
cont
Profil *
souki: ja vim ale dík.. rád bych měl 2verze.. přes cookies i přes session
hajek: taky diky :) ale co přesně má bejt v těch závorkách ? cookies se jmenujou txtjmeno a txtheslo a formulare maj name= stejny.. takze sem to napsal stejne jako ty, akorat sem pred to dal txt ale napíše mi to dycky nepřihlášen. dík

cont
HajekJirka
Profil
cont
Pokud se cookie jmenují txtjmeno a txtheslo, tak v závorkách má být txtjmeno a txtheslo.

napíše mi to dycky nepřihlášen
A máte ty cookie opravdu nastaveny? Zkontorlujte to v prohlížeči (zobrazit cookie).
cont
Profil *
:P kde si ve FF zobrazim cookies ? jinak.. v tech hranatejch zavorkach ma byt nazev cookies a v tech kulatejch?

cont
HajekJirka
Profil
cont
Ve FF nevím, ale Opera to má v nástroje, nastavení, pokročilé volby, cookies, takže v FF to bude podobné.

V hranatých závorkách má být název cookie a v těch kulatých nechejte to co tam je!

Mělo by to vypadat nějak takto:

if ($_COOKIE[txtjmeno]!="txtjmeno" && $_COOKIE[txtheslo]!="txtheslo") {
echo "NEpřihlášen";
}
else {
echo "přihlášen";
//Pokračování scriptu
}
cont
Profil *
----------------------login.php----------------------

<form name="form1" method="post" action="overeni.php">
<table>
<tr>
<td><font color="#0099CC" face="verdana" size="2">Jméno:</font></td>
<td><INPUT type="text" class="ramecek" name="txtjmeno" size="20"<br /></td>
</tr>
<tr>
<td><font color="#0099CC" face="verdana" size="2">Heslo:</font></td>
<td><INPUT type="password" class="ramecek" name="txtheslo" size="20"<br /></td>
</tr>
<tr>
<td colspan="2"><input type="Submit" class="tlacitko" value="přihlásit se"></td>
</tr>
</table>
</form>


----------------------overeni.php----------------------

<?
setcookie('txtjmeno', '', time());
setcookie('txtheslo', '', time());

$spojení = mysql_connect("x", "x", "x");
mysql_select_db("x");

$sql =
"SELECT heslo FROM uzivatele WHERE prezdivka='{$_REQUEST['txtjmeno']}'";
$výsledek = mysql_query($sql);

if (!$výsledek):
echo "Ověření nelze použít.";
exit;
endif;

if(!mysql_num_rows($výsledek)):
echo "Uživatel nenalezen.";
exit;
else:
if (mysql_result($výsledek, "heslo") != $_REQUEST['txtheslo']):
echo "Nesprávné heslo.";
exit;
else:
setcookie('txtjmeno', $_REQUEST['txtjmeno'], time()+3600);
setcookie('txtheslo', $_REQUEST['txtheslo'], time()+3600);
endif;
endif;
?>


----------------------stranka.php----------------------

<?

if ($_COOKIE[txtjmeno]!="txtjmeno" && $_COOKIE[txtheslo]!="txtheslo") {
echo "NEpřihlášen";
}
else {
echo "přihlášen";
//Pokračování scriptu
}

?>



a ve FF povoleny cookies mam..
HajekJirka
Profil
Takto nějak jsem to používal já:

// Každá stránka
session_start();
if (!isset($_SESSION['jmeno']) || !isset($_SESSION['heslo'])) {
$_SESSION = array();
@session_regenerate_id(); // Ochrana před Session Fixation-vygeneruje novoe session
@session_destroy(); // Zničí vąechna data registrované do session (v případě, ľe jsou registrované)
// Přesměruje na adresu http://server:port.adresar/prihlaseni.php
@header ('Location: http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].dirname($ _SERVER['SCRIPT_NAME']).'/prihlaseni.php');
exit;
}




//prihlaseni.php
session_start();
if (@$_POST['jmeno']=='' || $_POST['heslo']=='') {
echo '<h1>Přihláąení:</h1><h2>Zadejte uľivatelské jméno a heslo.</h2>';
}
else {
if (@$_POST['jmeno']=='jmeno' && $_POST['heslo']=='heslo') {
$_SESSION['jmeno'] = $_POST['jmeno'];
$_SESSION['heslo'] = $_POST['heslo'];
header ('Location: http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].dirname($ _SERVER['SCRIPT_NAME']).'/index.php');
exit ("<h2>Probíhá přesměrování ...</h2><h3>Nebudete li přesměrování automaticky klikněte prosím na <a href='./index.php'>tento odkaz</a>.</h3></body></html>");
}
else {
echo "<h1>Přihláąení:</h1><h2>Chybně zadané uľivatelské jméno nebo heslo.</h2>";
}
}
}
HajekJirka
Profil
Ještě zkuste toto:

[url=http://www.pecan.cz/index.php?kat_c=php-school
]http://www.pecan.cz/index.php?kat_c=php-school
[/url]

Popř. toto:
http://www.evil666.net/soubory/login.rar
cont
Profil *
j díky moc už mi to funguje.. ale chtěl sem se zeptat na to

// Každá stránka
session_start();
if (!isset($_SESSION['jmeno']) || !isset($_SESSION['heslo'])) {
$_SESSION = array();
@session_regenerate_id(); // Ochrana před Session Fixation-vygeneruje novoe session
@session_destroy(); // Zničí vąechna data registrované do session (v případě, ľe jsou registrované)
// Přesměruje na adresu http://server:port.adresar/prihlaseni.php
@header ('Location: http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].dirname($ _SERVER['SCRIPT_NAME']).'/prihlaseni.php');
exit;
}

1)proč tam je zavináč
2)proč tam je
session_destroy()

to se mu pak ta session neoveri na dalsi strance ne ?
HajekJirka
Profil
1) Zavináč je v případě, že se vyskytne chyba (např. se nenastaví session), tak se nevypíše chybové hlášení (Warning ....)

2) Ano na další stránce se neověří protože to nebude potřeba. Session_destroy() se totiž vykoná jen v případě, že není nastaveno $_SESSION['jmeno'] nebo $_SESSION['heslo'] a to session se zruší aby to náhodou nedělalo bor... v příštím nastavení session.
cont
Profil *
ok díky už mi to funguje :) *jen mi nefunguje odhlasit.php mam v něm

<?php
session_destroy();
session_unset();
header("Location: /");
exit;
?>

žádný hlášky to neháže a přesměruje mě to na index.php ale nesmaže to sessions

cont
HajekJirka
Profil
<?
session_start();
session_unregister("jmeno_session");
session_unregister("heslo_sesssion");
Header("Location: / "));
?>
Toto téma je uzamčeno. Odpověď nelze zaslat.

0