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
|