Autor Zpráva
epoxman
Profil
Dobrý den,

potřeboval bych se zeptat jak zabezpečit web pomocí session. Jak zabezpečit stránky jen pro přihlášené a pro nepřihlášené, nechat pouze číst články registraci a přihlášení. Protože i bez přihlášení se mi stránka načte po zadání konkrétní adresy (např administrace).

Moc díky za rady.
Taps
Profil
epoxman:
http://pecan.cz/index.php?id=38&n=registrace-prihlaseni-uzivatelu + související články
epoxman
Profil
Když mám stránku například tajne.php
<?php
if(!isset($_SESSION['prihlasen]) and @$_SESSION['prihlasen']!=1){
  include("zahlavi.php");
  include("zapati.php");
}else{
include("zahlavi.php");
?>

tajný kod

<?php
include("zapati.php");
}
?>

a jsem přihlášen přes skript:

<?php
include ("../../mysql_connect.php");
$sql = "select id_uzivatele,prezdivka from sp_uzivatele where heslo=md5('$_POST[heslo]') and prezdivka='$_POST[prezdivka]'";
if($vysledek=mysql_query("$sql")){
if(mysql_num_rows($vysledek)>0){
session_name("projekt");
session_start();
$_SESSION['prezdivka']=$_POST['prezdivka'];
$_SESSION['prihlasen']=1;
$_SESSION['id_user']=mysql_result($vysledek,0,'id_uzivatele');
header ("location:index.php");
}else{
header ("location:spatne_prihlaseni.php");
}
echo mysql_error();
}

tak mi to nefunguje, mohl by mi někdo prosím prosím poradit?? :) děkuji
Davex
Profil
Na začátku prvního skriptu chybí session_start().
epoxman
Profil
stále nefunguje :(
opraveno na:
 
 <?php
session_start();
session_name("projekt");

if(!isset($_SESSION['prihlasen']) and @$_SESSION['prihlasen']!=1){
echo "nepřihlášen";
}else{
echo "přihlášen";
}
?>

prihlasovaci script:
<?php
include ("../../mysql_connect.php");
$sql = "select id_uzivatele,prezdivka from sp_uzivatele where heslo=md5('$_POST[heslo]') and prezdivka='$_POST[prezdivka]'";
if($vysledek=mysql_query("$sql")){
if(mysql_num_rows($vysledek)>0){
session_name("projekt");
session_start();
$_SESSION['prezdivka']=$_POST['prezdivka'];
$_SESSION['prihlasen']=1;
$_SESSION['id_user']=mysql_result($vysledek,0,'id_uzivatele');
header ("location:protected.php");
}else{
header ("location:spatne_prihlaseni.php");
}
echo mysql_error();
}
juriad
Profil
Thus, you need to call session_name() for every request (and before session_start() or session_register() are called). Musíš volat session_name() před session_start().
Proč vůbec používáš session_name? Potřebuješ ho vůbec?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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