K|NG Posted February 19, 2003 Report Share Posted February 19, 2003 Vienkāršs autorizācijas kodagabals :) <code><font color="#000000"> <font color="#0000CC"><?php </font><font color="#006600">if ( ( !isset( </font><font color="#0000CC">$PHP_AUTH_USER </font><font color="#006600">)) || (!isset(</font><font color="#0000CC">$PHP_AUTH_PW</font><font color="#006600">)) || ( </font><font color="#0000CC">$PHP_AUTH_USER </font><font color="#006600">!= </font><font color="#CC0000">'juzers' </font><font color="#006600">) || ( </font><font color="#0000CC">$PHP_AUTH_PW </font><font color="#006600">!= </font><font color="#CC0000">'parole' </font><font color="#006600">) ) { </font><font color="#0000CC">[url=http://lv.php.net/header]header[/url]</font><font color="#006600">( </font><font color="#CC0000">'WWW-Authenticate: Basic realm="Ieeja un izeja tikai man"' </font><font color="#006600">); </font><font color="#0000CC">[url=http://lv.php.net/header]header[/url]</font><font color="#006600">( </font><font color="#CC0000">'HTTP/1.0 401 Unauthorized' </font><font color="#006600">); echo </font><font color="#CC0000">'<script>alert("Skaitam Tavas dienas!!! pēc 10 sekundēm sāksies he he");</script>'</font><font color="#006600">; exit; } else { echo </font><font color="#CC0000">"echo vai print vai figvinjzinkas"</font><font color="#006600">; echo </font><font color="#CC0000">"kaukaads include"</font><font color="#006600">; } </font><font color="#0000CC">?> </font> </font> </code> :ph34r: Link to comment Share on other sites More sharing options...
jannis Posted February 26, 2003 Report Share Posted February 26, 2003 nu ko tad dariit, ja ir vairaaki juuzeri? Link to comment Share on other sites More sharing options...
AcidRain Posted February 26, 2003 Report Share Posted February 26, 2003 labaak lietot ko citu, jo vakar nobesiijos ar shito auterizaaciju, protams beigaas izdomaaju, ka man nemaxaa tik daudz lai es tur pistos ar vinju un atstaaju, kaada bija :P Bet vispaar iesaku labaak mazinju forminju un sesijas... Nu kautkaa taa :ph34r: Link to comment Share on other sites More sharing options...
Ace Posted March 21, 2004 Report Share Posted March 21, 2004 Man ar šo loginu ir maza problēma. Itkā viss strādā, bet kad es rakstu pareizu username un password, tad nekas nenotiek, varbut vaina kādos konfig failos? :unsure: :huh: Link to comment Share on other sites More sharing options...
Lokomotive Posted March 21, 2004 Report Share Posted March 21, 2004 Man ar šo loginu ir maza problēma. Itkā viss strādā, bet kad es rakstu pareizu username un password, tad nekas nenotiek, varbut vaina kādos konfig failos? :unsure: :huh: Paarbaudi kodu. Iespeejams tev vienkaarsi aiz autorizaacijas skripta, nav else noslegts! Jaabuut taa: <?php //te iet autorizaacijas kods (parole utt.) } else{ //šeit drukājas pārējā lapa (ja autorizācija ir pareiza) } // un shim jaabuut nosleegtam (nosleedz else) } // atkarīgs protams no autorzācijas koda īpatnībām, taču iespējams, ka tev pietrūkst vēl šo pēdējo figūriekavu (man tā gadījās un es arī nevarēju saprast kāpēc lapa neparādās. Paexperimentē ar figūriekavām koda beigās! Link to comment Share on other sites More sharing options...
Ace Posted March 21, 2004 Report Share Posted March 21, 2004 (edited) Nē... kods man ir pareizs, vinju var aplūkot šiet, bet pats logins man paradas... Bet tikai to username un password neņem pretīm... :huh: Edited March 21, 2004 by Ace Link to comment Share on other sites More sharing options...
Aleksejs Posted March 21, 2004 Report Share Posted March 21, 2004 (edited) Nu, ja jau mētāties, tad mētāties. fails auth.php <?php session_start(); if(!(isset($_SESSION['uid']))){ header('Location: login.php');//ja sesijā nav piereģistrēts - tātad neautorizēts exit; } ?> fails login.php <?php session_start(); $salt = ' jasdjjdajhdjhdu'; //teksta rinda, kuru izmanto paroļu ģenerēšanā. $kluuda = ''; if(isset($_SESSION['uid'])){ header('Location: index.php');//Lapa uz kuru aiziet, ja ir autorizējies } else{ if(isset($_POST['uname'])){ require('functions.php');//fails, kurā notiek datubāzes konekcijas izveide un tamlīdzīgas lietas $uname = $_POST['uname']; $pass = ''; if(isset($_POST['pass'])){ $pass = $_POST['pass']; } $pass = md5($uname . $salt . $pass); $vaicajums = "SELECT * FROM lietotaji WHERE login = '$uname' AND password = '$pass' LIMIT 0, 1"; //echo $vaicajums; $rezultats = mysql_query($vaicajums, $conn); if(mysql_num_rows($rezultats)==1){ $_SESSION = array();//tiek aizvērta vecā sesija session_destroy();//lai izvairītos no session-fixation session_start();//http://www.acros.si/papers/session_fixation.pdf $rinda = mysql_fetch_assoc($rezultats); $_SESSION['uid'] = $rinda['uid']; $_SESSION['gid'] = $rinda['gid'];//neobligāta $_SESSION['login'] = $rinda['login'];//neobligāta $_SESSION['vards'] = $rinda['vards'];//neobligāta $_SESSION['uzvards']= $rinda['uzvards'];//neobligāta mysql_free_result($rezultats); mysql_close($conn); header('Location: index.php');//Lapa, uz kuru aiziet, ja ir autorizēts. } else { $kluuda = 'Nepareiza parole vai lietotāja vārds'; } } echo $kluuda; ?> <form method='POST'> <label for="uname">Lietotāja vārds: </label> <input name="uname" type="text" size="17"><br> <label for="pass">Parole: </label> <input name="pass" type="password" size="17"><br> <input type="submit" value="Pieslēgties"> <input type="reset" value="Nodzēst"></form> fails logoff.php <?php require('auth.php'); $_SESSION=array(); session_destroy(); header('Location: login.php');//aizmest uz to lapu, uz kuru vajag. ?> fails chpass.php <?php require('auth.php'); $salt = ' jasdjjdajhdjhdu'; if(strlen($_POST['oldpass'])&&strlen($_POST['newpass1'])&&strlen($_POST['newpass2'])){ if($_POST['newpass1'] == $_POST['newpass2']){ $vaicajums = "UPDATE lietotaji SET password = '" . md5($_SESSION['login'] . ':' . $_POST['newpass1']) . "' WHERE uid = " . $_SESSION['uid'] . " AND password = '" . md5($_SESSION['login'] . $salt . $_POST['oldpass']) . "'"; $rezultats = mysql_query($vaicajums, $conn); if(mysql_affected_rows($conn) == 1){ ?> Parole nomainīta veiksmīgi <?php } else { ?> Parole nav nomainīta, vai arī jaunā parole sakrīt ar veco paroli! <?php } } else { ?> Parole nav nomainīta. Jaunā parole nesakrīt ar jaunās paroles apstiprinājumu! <?php } } else{ ?> <form method="POST"> <label for="oldpass">Vecā parole:</label> <input name="oldpass" size="12" type="password"> <label for="newpass1">Jaunā parole:</label> <input name="newpass1" size="12" type="password"> <label for="newpass2">Jaunās paroles apstiprinājums:</label> <input name="newpass2" size="12" type="password"> <input type="submit" value="Saglabāt"> </form> <?php } ?> Tātad visās lapās, kurām jāpiemēro autorizācija, kā pirmā rindiņa jāliek require_once(' auth.php'); Par paroļu glabāšanu datubāzē: Datubāzē glabājas paroļu MD5 attēli (MD5 varat aizvietot ar savu iecienītāko hash funkciju). paroles attēls tiek veidots šādi MD5 ( lietotājvārds + sāls + parole). lietotājvārda piesaiste parolei, dod to, ka ja vairāki lietotāji izvēlas vienādas paroles - ir ļoti niecīga iespēja, ka to šādā veidā veidotie attēli sakritīs. sāls (vienkārši kaut kāda labi gara teksta rindiņa, kas ir unikāla katram projektam, kur izmantots šis autentifikācijas mehānisma) izmantošana dod to, ka jūsu izmantotās mīļakās paroles attēls nebūs izmantojams citā vietā. (tas tā - paranojiķiem). Patiesībā galvenais, ko panāk, piesaistot šīs divas vērības, ir tas, ka nevar izmantot publiski pieejamās vārdnīcas, kurās jau iepriekš noģenerēti hash attēli izplatītākajām parolēm. P.S. atvainojos, ka neieliku to visu iekš paste.lv ;) Edited April 3, 2004 by Aleksejs Link to comment Share on other sites More sharing options...
Gacha Posted March 22, 2004 Report Share Posted March 22, 2004 Vai tad shis tev nebuus par sarezhgitu? Nu iet jau tev tas ietu, bet man shkjiet ka labaak panjem vienkaarshaaku un tad pats pieliek klaat ko vajag. Bet tas pirmais variants galigi neder! Shitas peedeejais ir baigi shiks! :P Link to comment Share on other sites More sharing options...
johanes Posted March 22, 2004 Report Share Posted March 22, 2004 kur tikai var izveidot datu bāzi mysql. Piemēram cik man zinām bezmaksas mysql piedāvā tikai no.lv. Varbūt kāds zin kaut ko labāku un varētu padalīties :) Link to comment Share on other sites More sharing options...
Aleksejs Posted March 22, 2004 Report Share Posted March 22, 2004 Neviens tev neliedz to visu glabāt flat failā... Atšķirās tikai datu saņemšanas veids, bet pārējā autentifikācija paliek iepriekšējā. Link to comment Share on other sites More sharing options...
Recommended Posts