PHP(Session) ile Login sistemi yapalim

Zamaninda cok arastirmistim tam istedigimi bulamamistim yada anlayamamistim sizlerin de isinizi gorecegini dusunerek bi' calisma yaptim.

PHP:
  1. <?
  2. session_start(); // session baslatiyoruz
  3. $user='admin'; // kullanici adi tanimladik
  4. $pass='123456'; // sifre tanimladik
  5. if($_GET['act']=='logout'){ // eger GET ile gelen 'act' esitse 'logout' a dedik (cikis sayfamiz)
  6. session_unset(); // sessionu temizledik
  7. echo 'cikis yaptiniz<br/>'; // cikis yaptiniz yazisini bastik
  8. exit();
  9. }else{ // eger GET ile gelen 'act' esit degilse 'logout' a
  10. if($_SESSION['login']=='ok'){ // eger session 'login' esitse 'ok' a (yani giris yapilmissa)
  11. echo 'hosgeldin '.$_SESSION['user'].'<br/><a href="'.$_SERVER['PHP_SELF'].'?act=logout>cikis</a>'; // kullaniciya hosgeldin diyoruz
  12. exit();
  13. }
  14. if($_POST['user'] && $_POST['pass']){ // eger POST ile gelen 'user' ve 'pass' inputlari varsa
  15. if($_POST['user']==$user && $_POST['pass']==$pass){ // eger POST ile gelen 'user' kullanici adimiza ve 'pass' sifremize esitse
  16. $_SESSION['user']=$_POST['user']; // SESSION 'user' i gelen POST user'e esitledik, sistemde herhangi bi yerde kullanici adini kullanabilmek icin
  17. $_SESSION['login']='ok'; // SESSION 'login' e 'ok' verisini verdik (giris yapip yapilmadigini anlamak icin)
  18. echo 'hosgeldin '.$_SESSION['user'].'<br/><a href="'.$_SERVER['PHP_SELF'].'?act=logout">cikis</a>'; // ekrana hosgeldin kullaniciadi yazdik
  19. }else{ // eger POST ile gelen 'user' kullanici adimiza ve 'pass' sifremize esit degilse (k.adi veya sifre yanlissa)
  20. echo 'yanlis kullanici veya sifre'; // ekrana yanlis kullanici veya sifre yazdik
  21. session_unset(); // sessionu temizledik
  22. }
  23. }else{ // eger POST ile gelen 'user' ve 'pass' inputlari yoksa
  24. <form name="form" method="post" action="'.$_SERVER['PHP_SELF'].'">Kullanici Adi:<input name="user" type="text"><br/>Sifre:<input name="pass" type="password" id="pass">
  25. <br>
  26. <input type="submit" value="Giris">
  27. </form>';
  28. // giris formumuzu ekrana bastik
  29. }
  30. }
  31. ?>

Herhangi bir hata veya sorun ile karsilasirsaniz buraya yazin yardimci olamaya calisayim..

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (5 oy ortalamasi: 4.8 / 5)
Loading ... Loading ...


Etiketler: , , , , , , , , , ,


PHP ile flooda karşı güvenlik kodu

Veritabanina kayit yaptiginiz sayfalarda kullanabileceginiz basit bir guvenlik kodunun yapimi ve islevini anlatmak istedim.

PHP:
  1. <?
  2. session_start(); // Session baslatiyoruz
  3. if($_GET['act']=='ok'){ // get ile gelen 'act' verisi esitse 'ok' a
  4. if($_POST['SecInput']==$_SESSION['Sec']){ // post ile gelen SecInput esitse Sec isimli sessionuna
  5. echo 'guvenlik kodu dogru'; // guvenlik kodu dogrudur islemleri burada yapabiliriz
  6. }else{ // SecInput esit degilse Sec isimli sessionuna
  7. echo 'guvenlik kodu yanlis<br><a href="#" onClick="history.back(-1);">geri</a>'; // guvenlik kodu yanlis geri don diyoruz
  8. session_unset(); // sessionu siliyoruz
  9. }
  10. }else{ // get ile gelen act verisi esit degilse 'ok' a
  11. session_unset(); // eski session varsa siliyoruz
  12. $SecCode = substr(md5(rand(0,999)),0,6); // guvenlik kodumuzu olusturmak icin 0 ile 999 arasi rastgele sayi olusturduk sayiyi md5 yaptik ve ilk 6 karakterini aldik ve $SecCode degisgenine esitledik
  13. $_SESSION['Sec']=$SecCode; // $SecCode isimli degisgenimizi Sec isimli sessionumuza esitledik
  14. echo '<b>Guvenlik kodu:</b> '.$SecCode.'<form action="'.$_SERVER['PHP_SELF'].'?act=ok" method="POST"><input type="text" name="SecInput" /><input type="submit" value="OK"></form>'; // ekrana guvenlik formu bastik, guvenlik kodunun yazilacagi inputa SecInput ismini verdik form action POST kullandik
  15. }
  16. ?>

Yukarıdaki çalışmayı mantığı anlamanız için yapmıştım, şimdi de resimli güvenlik kodu yapalım.

PHP:
  1. <?
  2. session_start(); // Session baslatiyoruz
  3. if($_GET['act']=='ok'){ // get ile gelen 'act' verisi esitse 'ok' a
  4. if($_POST['SecInput']==$_SESSION['Sec'] && !$_POST['SecInput']==''){ // post ile gelen SecInput esitse Sec isimli sessionuna
  5. echo 'guvenlik kodu dogru'; // guvenlik kodu dogrudur islemleri burada yapabiliriz
  6. }else{ // SecInput esit degilse Sec isimli sessionuna
  7. echo 'guvenlik kodu yanlis<br><a href='.$_SERVER['HTTP_REFERER'].'>geri</a>';// guvenlik kodu yanlis geri don diyoruz
  8. }
  9. }elseif($_GET['s']=='img'){
  10.     $y = 60;
  11.     $g = 20;
  12.     $code = imagecreate($y, $g);
  13.     $bgc = imagecolorallocate($code, 0, 0, 0);
  14.     $tc = imagecolorallocate($code, 255, 255, 255);
  15.     imagefill($code, 0, 0, $tc);
  16.     imagestring($code, 3, 10, 3, $_SESSION['Sec'], $bgc);
  17.     header("Content-Type: image/gif");
  18.     imagejpeg($code);
  19.     imagedestroy($code);
  20. }
  21. else{
  22. session_unset();// eski session varsa siliyoruz
  23. $SecCode = substr(md5(rand(0,999)),0,6);// guvenlik kodumuzu olusturmak icin 0 ile 999 arasi rastgele sayi olusturduk sayiyi md5 yaptik ve ilk 6 karakterini aldik ve $SecCode degisgenine esitledik
  24. $_SESSION['Sec']=$SecCode// Sec isimli sessiona da guvenlik kodumuzu esitledik
  25. echo '<b>Guvenlik kodu:</b> <img src='.$_SERVER['PHP_SELF'].'?s=img><form action="'.$_SERVER['PHP_SELF'].'?act=ok" method="POST"><input type="text" name="SecInput" /><input type="submit" value="OK"></form>'; // ekrana guvenlik formu bastik, guvenlik kodunun yazilacagi inputa SecInput ismini verdik form action POST kullandik
  26. }
  27. ?>

Herhangi bir sorun veya aksilik olursa yardımcı olmaya çalışırım.

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (6 oy ortalamasi: 4.67 / 5)
Loading ... Loading ...


Etiketler: , , , , , ,