| Autor | Zpráva | ||
|---|---|---|---|
| Tomcat Profil * |
#1 · Zasláno: 16. 7. 2011, 12:15:40
Nevite nekdo jak udelat viceuzivatelskou session?
Na strankach rozlisuji uzivatele a administratory. U administratoru je celkem jedno, ti maji stejne funkce, ale kazdy uzivatel ma sva data . V databazi mam ipadresu, username a id ktere jsou unikatni, a jeste tam mam atribut admin ktery nabyva hodnot 1 a 0 tj na rozliseni uzivatelu a administratoru. Podle ip adresy se rozlisuji data ktera ma uzivatel k dispozic. Problem tkvi v tom, ze nedokazu udelat session tak aby se navzajem neovlivnovaly a zaroven unikatni pro kazdeho uzivatele. Kdyz vytvorim session aby se neovlivnovala tak se dostane uzivatel prepsanim adresy na administratora a naopak takze vlastne nevytorim nic. login2.php
session_start();
include("connection.php")
// overeni zmacknuti submit a vyplnenych polozek.
if(isset($_POST['submit'])) {
if(empty($_POST['username']) || empty($_POST['password'])) {
echo "Musite vyplnit vsechny polozky!!!";
exit;}
$username = MySQL_Real_Escape_String($_POST['username']);
$password = MySQL_Real_Escape_String($_POST['password']);
$query = sprintf("SELECT id, uziv_jmeno, admin, ipAdresa
FROM uzivatel
WHERE uziv_jmeno='$username' AND heslo='$password'");
$result = mysql_query($query);
if(1!=mysql_num_rows($result)) {
header('Location:login.php?msg=login_failed');
}
else {
// vytvori se objekt ze ziskanych dat.
$row = mysql_fetch_assoc($result);
$_SESSION['member_ID'] = $row['id'];
$_SESSION['member_JMENO'] = $row['uziv_jmeno'];
$_SESSION['member_ROLE'] = $row['admin'];
$carky = (str_replace(".","_",$row['ipAdresa']));
$_SESSION['member_ip'] = $carky; //nazev souboru
$_SESSION['member_ipAdresa']= $row['ipAdresa'];
}
if($_SESSION['member_ROLE'] == 0) {
$_SESSION['member_USER']=0;
header('Location:user_menu.php');
}elseif($_SESSION['member_ROLE'] == 1) {
$_SESSION['member_ADMIN']=1;
header('Location:admin_menu.php');
}
Overovani uzivatelu
<?php
session_start();
if (($_SESSION['member_USER']==0) || (isset($_SESSION['member_ID']))){
}else {
header('Location: login.php?msg=requires_login');
}
?>
a logout
<?php
session_start();
session_unset($_SESSION['member_ID']);
//session_destroy($_SESSION['member_ID']);
header('Location: login.php?msg=logout_complete1');
?>
session_is_registered nechci pouzit.Jestli to chapu spravne tak do globalni promenne se ulozi jenom jedna hodnota(ikdyz by to melo byt pole) protoze kdyz se mel kontrolu jenom pomoci member_ADMIN tak kdyz se prihlasil user tak vykopnul admina a opacne. Mohli by jste popsat popripade upravit muj kod tak aby rozeznaval jedinecneho uzivatele? |
||
|
Časová prodleva: 15 let
|
|||
0