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: 13 let
|
0