• 27-04-2014, 10:30:41
    #10
    Kimlik doğrulama veya yönetimden onay bekliyor.
    mervancanturk adlı üyeden alıntı: mesajı görüntüle
    Mevzuyu çözmüşsün dostum
    Selamlar,

    Bu konuyla ilgili olarak;

    <?php  
    $kod1gelen = $_POST["kod1input"];  
    $kod2gelen = $_POST["kod2input"];  
    
    $kod1kontrol = get_post_meta(776, 'Kod1');  
    $kod2kontrol = get_post_meta(776, 'Kod2'); 
    
    if(!empty($kod1gelen) && !empty($kod2gelen) && $kod1gelen == $kod1kontrol && $kod2gelen == $kod2kontrol){  
    
    echo "iki şifrede doğru ;)";  
    }else {  
    
    echo "Şifreler yanlış.";  
    } 
    ?>
    Kodunu çalıştırmayı denediğimde $kod1kontrol ve $kod2kontrol array veri içerdiği için yanlışa düşüyor.

    Bunun için döngü kurmak istediğimde;

    <?php  
    $kod1gelen = $_POST["kod1input"];  
    $kod2gelen = $_POST["kod2input"];  
    
    $kod1kontrol = get_post_meta(776, 'Kod1');  
    $kod2kontrol = get_post_meta(776, 'Kod2'); 
    
    // Kod1 ve Kod2 aynı sayıda veri içeriyor (427'şer adet), ve her birinin x. kaydı, diğerinin x. kaydı ile birlikte geçerli.
    
    for ($i=0; $i<= count($kod1kontrol); $i++) 
    { 
         if(($kod1kontrol[$i]==$kod1gelen"]) && ($kod2kontrol[$i]==$kod2gelen"])) 
    
         //bu şekilde de denedim;
         //if(($kod1kontrol[$i]==$_POST["kod1input"]) && ($kod2kontrol[$i]==$_POST["kod2input"])) 
    
         { 
         echo "iki şifrede doğru"; 
         } 
         else 
         { 
         echo "Şifreler yanlış."; 
         } 
    } 
    ?>
    Yukarıdaki döngü ile ekranda herhangi bir sonuç alamıyorum.

    Oysa ki;

    <?php  
    $kod1kontrol = get_post_meta(776, 'Kod1'); 
    if(!empty($kod1kontrol)){ 
      foreach ($kod1kontrol as $kod1 => $value){ 
        echo $kod1 . "=>" . $value . "[br /]"; 
      } 
    } 
    $kod2kontrol = get_post_meta(776, 'Kod2'); 
    if(!empty($kod2kontrol)){ 
      foreach ($kod2kontrol as $kod2 => $value){ 
        echo $kod2 . "=>" . $value . "[br /]"; 
      } 
    } 
    ?>
    Kodunu kullanarak test ediyorum,
    Kod1 dizisinden 427 adet kaydı (tümü), Kod2 dizisini de aynı şekilde sorunsuz ekrana yazdırabiliyorum. (Döngü 0'dan 426'ya kadar sayıyor).

    Anladım ki kurduğum döngüde problem var. Döngüde göremediğim hatayı görme şansınız var mı?

    Post edilen sayfadaki form:
    <form action="activation-control.php" name="kontrol" id="kontrol" method="post">
    Coupon Code: <input type="text" size="20" name="kod1input"> 
    Access Code: <input type="text" size="20" name="kod2input">
    <input type="submit" value="   Next   " class="gradient-button" style="width:120px; height:75px;">
    </form>
    Aşağıdaki kod bloğu ve ekran çıktıları daha net görmenizi sağlayabilir. Bu çıktıları alabiliyorum ama döngüyü kuramadım...

    <?php 
    $kod1gelen = $_POST["kod1input"]; 
    $kod2gelen = $_POST["kod2input"]; 
    
    $kod1kontrol = get_post_meta(776, 'Kod1'); 
    $kod2kontrol = get_post_meta(776, 'Kod2'); 
    
    if(!empty($kod1gelen) && !empty($kod2gelen) && $kod1gelen == $kod1kontrol && $kod2gelen == $kod2kontrol)
    { 
    echo "iki şifrede doğru"; 
    }
    else 
    { 
    echo "Şifreler yanlış."; 
    }
    echo "[br/]";
    echo "kod1gelen " . $kod1gelen . " kod1kontrol " . $kod1kontrol . "[br/]";
    echo "kod2gelen " . $kod2gelen . " kod2kontrol " . $kod2kontrol . "[br/]";
    echo "[br/]";
    echo "array > kod1gelen " . $kod1gelen . " kod1kontrol " . $kod1kontrol[0] . "[br/]";
    echo "array > kod2gelen " . $kod2gelen . " kod2kontrol " . $kod2kontrol[0] . "[br/]";
    ?>
    Ekran çıktısı şu şekilde:
    (Burada form girişlerinde ilk değerleri elimle girdiğim ve yukarıda $kod1kontrol[0], $kod2kontrol[0] ilk değerleri yazdırdığım için, karşılaştırılan rakamlar uyuyor.)

    Şifreler yanlış.
    kod1gelen 23711 kod1kontrol Array
    kod2gelen 2356f99f kod2kontrol Array
    
    array > kod1gelen 23711 kod1kontrol 23711
    array > kod2gelen 2356f99f kod2kontrol 2356f99f
    Ama dediğim gibi döngüyü kuramadım, döngü kurduğum zaman çıktı alamıyorum. Yardımcı olabilirseniz sevinirim, bu işi öğrenmeye çalışıyorum...
  • 28-04-2014, 21:56:17
    #11
    Kimlik doğrulama veya yönetimden onay bekliyor.
    coverover adlı üyeden alıntı: mesajı görüntüle
    Selamlar,

    Bu konuyla ilgili olarak;

    <?php  
    $kod1gelen = $_POST["kod1input"];  
    $kod2gelen = $_POST["kod2input"];  
    
    $kod1kontrol = get_post_meta(776, 'Kod1');  
    $kod2kontrol = get_post_meta(776, 'Kod2'); 
    
    if(!empty($kod1gelen) && !empty($kod2gelen) && $kod1gelen == $kod1kontrol && $kod2gelen == $kod2kontrol){  
    
    echo "iki şifrede doğru ;)";  
    }else {  
    
    echo "Şifreler yanlış.";  
    } 
    ?>
    Kodunu çalıştırmayı denediğimde $kod1kontrol ve $kod2kontrol array veri içerdiği için yanlışa düşüyor.

    Bunun için döngü kurmak istediğimde;

    <?php  
    $kod1gelen = $_POST["kod1input"];  
    $kod2gelen = $_POST["kod2input"];  
    
    $kod1kontrol = get_post_meta(776, 'Kod1');  
    $kod2kontrol = get_post_meta(776, 'Kod2'); 
    
    // Kod1 ve Kod2 aynı sayıda veri içeriyor (427'şer adet), ve her birinin x. kaydı, diğerinin x. kaydı ile birlikte geçerli.
    
    for ($i=0; $i<= count($kod1kontrol); $i++) 
    { 
         if(($kod1kontrol[$i]==$kod1gelen"]) && ($kod2kontrol[$i]==$kod2gelen"])) 
    
         //bu şekilde de denedim;
         //if(($kod1kontrol[$i]==$_POST["kod1input"]) && ($kod2kontrol[$i]==$_POST["kod2input"])) 
    
         { 
         echo "iki şifrede doğru"; 
         } 
         else 
         { 
         echo "Şifreler yanlış."; 
         } 
    } 
    ?>
    Yukarıdaki döngü ile ekranda herhangi bir sonuç alamıyorum.

    Oysa ki;

    <?php  
    $kod1kontrol = get_post_meta(776, 'Kod1'); 
    if(!empty($kod1kontrol)){ 
      foreach ($kod1kontrol as $kod1 => $value){ 
        echo $kod1 . "=>" . $value . "[br /]"; 
      } 
    } 
    $kod2kontrol = get_post_meta(776, 'Kod2'); 
    if(!empty($kod2kontrol)){ 
      foreach ($kod2kontrol as $kod2 => $value){ 
        echo $kod2 . "=>" . $value . "[br /]"; 
      } 
    } 
    ?>
    Kodunu kullanarak test ediyorum,
    Kod1 dizisinden 427 adet kaydı (tümü), Kod2 dizisini de aynı şekilde sorunsuz ekrana yazdırabiliyorum. (Döngü 0'dan 426'ya kadar sayıyor).

    Anladım ki kurduğum döngüde problem var. Döngüde göremediğim hatayı görme şansınız var mı?

    Post edilen sayfadaki form:
    <form action="activation-control.php" name="kontrol" id="kontrol" method="post">
    Coupon Code: <input type="text" size="20" name="kod1input"> 
    Access Code: <input type="text" size="20" name="kod2input">
    <input type="submit" value="   Next   " class="gradient-button" style="width:120px; height:75px;">
    </form>
    Aşağıdaki kod bloğu ve ekran çıktıları daha net görmenizi sağlayabilir. Bu çıktıları alabiliyorum ama döngüyü kuramadım...

    <?php 
    $kod1gelen = $_POST["kod1input"]; 
    $kod2gelen = $_POST["kod2input"]; 
    
    $kod1kontrol = get_post_meta(776, 'Kod1'); 
    $kod2kontrol = get_post_meta(776, 'Kod2'); 
    
    if(!empty($kod1gelen) && !empty($kod2gelen) && $kod1gelen == $kod1kontrol && $kod2gelen == $kod2kontrol)
    { 
    echo "iki şifrede doğru"; 
    }
    else 
    { 
    echo "Şifreler yanlış."; 
    }
    echo "[br/]";
    echo "kod1gelen " . $kod1gelen . " kod1kontrol " . $kod1kontrol . "[br/]";
    echo "kod2gelen " . $kod2gelen . " kod2kontrol " . $kod2kontrol . "[br/]";
    echo "[br/]";
    echo "array > kod1gelen " . $kod1gelen . " kod1kontrol " . $kod1kontrol[0] . "[br/]";
    echo "array > kod2gelen " . $kod2gelen . " kod2kontrol " . $kod2kontrol[0] . "[br/]";
    ?>
    Ekran çıktısı şu şekilde:
    (Burada form girişlerinde ilk değerleri elimle girdiğim ve yukarıda $kod1kontrol[0], $kod2kontrol[0] ilk değerleri yazdırdığım için, karşılaştırılan rakamlar uyuyor.)

    Şifreler yanlış.
    kod1gelen 23711 kod1kontrol Array
    kod2gelen 2356f99f kod2kontrol Array
    
    array > kod1gelen 23711 kod1kontrol 23711
    array > kod2gelen 2356f99f kod2kontrol 2356f99f
    Ama dediğim gibi döngüyü kuramadım, döngü kurduğum zaman çıktı alamıyorum. Yardımcı olabilirseniz sevinirim, bu işi öğrenmeye çalışıyorum...
    Merhaba, en başta adım adım yapacağını belirttiğin için sana örnek kodu yazmıştım.

    Benim düşüncem özel alanları parça parça girmen şeklindeydi. Array olarak girdiğinde gene adım adım yapacağını düşündüğümde farklı, yazmaya çalıştığını gördüğümde kafamda farklı birşey canlandı.

    Özel mesaj olarak ayrıntılı yazabilirsen beraber yazalım bu kodu
  • 29-04-2014, 23:54:31
    #12
    mervancanturk adlı üyeden alıntı: mesajı görüntüle
    Merhaba, en başta adım adım yapacağını belirttiğin için sana örnek kodu yazmıştım.

    Benim düşüncem özel alanları parça parça girmen şeklindeydi. Array olarak girdiğinde gene adım adım yapacağını düşündüğümde farklı, yazmaya çalıştığını gördüğümde kafamda farklı birşey canlandı.

    Özel mesaj olarak ayrıntılı yazabilirsen beraber yazalım bu kodu
    Selam dostum,

    Ben olayı çözdüm. Şöyle paylaşayım;

    <?php
    $kod1gelen = $_POST["kod1input"]; //post edilen birinci form elemanından (input type text) gelen veri atanır
    $kod2gelen = $_POST["kod2input"]; //post edilen ikinci form elemanından (input type text) gelen veri atanır
    
    $kod1kontrol = get_post_meta(776, 'Kod1'); //776 pos_id - Kod1 ise Wp Özel alan adı, bu değişken array/dizi döndürür
    $kod2kontrol = get_post_meta(776, 'Kod2'); //776 post_id - Kod2 diğer özel alan adı, bu değişken array/dizi döndürür
    
    $kod1varmi=0;
    $kod2varmi=0;
    if(!empty($kod1kontrol)){
      foreach ($kod1kontrol as $kod1 => $value){
    if ($value == $kod1gelen){
    $kod1varmi=1;
    }
      }
    
    foreach ($kod2kontrol as $kod2 => $value)
    {
     if ($value == $kod2gelen)
     {
     $kod2varmi=1;
    }
      }
    }
    
    if ($kod1varmi == 1 and $kod2varmi==1)
    {
    echo "Giriş başarılı, lütfen aşağıdaki formu doldurunuz.";
    }
    else
    {
    echo "Kuponkodu veya Erişimkodunu hatalı girdiniz, lütfen tekrar deneyiniz.";
    }
    ?>
    Şuan problemsiz olarak çalışıyor.

    Sayfaya aramadan ulaşacaklar için açıklama yapayım:

    Wordpress'de özel alanlar (custom fields) kullanarak, özel alanlara çoklu veri girişi yapıldıktan sonra, bu verileri input, texbox gibi form elemanları ile sorgulamak ve

    eğer post edilen form elemanına (input type text) girilen değer; veritabanı tablosundaki özel alan sütununa eklenmiş ise olumlu mesaj verir, eğer ilgili özel alanda girilen kaydı bulamazsa hata mesajı verir.