• 31-05-2009, 16:49:42
    #1
    merhabalar
    öncelikli sorunum şudur
    1 ci sorun:
    if ($account == '') {
        echo 'Please enter Username. <a href="index.php?sayfa=reg">Back</a>';
    }
    elseif ($email == '') {
        echo 'Please enter E-Mail <a href="index.php?sayfa=reg">Back</a> ';
    }
    elseif ($pass <> $pass2) {
        echo 'Paswords do not mitmach.<a href="index.php?sayfa=reg">Back</a> ';
    }

    burda accuount boş bırakılırsa uyarı veriyor
    email boş bırakılırsa uyarı veriyor
    pass verify pass la aynı olmassa uyarı veriyor

    burdaki sorunum email adresi boş bırakılncanın yanında email adresinde @ karakteri olmayıncada uyarı vermesi gerekiyor bunun içinde birşey düşünemedim yardımlarınızı bekliyorum.

    2ci sorunum:

    yine sorun email olayıyla ilgili. burdaki verileri ms sql server2000 deki bir tabloya yazdırıyorum. fakat kişi email@adresi.com şeklinde girdiğinde tabloya yazılan veri emailadresi.com şeklini alıyor. aradaki @ karakteri tabloya yazılmıyor
    bu sorunumu nasıl çözebilirim?
    yardımlarınızı bekliyorum
    iyi günler
  • 31-05-2009, 16:57:10
    #2
    Mail adresinin doğru formatta yazılıp yazılmadığını aşağıdaki fonksiyon ile kontrol edebilirsin.

    function emailKontrol($email) {
    
    return preg_match('#^[a-z0-9.!\#$%&\'*+-/=?^_`{|}~]+@([0-9.]+|([^\s\'"<>]+\.+[a-z]{2,6}))$#si',$email);
    
    }
    Kullanımı için;

    elseif ($email == '' || !emailKontrol($email )) {
    2. sorunuza gelirsek, mail adreslerini tuttuğunuz alanın türü nedir ?
  • 31-05-2009, 17:07:31
    #3
    Aykut adlı üyeden alıntı: mesajı görüntüle
    Mail adresinin doğru formatta yazılıp yazılmadığını aşağıdaki fonksiyon ile kontrol edebilirsin.

    function emailKontrol($email) {
    
    return preg_match('#^[a-z0-9.!\#$%&\'*+-/=?^_`{|}~]+@([0-9.]+|([^\s\'"<>]+\.+[a-z]{2,6}))$#si',$email);
    
    }
    Kullanımı için;

    elseif ($email == '' && emailKontrol($email )) {
    2. sorunuza gelirsek, mail adreslerini tuttuğunuz alanın türü nedir ?
    iki değerdede $email olduğu için kısır bi döngüye girmiş olmazmı

    2 sorumdaki data type varchar
  • 31-05-2009, 17:13:28
    #4
    @trgino, hayır, kısır döngü olmaz. İlk başta değerin boş olup olmadığına bakıyor, sonra diğer fonksiyonu çalıştırıyor. Yalnız !emailKontrol($email) şeklinde yazmalısın, ben r10'un bu saatlerdeki yavaşlığından yazımı hemen editleyemedim

    Mail adresini veritabanına yazdırmadan önce ekrana yazdırın. Orada @ işareti var mı diye bakın.
  • 31-05-2009, 17:23:54
    #5
    Aykut adlı üyeden alıntı: mesajı görüntüle
    @trgino, hayır, kısır döngü olmaz. İlk başta değerin boş olup olmadığına bakıyor, sonra diğer fonksiyonu çalıştırıyor. Yalnız !emailKontrol($email) şeklinde yazmalısın, ben r10'un bu saatlerdeki yavaşlığından yazımı hemen editleyemedim

    Mail adresini veritabanına yazdırmadan önce ekrana yazdırın. Orada @ işareti var mı diye bakın.
    ilk sorunum için dedikleriniz için teşekkürler gece denicem bunu.

    ikinci sorunum için
    email adresini ekrana yazdırdım sanırım sizinde düşündüğünüz gibi ekrana yazdırdığımdada @ karakteri çıkmıyor

    email girme alanını input type="text olarak ayarlamıştım
    bundan olabilir mi?
  • 31-05-2009, 17:26:36
    #6
    Hayır, type doğru. Herhangi bir filtreleme yapıyor musunuz ? Belki de filtreleme sırasında siliniyordur.

    Bu arada ilk mesajımda kodda yaptığın düzenlemeyi deneyin. Yavaşlıktan anca düzeltebildim.
  • 31-05-2009, 17:49:34
    #7
    Üyeliği durduruldu
    yazdirdiginizda da @ işareti cikmiyorsa kodlari incelemek gerek
  • 31-05-2009, 17:49:38
    #8
    Aykut adlı üyeden alıntı: mesajı görüntüle
    Hayır, type doğru. Herhangi bir filtreleme yapıyor musunuz ? Belki de filtreleme sırasında siliniyordur.

    Bu arada ilk mesajımda kodda yaptığın düzenlemeyi deneyin. Yavaşlıktan anca düzeltebildim.
    yavaşlıkdan bendede var konumu 5-6 denemeden sonra ancak acabildim.

    evet filitreleme uyguluyorum. üstün körü baktığımda @ karakterini filitrede göremedim ama daha detaylı bakıcam.

    ilk mesajınızda dediğinizi şu şekilde uyguladım

    function emailKontrol($email) {
    
    return preg_match('#^[a-z0-9.!\#$%&\'*+-/=?^_`{|}~]+@([0-9.]+|([^\s\'"<>]+\.+[a-z]{2,6}))$#si',$email);
    
    } 
    
    if ($account == '') {
        echo 'Please enter Username. <a href="index.php?sayfa=reg">Back</a>';
    }
    elseif ($email == '' || !emailKontrol($email )) {
        echo 'Please enter E-Mail <a href="index.php?sayfa=reg">Back</a> ';
    }
    şimdi normal email adresi formatında yazdığımdada kabul etmiyor.
  • 31-05-2009, 18:38:35
    #9
    @ işaretini filtren ya da başka bir şey sildiği için emailKontrol fonksiyonundan geriye false değeri döner. Haliyle kontrolü geçemezsin. @ olayının nerede silindiğini bulmak için aşama aşama ilerleyip, @ işaretinin silindiği kodu düzeltmen lazım.