php sesije

5

php sesije

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

@Rastafarii
Pogledaj, kada se pokusas ulogovati, da li ti unutar Cookies-a ostaje PHPSESSID.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 07 Okt 2006
  • Poruke: 34
  • Gde živiš: Zrenjanin

Ako si ovo stavio na pocetku svake strane :
Rastafarii ::
odnosno, sve ono sto bi trebalo da stavis na vrh svake stranice:

<?php session_start(); $username=$_SESSION['username']; $password=$_SESSION['password']; if ($username != "" and $password != "") {    $respass = mysql_query("SELECT password FROM ime_tabele WHERE username='$username'");    $row = mysql_fetch_array($respass);        if ($password != $row{'password'}) {       echo "<script>location.href='login.php';</script>";       die();       } } else {    echo "<script>location.href='login.php';</script>";    die(); } ?>

U oba slucaja redirekcija je na login.php i stalno ce te vracati na tu stranu.
Druga stvar. Zar nebi trebao na pocetku da proveris da li postoje sesije :
if (isset($_SESSION['username'] AND $_SESSION['password']))   {
pa tek onda da radis proveru iz baze.
Ovako za bilo koga ko pristupi toj strani kreira se nova sesija i ponovo ga vraca na login.php



offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

Citat:@rastafarii: zar ti nije logicnije da se zapitas da nije greska do "tebe" a ne do browsera, jer ti browser na svemu ostalom radi normalno, a samo na tom jednom primeru ne..

Nisam ja ni pomislio da je GRESKA do browsera, nego da se razlikuje interpretiranje, a znam da je IE takav kakav je... Ono sto sam ja rekao je da FF ima problema sa tim, i da ne znam zasto. To sto si ti rekao jeste jedna od solucija, koja je usput vrlo verovatna.

Dopuna: 04 Feb 2007 4:56

@taksistaZR: naravno da je redirekcija u oba slucaja na istu stranu, kad su oba slucaja pogresna. Pravi sadrzaj stranice ide ispod toga.

@igor86: proverio sam, nema Sad

@all: izvalio sam gde je greska (ipak je meni optimalno radno vreme od 02 - 06 AM Smile). Problem je bio u tome sto sam pokusavao da izvucem podatke iz sesija koje jos uvek nisam setovao...

Tacan kod:

<?php session_start(); $connect = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());    mysql_select_db($dbname, $connect) or die(mysql_error());    if (isset($_POST['logmein'])) {       $usr_pass = md5($_POST['password']);       $usr_user = $_POST['username'];           $respass2 = mysql_query("SELECT password FROM ime_tabele WHERE username='$usr_user'");       $row = mysql_fetch_array($respass2);          if ($usr_pass == $row{'password'}) {          $_SESSION['username'] = $usr_user;          $_SESSION['password'] = $usr_pass;          echo "<script>location.href='index.php';</script>";          die();          }          else {             echo "<script>location.href='login.php';</script>";             die();             }    } $username=$_SESSION['username']; $password=$_SESSION['password']; if ($username != "" and $password != "") {        $respass = mysql_query("SELECT password FROM ime_tabele WHERE username='$username'");    $row = mysql_fetch_array($respass);        if ($password != $row{'password'}) {           $_SESSION['username'] = "";    $_SESSION['password'] = "";    echo "<script>location.href='login.php';</script>";    die();    }    } else {          echo "<form action='login.php' method='post'><input type='text' name='username' value='username' onfocus=\"document.forms[0].elements[0].value=''\"><br><br><input type='password' name='password' value='password' onfocus=\"document.forms[0].elements[1].value=''\"><br><br><input type='submit' name='logmein' value=\"Pristupi\" ></form>";       die();    } ?>

Provereno i radi i u FF. Tek sad mi nije jasno kako je IE radio sa sesijama koje se ponistavaju prilikom logina, i to pre nego sto se podese...

offline
  • Pridružio: 07 Okt 2006
  • Poruke: 34
  • Gde živiš: Zrenjanin

Sad tek videh da je onaj poslednji else vezan za prvi if ... ok onda.

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

Rastafarii ::
odnosno, sve ono sto bi trebalo da stavis na vrh svake stranice:

<?php session_start(); $username=$_SESSION['username']; $password=$_SESSION['password']; if ($username != "" and $password != "") {    $respass = mysql_query("SELECT password FROM ime_tabele WHERE username='$username'");    $row = mysql_fetch_array($respass);        if ($password != $row{'password'}) {       echo "<script>location.href='login.php';</script>";       die();       } } else {    echo "<script>location.href='login.php';</script>";    die(); } ?>

Ovde je greska u kodu. Ova linija:
$row = mysql_fetch_array($respass);
posto nisi stavio unutar while petlje, nikad nece vratiti $row['password']; vec ce vratiti samo prvu vrednost a to je $row[1]; e sada, ili je ubaci u while petlju, ili ono mysql_fetch_array() promeni u mysql_fetch_assoc()

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

@Blood: ne znam da li je tu greska, ali meni vraca $row{'password'} i sve radi kako treba, nakon sto sam na login.php zamenio redosled setovanja sesije (ako je kliknuto na "ulogujte se") i provere da li je sesija setovana...

offline
  • Blood  Male
  • Ugledni građanin
  • Pridružio: 26 Jul 2003
  • Poruke: 384
  • Gde živiš: Beograd

hm, bem li ga, desavalo mi se par puta da zeza sam mysql upit, da trazi navodnike, probaj ovako

$respass = mysql_query("SELECT `password` FROM `ime_tabele` WHERE `username`='".$username."'");

Dopuna: 04 Feb 2007 15:08

isto tako probaj malo drugaciji pristup:
$respass = mysql_query("SELECT `id` FROM `ime_tabele` WHERE `username`='".$username."' AND `password`='".$password."'"); if(mysql_num_rows($query) == 0) {  header("Location: login.php"); }

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

@Blood: covece Very Happy rekao sam da radi bez problema... problem je bio u pogresnom rasporedu php koda... Nije ni do upita ni do navodnika nego u tome sto sam pokusavao da proverim sesije pre nego sto ih setujem... Inace, query savrseno radi, sa tim nikada nije bilo problema...

I dalje mi nije jasno kako je IE radio sa tim...

offline
  • Pridružio: 07 Okt 2006
  • Poruke: 34
  • Gde živiš: Zrenjanin

@Blood : $row = mysql_fetch_array($respass) ne mora unutar petlje posto query daje samo jedan rezultat

@Rastafarii : Sad sam probao kod na brzinu, kod mene login radi, ali pristup stranama sa onim kodom ne radi ni na FF ni na IE. Mozda je u pitanju neko podesavanje sa sesijama u mom php.ini ... pogledacu kasnije.

offline
  • Pridružio: 19 Jan 2005
  • Poruke: 286
  • Gde živiš: Tamo daleko,tj.Beograd City

@blood
$row = mysql_fetch_array($respass) ,heh i ja isto ovako pisem,i ako ima samo jedan rezultat,jbg navika,

@Rastafarii ,heh ja i dalje nerazumem kako IE uopste funkcionise Smile ,nebih da lupam,al bas mislim da je radio zbog niske bezbednosti,ja iskreno nisam imao vremena da se igram s ovim codom,jer stvarno sad imam mnogo obaveza (izlasci,pijancenje,treninzi,ucenje i naravno zene L) ),tako da ste me spaliti ,e da,vec kad spomenuh zene,juce sam video enu iz VB,nije nista posebno,doduse ima dobru guzu Smile,steta sto je kod nje bio i marko Sad


btw kako mogu da posaljem sakriveno polje preko post-a,hocu da npr

echo "<a href= 'index.php?act=izmeni&id' " , mogao bi to da posaljem uz get,al ce se videti ime table u kojoj se menjaju podaci,sto ne bih zeleo,a na drugoj strani bi "vatao" podatke

$id=$_GET['id'];
$tabela=$_POST['tabela'];
i slao bi ih u query

Ko je trenutno na forumu
 

Ukupno su 1251 korisnika na forumu :: 44 registrovanih, 7 sakrivenih i 1200 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., Apok, bokisha253, bolenbgd, ccoogg123, cenejac111, crnitrn, deLacy, DonRumataEstorski, dragoljub11987, Gall, Goran 0000, hyla, jackreacher011011, janbo, Joco Skljoco, Krvava Devetka, Kubovac, laurusri, Leonov, Lošmi, mercedesamg, milutin134, MrNo, nesa1962, NoOneEver Dreams, operniki, opt1, Oscar, panonski mornar, pein, procesor, raptorsi, Ripanjac, sasa87, Srle993, tubular, Tvrtko I, Valter071, xpforswodniw, šumar bk2, žeks62, 125