Autor Zpráva
Vopiat
Profil *
Ahoj te mám takovou prozbičku.
Udělal jsem si registraci a přihlášení přes mysql vše funguje ale když do lišty napíšu adresu stránky která má být utajena tak se zobrazí.
Poradte jak se to dělá stačí nějak nasměrovat.

použil jsem tento script.
<?
include("config.php");
$spojeni=mysql_connect($dbserver,$dblogin,$dbheslo);
$spojenidb=mysql_select_db($dbnazev);
if (!$spojeni)
{
echo"Nepodarilo se navazat spojeni se serverem.";
exit;
}

$prihlasen="";
if($co=="logout"){
MySQL_Query("UPDATE $MySQL_tabulka SET ip='' WHERE id='$id';");
$code="";
$error="<b>Nyní jste byl odhlášen.</b><br>Pokud budete chtít dále pokraèovat v režimu pro registrované, musíte se znova pøihlásit<br><br>";
}
if($nick!=""){
$bb = MySQL_Query("SELECT * FROM $MySQL_tabulka  WHERE nick='$nick';");
echo MySQL_Error();
$aa=MySQL_Fetch_Array($bb);

if(($aa[heslo]==$heslo) and ($heslo!="")){
$IP=$REMOTE_ADDR;
MySQL_Query("UPDATE $MySQL_tabulka  SET ip='$IP' WHERE nick='$nick';");
$time=time();
MySQL_Query("UPDATE $MySQL_tabulka  SET posledni_akce='$time' WHERE nick='$nick';");
$kod=MD5($time.$REMOTE_ADDR);
MySQL_Query("UPDATE $MySQL_tabulka  SET kod='$kod' WHERE nick='$nick';");
$url="id=".$aa[id]."&code=".$kod;
$prihlasen=$aa[id];
} else {$error="Pøihlášení se nepodaøilo. Špatné uživatelské jméno, nebo heslo.<br><br>";}
}

if($code!=""){
$bb = MySQL_Query("SELECT * FROM $MySQL_tabulka  WHERE id='$id';");
$aa=MySQL_Fetch_Array($bb);
$rozdil = time() - $aa[posledni_akce];
if($rozdil>300 or $rozdil<0) $povol="ne";
if(($aa[kod]==$code)and($aa[ip]==$REMOTE_ADDR) and ($povol=="")){
$time=time();
MySQL_Query("UPDATE $MySQL_tabulka  SET posledni_akce='$time' WHERE id='$id';");
$url="id=".$id."&code=".$code;
$prihlasen=$id;
} else {$str="";MySQL_Query("UPDATE $MySQL_tabulka  SET ip='' WHERE id='$id';");
$error="<b>Nejste pøihlášen</b><BR>Buï nesouhlasí IP, nebo se provedlo automatické odhlášení, kvùli neaktivitì delší než 5 minut. Pøihlaste se proto prosím znovu.<br><br>";}
}
?>
<table align="center" border="0" width=100 cellspacing="0" cellpadding="0">
<tr>
<td><b>Nick</b></td>
<td><b>Heslo</b></td>
<td>&nbsp;</td>
</tr><tr><FORM method="post" action="index.php">
<td><INPUT type="text" name="nick" size="10"></td>
<td><INPUT type="password" name="heslo" size="10"></td>
<td><INPUT type="submit" value="LOGIN"></td>
<td>&nbsp;<a href="registrace.php"><FONT size="2">REGISTRACE</FONT></a>
</FORM></td>
</tr></table>

<?if($prihlasen==""){?>
<?}else{
$bb = MySQL_Query("SELECT * FROM $MySQL_tabulka WHERE id='$prihlasen';");
$aa=MySQL_Fetch_Array($bb);
$kredit=$aa[kredit];
echo'<TABLE width="165"><tr><td align="center">';
echo'<TABLE width="100%"><tr><TD align="center" width="100%"><b>Uživatel</b></table>';
echo "<table><tr><TD align=\"right\"><b>Pøihlášen:</b><td>$aa[jmeno]</table>";
echo "<A href=\"index.php?$url\">Hlavní strana</A><br>";
echo "<A href=\"zapis.php?$url\">| Vstup pro editaci |</A><br>";
echo "<A href=\"index.php?co=logout&$url\">ODHLÁSIT</A>";
echo'</table>';

}
?>
<br>
<center>
<?
// vypis chyb pri logoani do nejake stranky
echo $error;
?></center>
</table>
<?MySQL_close();?>

ještě bych se chtěl zeptat jestli je to bezpečny, tedy jestli si může někdo vytáhnout login a heslo z databáze.
díky moc
panther
Profil
Vopiat:
Udělal jsem si registraci a přihlášení přes mysql vše funguje ale když do lišty napíšu adresu stránky která má být utajena tak se zobrazí.
...takže to moc nefunguje :-)

Kontroluj, zda jsi přihlášený, jinak přesměrovávej odevšud na přihlašovací stránku. Třeba.


ještě bych se chtěl zeptat jestli je to bezpečny, tedy jestli si může někdo vytáhnout login a heslo z databáze.
není. Hesla máš uložené v plain textu, neošetřené vstupy od uživatele...
Vopiat
Profil *
mam totíž přístup na zaheslovanou 1 stránku z které odkazuji na další a ty jsou také utajeny (nebo by aspon meli)
Tak jaký postup bych měl použít.
díky
panther
Profil
Vopiat:
Tak jaký postup bych měl použít.
už jsem ti to napsal jednou, přečti si to znovu, pokud jsi to nepochopil.
Vopiat
Profil *
a z čeho jsem to měl pochopit?
Kontroluj, zda jsi přihlášený, jinak přesměrovávej odevšud na přihlašovací stránku. Třeba

přihlášeny jsem a dostanu se tam,
odhlášený jsem a taky se tam dostanu.
a když přijde uživatel na mo je stránky a zada www.neco.cz/admin/zapis.php tak se mu to taky zobrazí a přitom by nemělo.
Tak ano nepochopil jsem to z té jedné věty stejně tak jako si nepochopil ty mě.
__construct
Profil
Používaš zlú metódu - premenná $prihlasen sa na stránku zapis.php neprenesie ... Naštuduj si niečo o SESSION alebo COOKIES
panther
Profil
Vopiat:
ak ano nepochopil jsem to z té jedné věty stejně tak jako si nepochopil ty mě.
já tě pochopil moc dobře. Jen ty nechápeš mě.

odhlášený jsem a taky se tam dostanu.
to je ono. Když jsi odhlášený == nejsi přihlášený, přesměruj na přihlašovací stránku.


To jen tak trocha teorie, která ti totálně chybí. Kód jsem nezkoumal, na to tě upozornil __construct.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0