Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

stranica za log i provera da li je user ulogovan - gde gresim

[es] :: PHP :: stranica za log i provera da li je user ulogovan - gde gresim

[ Pregleda: 1076 | Odgovora: 9 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bigguy
borisav ignjatov
zrenjanin

Član broj: 87859
Poruke: 70
*.ptt.yu.



Profil

icon stranica za log i provera da li je user ulogovan - gde gresim20.11.2006. u 21:37

imam sledeci kod koji obradjuje stranicu login.html
Code:
<?php
/*************************
 * stranica za logovanje * 
 *************************/
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: post-check=0, pre-check=0",false);
session_cache_limiter();

session_start();
session_unset();

$username=$_POST['user_name'];
$sifra=$_POST['password'];

if (empty($username) or empty($sifra))
{
    header("Location: pogresan_log.html");
    exit();
}
require_once('db_vars.inc');
$username = strtolower($username);
    $md5_sifra = md5($sifra);
    $query = "SELECT user_name, user_id
              FROM user
              WHERE user_name = '$username'
              AND password = '$md5_sifra'";
    $result = mysql_query($query);
    if (!$result || mysql_num_rows($result) < 1){
      header("Location: pogresan_log.html");
      exit();
    } else {
        extract(mysql_fetch_assoc($result));
        $_SESSION['user_name'] = $user_name;
        $_SESSION['SID']=session_id();
    }
header("Location: rezervacija.php");
$_SESSION['link'] = $_SERVER['REQUEST_URI'];
?>

stranica login.html
Code:
<HTML>
<HEAD>
<TITLE>Login</TITLE>
</HEAD>
<BODY>
<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 ALIGN=CENTER WIDTH=621>
<TR>
 <TD>
<P>LOGIN</P>
<FORM ACTION="login.php" METHOD="POST">
<P>Korisničko ime<BR>
<INPUT TYPE="TEXT" NAME="user_name" VALUE="" SIZE="10" MAXLENGTH="15"></P>
<P>Šifra<BR>
<INPUT TYPE="password" NAME="password" VALUE="" SIZE="10" MAXLENGTH="15"></P>
<P><INPUT TYPE="SUBMIT" NAME="submit" VALUE="ULOGUJ SE"></P>
</FORM>

 </TD>
</TR>
</TABLE>
</BODY>
</HTML>

a na pocetku stranice rezervacija.php funkciju isloged() koja proverava da li je korisnik ulogovan i ako nije vraca ga na stranicu login.php
Code:
function isloged()
{
    if (empty($_SESSION['user_name']) and $_SESSION['SID']!=session_id())
    {
        header("Location: login.php");
        exit();
    }
}

e sad kad probam da se ulogujem on me vraca na stranicu login.html i nista se ne desava. proverio sam sto puta i nigde se nista ne salje na izlaz sto znaci da bi header() trebalo da radi, ali ne radi. ako neko vidi u cemu je problem, neka mi kaze molim vas...
20.11.2006. u 21:37 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Moderator
Član broj: 32202
Poruke: 3869
212.200.145.*

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim20.11.2006. u 22:54
Debuguj malo. Za početak, šta ti vraća print_r($_SESSION); na toj stranici gde proveravaš login?
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
20.11.2006. u 22:54 

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.91.*

Sajt: ohridnews.com


Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim21.11.2006. u 00:55
Ovo meni izgleda sasvim u redu.
Sigurno u bazi imas strtolower user_name i md5 password.
Proveri require_once('db_vars.inc'); ako vec nemas, napravi neki error report.
I jos jedan savjet, escape mysql injection:
$username = mysql_real_escape_string($_POST['user_name']);
$sifra = md5(mysql_real_escape_string($_POST['password']));
21.11.2006. u 00:55 

bigguy
borisav ignjatov
zrenjanin

Član broj: 87859
Poruke: 70
*.ptt.yu.



Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim21.11.2006. u 18:31
hvala na sugestijama... malo sam preformulisao funkciju isloged koja sada izgleda ovako
Code:
function isloged()
{
    if (!empty($_SESSION['user_name']) and $_SESSION['SID']==session_id())
    {
        return true;
    }
    else {
        return false;
    }
}

i sada sve fercera...
nego interesuje me vas komentar sto se tice bezbednosti ovakvog resenja....
i jos samo da pitam jednu stvar:
interesuje me kako nekoga da odlogujem ako ode sa sajta a da pri tome nije pritisnuo dugme logout?
21.11.2006. u 18:31 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Moderator
Član broj: 32202
Poruke: 3869
212.200.145.*

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim21.11.2006. u 21:19
Sesija će se prekinuti kad se prekine komunikacija browsera i servera.
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
21.11.2006. u 21:19 

Jezdimir Lončar
Aka Blazeme
Crna Gora / Pljevlja

Član broj: 74833
Poruke: 574
*.opera-mini.net.

Jabber: jezdonet@gmail.com
Sajt: www.phpkeva.net


Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim21.11.2006. u 23:45
Da...
U tome je prednost sessija nad cookima...
“I never think of the future - it comes soon enough.” - Albert Anštajn (Albert
Einstein)
PHP Keva - Srpska PHP zajednica
Stop iskorištavanju tinejdžera programera (pa do kad više?!).
21.11.2006. u 23:45 

mika
NBG-ML

Član broj: 55
Poruke: 633
*.adsl.static.sezampro.yu.



Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim22.11.2006. u 07:53
Jedno pitanje, kad ste već otvorili tu temu: da li se, ako se korisnik već "odlogovao", ako klikne na "back", korisnik vraća ponovo u "login" stanje ili ne? To mi nije baš najjasnije, zbog toga što se podatak o sesiji čuva u URL-u?
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
22.11.2006. u 07:53 

bigguy
borisav ignjatov
zrenjanin

Član broj: 87859
Poruke: 70
*.com.



Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim22.11.2006. u 11:00
nisam siguran ali mislim da ne bi trebalo da se vraca u stanje logovanog korisnika ukoliko za logout koristis ovo:
Code:
session_unset();
session_destroy();

jer ovime ponistavas tj. brises sve promenljive sessiona...
ako gresim neka me neko ispravi
22.11.2006. u 11:00 

sale83
Aleksandar Ervacanin
Full Time Student & Full Time Zaposlen ( IT Suppo..
Sydney

Član broj: 41625
Poruke: 611
*.ispone.net.au.



Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim22.11.2006. u 11:43
Citat:
Nemanja Avramović
Sesija će se prekinuti kad se prekine komunikacija browsera i servera.

Pa onda Neohacker kaze:
Citat:
Neohacker: Da...
U tome je prednost sessija nad cookima...

http://au.php.net/manual/en/function.setcookie.php

setcookie() parameters explained
expire ( Kao treci parametar)

The time the cookie expires... bla bla
Pa tamo u manual-u kaze:
...
time()+60*60*24*30 will set the cookie to expire in 30 days. If not set, the cookie will expire at the end of the session (when the browser closes).

Pitanje za Neohacker
I gde je tu prednost ????

:)

Poz
sale
PHP/MySQl/SQL/VB.NET/JAVA/JSP/Servlet/MSSQLServer/MSAccess/Perl
COBOL/JCL/CICS -> IBM Mainframe
Nortel/Cisco/Sidewinder
22.11.2006. u 11:43 

Jezdimir Lončar
Aka Blazeme
Crna Gora / Pljevlja

Član broj: 74833
Poruke: 574
*.opera-mini.net.

Jabber: jezdonet@gmail.com
Sajt: www.phpkeva.net


Profil

icon Re: stranica za log i provera da li je user ulogovan - gde gresim22.11.2006. u 11:44
Mislim da kad se uništi cookie (bilo session ili ovaj običam) da će korisnik biti izlogovan dok se ponovo ne uloguje.
Međutim on će vidjeti members stranicu ako klikne back sve dok je ne osvježi ili klikne na neki link na njoj.
“I never think of the future - it comes soon enough.” - Albert Anštajn (Albert
Einstein)
PHP Keva - Srpska PHP zajednica
Stop iskorištavanju tinejdžera programera (pa do kad više?!).
22.11.2006. u 11:44 

[es] :: PHP :: stranica za log i provera da li je user ulogovan - gde gresim

[ Pregleda: 1076 | Odgovora: 9 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.