MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

Raslantisal kullanici sifreleri uretmek Yazar: Serkan Tarih: 01/04/02

Bildiginiz gibi bazi ag uygulamalarinda, kullanici ile sunucu arasinda bir belirli anahtar (sifre) yaratilmasi ve boylece bazi haklarin sifreyle kendini tanimlayan kullaniciya verilmesi saglanir.Bu makalemizde tamamen raslantisal yaratilan boyle bir sifrenin kullanicinin e-posta hesabina gonderilmesini tartisacagiz.

Ornek :

<?php
function Raslantisal_Sifre($uzunluk) {
srand(date("s"));
$olasi_karekterler = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$sifre = "";
while(strlen($sifre)<$uzunluk) {
$sifre .= substr($olasi_karekterler,(rand()%(strlen($olasi_karekterler))),1);
}
return($sifre);
}

//8 karekterli bir sifre icin asagidaki gibi bir fonksiyon
//cagrilabilir...Fonksiyonun sonucunda donen deger
//ekrana echo edilir.

echo Raslantisal_Sifre(8);

/*
Rastlantisal degeri urettigimize gore bu degeri bir degisken icinde saklayip
manipule edebiliriz.Boylece PHP hazir fonksiyonu mail () yardimiyla
kullanicinin e-posta adresine belirli bir format kullanarak gonderebilirz.
Bazi durumlarda bu degeri kullanicinin bilgilerinin yer aldigi veritabani tablosunda
saklamanizda gerekebilir.
*/

?>

Aciklama :

1.Satir : Fonksiyon deklare ediliyor.Fonksiyonun ismi "Raslantisal_Sifre" ve aldigi argument ise "$uzunluk" olarak programci tarafindan belirlenmistir.
2.srand(date("s")); ile random ureteci besleniyor...
3. $olasi_karekterler degiskeni sifre icinde gecebilecek karekterler tanimlaniyor.Bu degisken bildiginiz basit bir "duzyazi" (string) veri tipindedir.
4. $sifre degiskeni ilk defa deklare ediliyor.aslinda gerek yok ama programlama tekniklerinde bir degiskeni baslatmak "iyi bir hareket" olarak degerlendiriliyor.tavsiye edilir...
5.while dongusu kullanilarak istenen karekter uzunluguna kadar $olasi_karekterler degiskeninin bir kareketeri raslantisal olarak secilerek $sifre degiskenine ekleniyor.

substr ()

Aciklama : Degiskenin sahip oldugu degerin belirli bir parcasini duzyazi olarak dondurur.
Formati : duzyazi substr (duzyazi duzyazi, tamsayi baslama_degeri [, tamsayi uzunluk])
Ornekler :

> $rest = substr ("abcdef", -1); // "f" doner
> $rest = substr ("abcdef", -2); // "ef" doner
> $rest = substr ("abcdef", -3, 1); // "d" doner

rand ()

Aciklama : Rastlantisal bir deger uretir.
Formati : tamsayi rand ([tamsayi en_dusuk [, tamsayi en_yuksek]])
Ornekler :

> Ornegin MySQL tablosundan tamamen rastlantisal bir satir secmek icin asagidaki kod kullanilabilir :

> > SELECT * FROM tableadi ORDER BY RAND() LIMIT 1

> veya basitce 1-9 arsasinda rastlantisal bir sayi uretmek icin :

> > $sayi = rand (1,9);

strlen ()
Aciklama : Degiskenin degerinin kac karektere sahip oldugunu sayisal olarakdondurur.
Formati : tamsayi strlen (degisken_adi)
Ornekler :

> <?php
> $tmp=0;
> $s="Gelecek yil 30 yasima basiyorum...";
> while($tmp<strlen($s) && $c=$s[$tmp++])
> {if ($c!=chr(0)){echo $c;}}
> //"Gelecek yil 3" ciktisini verir...
> ?>

Serkan Hadi Ceylani
serkan@turk-php.com

Yayin Tarihi 10/17/01

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>