PHP fonksiyonlar 2 (Öğretici) - Kullanıcı adı karakter kontrol fonksiyonu yazalım.

Developer LOOS

Somon Balığı Selam Vermeye Geldi
Katılım
16 Ekim 2019
Mesajlar
16
Elmaslar
12
Puan
0
Yaş
21
Konum
Mersin

Discord:

Logosuz#7888

Merhabalar Back-end'ciler veya olma yolunda ilerleyenler ?. Fonksiyonları paylaştığım konulardan bir tanesindesiniz şuan. Bu konumda kendi fonksiyonumuzu yazacağız.
Peki nedir bu yazdığım fonksiyon ve ne işe yarar?

Bir kullanıcı adı filtreleme fonksiyonu yapacağız.
NOT:Fonksiyon bir yerden alınmamıştır.
ilk öncelikle fonksiyonumuzun ana temelini atıp değişkenlerimizi oluşturalım.
PHP:
function kadi ($x) {// Fonksiyonumuzu oluşturuyoruz
    $kadi=$x; //Kullanıcı adını alıyoruz
    $i=0;
    $uzunluk = strlen($kadi); // Kullanıcı adının uzunuluğunu alıyoruz
    $var = false;
    while ($i < $uzunluk) { //Döngüye sokuyoruz
        if ($kadi[$i] != "A" && $kadi[$i] != "B" && $kadi[$i] != "C" && $kadi[$i] != "D" && $kadi[$i] != "E" && $kadi[$i] != "F" && $kadi[$i] != "G" && $kadi[$i] != "H" && $kadi[$i] != "I" && $kadi[$i] != "J" && $kadi[$i] != "K" && $kadi[$i] != "L" && $kadi[$i] != "M" && $kadi[$i] != "N" && $kadi[$i] != "O" && $kadi[$i] != "P" && $kadi[$i] != "R" && $kadi[$i] != "S" && $kadi[$i] != "T" && $kadi[$i] != "U" && $kadi[$i] != "V" && $kadi[$i] != "Y" && $kadi[$i] != "Z" && $kadi[$i] != "Q" && $kadi[$i] != "W" && $kadi[$i] != "X" && $kadi[$i] != "a" && $kadi[$i] != "b" && $kadi[$i] != "c" && $kadi[$i] != "d" && $kadi[$i] != "e" && $kadi[$i] != "f" && $kadi[$i] != "g" && $kadi[$i] != "h" && $kadi[$i] != "i" && $kadi[$i] != "j" && $kadi[$i] != "k" && $kadi[$i] != "l" && $kadi[$i] != "m" && $kadi[$i] != "n" && $kadi[$i] != "o" && $kadi[$i] != "p" && $kadi[$i] != "r" && $kadi[$i] != "s" && $kadi[$i] != "t" && $kadi[$i] != "u" && $kadi[$i] != "v"  && $kadi[$i] != "y" && $kadi[$i] != "z" && $kadi[$i] != "x" && $kadi[$i] != "w" && $kadi[$i] != "q" && $kadi[$i] != "_") {
            $var = true; //Eğer üsttekilerle uyumlu değilse olumsuz değer döner
            $i++;
        } else {
            $i++;
        }

    }
    if ($var == true) { // Eğer uygun değilse OLUMSUZ
        return false;
    } else {
        return true; // Uygunsa olumlu değer döner
    }
}

SYNTAX;
PHP:
// Kullanıcı adı oluşturalım



$kullaniciadim="xXxDeveloper_LOOSxXx";

if (kadi($kullaniciadim)) { //Eğer olumlu değer dönerse yani yasaklı karakter yok ise çalışacaktır

echo "Kullanıcı adı doğrudur";

} else { //Var ise kullanıcıyı bilgilendiriyoruz

echo "Kullanıcı adınızda yasaklı karakterler var lütfen düzeltin";

}
Nerelerde kullanılır?
* Veritabanına kullanıcı kaydederken

Basit bir konu oldu desteğiniz için şimdiden teşekkürler, bir hatam olmuşsa affola.
 
Son düzenleme:

Merhaba, ilk olarak açtığın bu eğitim konularını özenle okuyorum ve hatta uyguluyorum. Mümkünse bu konuların devamı gelebilir mi?
 
Bırak eğitimi web script çıkar.
 
Kod:
function kadi ($x) {// Fonksiyonumuzu oluşturuyoruz
    $kadi=$x; //Kullanıcı adını alıyoruz
    $i=0;
    $uzunluk = strlen($kadi); // Kullanıcı adının uzunuluğunu alıyoruz
    $var = false;
    while ($i < $uzunluk) { //Döngüye sokuyoruz
        if ($kadi[$i] != "A" && $kadi[$i] != "B" && $kadi[$i] != "C" && $kadi[$i] != "D" && $kadi[$i] != "E" && $kadi[$i] != "F" && $kadi[$i] != "G" && $kadi[$i] != "H" && $kadi[$i] != "I" && $kadi[$i] != "J" && $kadi[$i] != "K" && $kadi[$i] != "L" && $kadi[$i] != "M" && $kadi[$i] != "N" && $kadi[$i] != "O" && $kadi[$i] != "P" && $kadi[$i] != "R" && $kadi[$i] != "S" && $kadi[$i] != "T" && $kadi[$i] != "U" && $kadi[$i] != "V" && $kadi[$i] != "Y" && $kadi[$i] != "Z" && $kadi[$i] != "Q" && $kadi[$i] != "W" && $kadi[$i] != "X" && $kadi[$i] != "a" && $kadi[$i] != "b" && $kadi[$i] != "c" && $kadi[$i] != "d" && $kadi[$i] != "e" && $kadi[$i] != "f" && $kadi[$i] != "g" && $kadi[$i] != "h" && $kadi[$i] != "i" && $kadi[$i] != "j" && $kadi[$i] != "k" && $kadi[$i] != "l" && $kadi[$i] != "m" && $kadi[$i] != "n" && $kadi[$i] != "o" && $kadi[$i] != "p" && $kadi[$i] != "r" && $kadi[$i] != "s" && $kadi[$i] != "t" && $kadi[$i] != "u" && $kadi[$i] != "v"  && $kadi[$i] != "y" && $kadi[$i] != "z" && $kadi[$i] != "x" && $kadi[$i] != "w" && $kadi[$i] != "q" && $kadi[$i] != "_") {
            $var = true; //Eğer üsttekilerle uyumlu değilse olumsuz değer döner
            $i++;
        } else {
            $i++;
        }

    }
    if ($var == true) { // Eğer uygun değilse OLUMSUZ
        return false;
    } else {
        return true; // Uygunsa olumlu değer döner
    }
}

preg_match fonksiyonu ile tek satırla yapılabilecekken gereksiz bir döngünün içerisine sokmak pek mantıklı değil.

Kod:
if (!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $kullanici))
{
    exit('Kullanıcı adın uygun değil.');
}


preg_match belirli bir nedenden ötürü kullanılmıyorsa bile yine if döngüsünün içerisine her harf için ek koşul belirtmek yine yanlış.


Kod:
$izinVerilenKarakterler = array('a','b','c', 'd', 'e', 'f', 'g', 'h', 'ı', 'i', 'j');
$karakterlerDizi = str_split($kullaniciAdi) //Her harfi ayrı olarak sorgulamak için diziye dönüştürüyoruz.
foreach($karakterlerDizi as $harf);
{
    if(!in_array($harf, $izinVerilenKarakterler))
    {
        exit('Kullanıcı adın '.$harf.' karakterini içeremez.');
    }
}

Ve son olarak eğer bir kere uygun olmayan karakter bulunduysa, döngüyü devam ettirmenin mantığı yok. Direkt döngüden çıkılmalı.
Aynı sayfada işlem yapılacaksa break, yapılmayacaksa exit ile.
 
Son düzenleme:
[CODE lang="php" highlight="2-19"]function kadi ($x) {// Fonksiyonumuzu oluşturuyoruz
$kadi=$x; //Kullanıcı adını alıyoruz
$i=0;
$uzunluk = strlen($kadi); // Kullanıcı adının uzunuluğunu alıyoruz
$var = false;
while ($i < $uzunluk) { //Döngüye sokuyoruz
if ($kadi[$i] != "A" && $kadi[$i] != "B" && $kadi[$i] != "C" && $kadi[$i] != "D" && $kadi[$i] != "E" && $kadi[$i] != "F" && $kadi[$i] != "G" && $kadi[$i] != "H" && $kadi[$i] != "I" && $kadi[$i] != "J" && $kadi[$i] != "K" && $kadi[$i] != "L" && $kadi[$i] != "M" && $kadi[$i] != "N" && $kadi[$i] != "O" && $kadi[$i] != "P" && $kadi[$i] != "R" && $kadi[$i] != "S" && $kadi[$i] != "T" && $kadi[$i] != "U" && $kadi[$i] != "V" && $kadi[$i] != "Y" && $kadi[$i] != "Z" && $kadi[$i] != "Q" && $kadi[$i] != "W" && $kadi[$i] != "X" && $kadi[$i] != "a" && $kadi[$i] != "b" && $kadi[$i] != "c" && $kadi[$i] != "d" && $kadi[$i] != "e" && $kadi[$i] != "f" && $kadi[$i] != "g" && $kadi[$i] != "h" && $kadi[$i] != "i" && $kadi[$i] != "j" && $kadi[$i] != "k" && $kadi[$i] != "l" && $kadi[$i] != "m" && $kadi[$i] != "n" && $kadi[$i] != "o" && $kadi[$i] != "p" && $kadi[$i] != "r" && $kadi[$i] != "s" && $kadi[$i] != "t" && $kadi[$i] != "u" && $kadi[$i] != "v" && $kadi[$i] != "y" && $kadi[$i] != "z" && $kadi[$i] != "x" && $kadi[$i] != "w" && $kadi[$i] != "q" && $kadi[$i] != "_") {
$var = true; //Eğer üsttekilerle uyumlu değilse olumsuz değer döner
$i++;
} else {
$i++;
}

}
if ($var == true) { // Eğer uygun değilse OLUMSUZ
return false;
} else {
return true; // Uygunsa olumlu değer döner
}
}[/CODE]

preg_match fonksiyonu ile tek satırla yapılabilecekken gereksiz bir döngünün içerisine sokmak pek mantıklı değil.

Kod:
if (!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $kullanici))
{
    exit('Kullanıcı adın uygun değil.');
}


preg_match belirli bir nedenden ötürü kullanılmıyorsa bile yine if döngüsünün içerisine her harf için ek koşul belirtmek yine yanlış.


Kod:
$izinVerilenKarakterler = array('a','b','c', 'd', 'e', 'f', 'g', 'h', 'ı', 'i', 'j');
$karakterlerDizi = str_split($kullaniciAdi) //Her harfi ayrı olarak sorgulamak için diziye dönüştürüyoruz.
foreach($karakterlerDizi as $harf);
{
    if(!in_array($harf, $izinVerilenKarakterler))
    {
        exit('Kullanıcı adın '.$harf.' karakterini içeremez.');
    }
}

Ve son olarak eğer bir kere uygun olmayan karakter bulunduysa, döngüyü devam ettirmenin mantığı yok. Direkt döngüden çıkılmalı.
Aynı sayfada işlem yapılacaksa break, yapılmayacaksa exit ile.
[CODE lang="php" highlight="2-19"]function kadi ($x) {// Fonksiyonumuzu oluşturuyoruz
$kadi=$x; //Kullanıcı adını alıyoruz
$i=0;
$uzunluk = strlen($kadi); // Kullanıcı adının uzunuluğunu alıyoruz
$var = false;
while ($i < $uzunluk) { //Döngüye sokuyoruz
if ($kadi[$i] != "A" && $kadi[$i] != "B" && $kadi[$i] != "C" && $kadi[$i] != "D" && $kadi[$i] != "E" && $kadi[$i] != "F" && $kadi[$i] != "G" && $kadi[$i] != "H" && $kadi[$i] != "I" && $kadi[$i] != "J" && $kadi[$i] != "K" && $kadi[$i] != "L" && $kadi[$i] != "M" && $kadi[$i] != "N" && $kadi[$i] != "O" && $kadi[$i] != "P" && $kadi[$i] != "R" && $kadi[$i] != "S" && $kadi[$i] != "T" && $kadi[$i] != "U" && $kadi[$i] != "V" && $kadi[$i] != "Y" && $kadi[$i] != "Z" && $kadi[$i] != "Q" && $kadi[$i] != "W" && $kadi[$i] != "X" && $kadi[$i] != "a" && $kadi[$i] != "b" && $kadi[$i] != "c" && $kadi[$i] != "d" && $kadi[$i] != "e" && $kadi[$i] != "f" && $kadi[$i] != "g" && $kadi[$i] != "h" && $kadi[$i] != "i" && $kadi[$i] != "j" && $kadi[$i] != "k" && $kadi[$i] != "l" && $kadi[$i] != "m" && $kadi[$i] != "n" && $kadi[$i] != "o" && $kadi[$i] != "p" && $kadi[$i] != "r" && $kadi[$i] != "s" && $kadi[$i] != "t" && $kadi[$i] != "u" && $kadi[$i] != "v" && $kadi[$i] != "y" && $kadi[$i] != "z" && $kadi[$i] != "x" && $kadi[$i] != "w" && $kadi[$i] != "q" && $kadi[$i] != "_") {
$var = true; //Eğer üsttekilerle uyumlu değilse olumsuz değer döner
$i++;
} else {
$i++;
}

}
if ($var == true) { // Eğer uygun değilse OLUMSUZ
return false;
} else {
return true; // Uygunsa olumlu değer döner
}
}[/CODE]

preg_match fonksiyonu ile tek satırla yapılabilecekken gereksiz bir döngünün içerisine sokmak pek mantıklı değil.

Kod:
if (!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $kullanici))
{
    exit('Kullanıcı adın uygun değil.');
}


preg_match belirli bir nedenden ötürü kullanılmıyorsa bile yine if döngüsünün içerisine her harf için ek koşul belirtmek yine yanlış.


Kod:
$izinVerilenKarakterler = array('a','b','c', 'd', 'e', 'f', 'g', 'h', 'ı', 'i', 'j');
$karakterlerDizi = str_split($kullaniciAdi) //Her harfi ayrı olarak sorgulamak için diziye dönüştürüyoruz.
foreach($karakterlerDizi as $harf);
{
    if(!in_array($harf, $izinVerilenKarakterler))
    {
        exit('Kullanıcı adın '.$harf.' karakterini içeremez.');
    }
}

Ve son olarak eğer bir kere uygun olmayan karakter bulunduysa, döngüyü devam ettirmenin mantığı yok. Direkt döngüden çıkılmalı.
Aynı sayfada işlem yapılacaksa break, yapılmayacaksa exit ile.
Amacım mantığını anlatmak. Array ile yapımını ve başka yöntemleri biliyorum. Amacınız köstek olmaksa şöyle anlatayım. Bu konuyu okuyan kişi sizin dediğiniz gibi bir seviyede olsaydı bu konuyu okumazdı. Amacımız zaten başka fonksiyonlar kullanmadan kendi fonksiyonumuzu yapmaktır
 
Amacım mantığını anlatmak. Array ile yapımını ve başka yöntemleri biliyorum. Amacınız köstek olmaksa şöyle anlatayım. Bu konuyu okuyan kişi sizin dediğiniz gibi bir seviyede olsaydı bu konuyu okumazdı. Amacımız zaten başka fonksiyonlar kullanmadan kendi fonksiyonumuzu yapmaktır

Preg_match veya array ile neden fonksiyon oluşturulamasın? Ve doğrusunu belirtmek nasıl baltalamak olabilir ki? Buyrun fonksiyon hali

Preg_Match ile:
PHP:
function kadi ($x)
{
    if (!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $x))
    {
        return false;
    }
    else
    {
        return true;
    }
}

Array ile
PHP:
function kadi ($x)
{
    $izinVerilenKarakterler = array('a','b','c', 'd', 'e', 'f', 'g', 'h', 'ı', 'i', 'j');
    $karakterlerDizi = str_split($x) //Her harfi ayrı olarak sorgulamak için diziye dönüştürüyoruz.
    foreach($karakterlerDizi as $harf);
    {
        if(!in_array($harf, $izinVerilenKarakterler))
        {
            return false;
        }
    }
    return true;
}

Baltalamak isteseydim fonksiyon içerisinde kullandığınız gereksiz değişkenleri (mesela $x değişkeni varken aynı değişkeni yeni değişken oluşturup içerisine atamanızdan ya da $var değişkenini false olarak tanımlamanız gerekmediği halde tanımlamanızdan vb.) tanımlamanızdan bahsederdim. Konuyu kapatın, bu olmamış vb. yazmadım.
 
Preg_match veya array ile neden fonksiyon oluşturulamasın? Ve doğrusunu belirtmek nasıl baltalamak olabilir ki? Buyrun fonksiyon hali

Preg_Match ile:
PHP:
function kadi ($x)
{
    if (!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $x))
    {
        return false;
    }
    else
    {
        return true;
    }
}

Array ile
PHP:
function kadi ($x)
{
    $izinVerilenKarakterler = array('a','b','c', 'd', 'e', 'f', 'g', 'h', 'ı', 'i', 'j');
    $karakterlerDizi = str_split($x) //Her harfi ayrı olarak sorgulamak için diziye dönüştürüyoruz.
    foreach($karakterlerDizi as $harf);
    {
        if(!in_array($harf, $izinVerilenKarakterler))
        {
            return false;
        }
    }
    return true;
}

Baltalamak isteseydim fonksiyon içerisinde kullandığınız gereksiz değişkenleri (mesela $x değişkeni varken aynı değişkeni yeni değişken oluşturup içerisine atamanızdan ya da $var değişkenini false olarak tanımlamanız gerekmediği halde tanımlamanızdan vb.) tanımlamanızdan bahsederdim. Konuyu kapatın, bu olmamış vb. yazmadım.
Amacım başka fonksiyon kullanmadan fonksiyon yazmak. Dediğim gibi tek satırda yapabilirdim bir dahaki seferde anlatmadan, başka fonksiyonlara muhtaç duyarak anlatayım o konuyu senin için yapacağım.
 
Amacım başka fonksiyon kullanmadan fonksiyon yazmak. Dediğim gibi tek satırda yapabilirdim bir dahaki seferde anlatmadan, başka fonksiyonlara muhtaç duyarak anlatayım o konuyu senin için yapacağım.
Fonksiyon içerisinde kullandığınız strlen bir fonksiyondur.
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
 
Bu kadar basite ineceksek PHP eğitimi vermeliyim. Daha anlaşılır yapmaya çalıştım başarılar diyeceginize hata arama pesindesiniz.
Aynı zamanda diğer yazalım dillerinde lenght bir fonksiyon olarak yapılmamıştır örnek verecek olursak JavaScript .lenght
"Fonksiyon içerisinde başka fonksiyon kullanmadan yaptım" yazmışsınız ona istinaden strlen'in fonksiyon olduğunu belirttim. Evirip çevirmeye gerek var mı sizce? Javascript ile konumuzun ne alakası var? Pohpohlamam mı gerekiyordu yanlış anlatıldığı halde?
Amacım başka fonksiyon kullanmadan fonksiyon yazmak. Dediğim gibi tek satırda yapabilirdim bir dahaki seferde anlatmadan, başka fonksiyonlara muhtaç duyarak anlatayım o konuyu senin için yapacağım.
Adını developer yapınca developer olunmuyormuş demek ki.
 
"Fonksiyon içerisinde başka fonksiyon kullanmadan yaptım" yazmışsınız ona istinaden strlen'in fonksiyon olduğunu belirttim. Evirip çevirmeye gerek var mı sizce? Javascript ile konumuzun ne alakası var? Pohpohlamam mı gerekiyordu yanlış anlatıldığı halde?

Adını developer yapınca developer olunmuyormuş demek ki.
Neden bu kadar bana taktın anlamadım her cümlemi kelime kelime okuyup yanlış arıyorsun amacım kullanmadan yapmak dedim amacıma hâlâ ulaşamadım başka bir konumda hatamı aramanız dileği ile.
En iyisi sensin herkes senin dediğin gibi yapmak zorunda başka alternatif asla olamaz özür dilerim.
 
kodu uzattıkça uzatmışsınız. php'nin fonksiyonlarından yararlanabilirsiniz.
 
Amacım başka fonksiyon kullanmadan fonksiyon yazmak. Dediğim gibi tek satırda yapabilirdim bir dahaki seferde anlatmadan, başka fonksiyonlara muhtaç duyarak anlatayım o konuyu senin için yapacağım.
denesene bi?
 
  • Elmas
Tepkiler: GHS

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst