• 28-06-2009, 17:18:49
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar PHP de acemiyim, basit bir mesaj scripti yaptım ama checkbox ile basit bir onaylama işlemi yapamadım. Araştırdım ama bulamadım.

    Sorun şu; checkbox işaretlenirse veritabanına 1 yazacak işaretlenmeden kayıt yapılırsa 0 yazacak, bu kadar kolay ama yapamadım

    Yardımcı olursanız çok sevinirim, teşekkürler
  • 28-06-2009, 17:25:09
    #2
    checkbox'ın name alanını çekeceksin

    $cek = $_POST["checkbox"];
    
    if (empty($cek)) { // işaretlenmemişse
    $ekle = mysql_query("INSERT INTO tablo (checkbox) values ('0')");
    }else { // işaretlenmişse
    $ekle = mysql_query("INSERT INTO tablo (checkbox) values ('1')");
    }
  • 28-06-2009, 17:57:17
    #3
    Bu şekilde uyarladım ama olmadı, birde bu tablo yazan yere tablo ismini mi yazacağız.
    $onay = $_POST["onay"];
    
    if (empty($onay)) { // işaretlenmemişse
    $ekle = mysql_query("INSERT INTO tablo (onay) values ('0')");
    }else { // işaretlenmişse
    $ekle = mysql_query("INSERT INTO tablo (onay) values ('1')");
    }
    <input type="checkbox" name="onay" value="$onay" />
    EDİT : Bu şekilde yapınca da mesajı 2 kere gönderiyor
    <?
    $ix = $_POST['ix'];
    if($ix == "1"){
    $baslik = trim(htmlspecialchars($_POST['baslik']));
    $konu = $_POST['konu'];
    $onay = $_POST['onay'];
    $resim = $_POST['resim'];
    
    if (empty($onay)) { // işaretlenmemişse
    $ekle = mysql_query("INSERT INTO ilan (onay) values ('0')");
    }else { // işaretlenmişse
    $ekle = mysql_query("INSERT INTO ilan (onay) values ('1')");
    }  
    
    mysql_query("INSERT INTO ilan (baslik,konu,tarih,onay,resim) VALUES('$baslik','$konu',Now(),'$onay','$resim')");
    echo "Eklendi";
    }else{
    
    ?>
  • 28-06-2009, 17:58:50
    #4
    <input type="checkbox" name="onay" value="1" />
    <? 
    if(isset($_POST['onay'])) {
    // VERİTABANINA YAZ..
    } else {
    // VERİTABANINA YAZMA
    }
    ?>
  • 28-06-2009, 18:50:27
    #5
    Yukarda verdiğim şekilde ancak oluyor, onda da 2 kere table (ilan ) kullandığım için mesajı 2 kere gönderiyo, editlemeye çalıştım ama çalıştıramadım
  • 28-06-2009, 19:03:22
    #6
    dostum...
    bir checkbox un gönderilip gönderilmediğini anlaman için,

    if(isset($_POST['onay'])) {

    şu yeterlidir. checkbox işaretlenmezse eğer zaten POST edilmez. isset kullanarak post edilip edilmediğini anlarsın.
    checkboxlar için bu yöntem kullanılır yani.
    Sen tablonda ONAY diye bir bölüm açtıysan ve onaylanıp onaylanmadığının girilmesini istiyorsan şöyle yap;

    if(isset($_POST['onay'])) {
    $onay = "1";
    } else {
    $onay = "0";
    }

    böylece veritabanına yazarken sadece $onay değişkenini yaz, post edilip edilmediğine if karar versin.
  • 28-06-2009, 20:09:46
    #7
    Alakalarınıza teşekkür ederim, mantığını anladımda dediğiniz şeyleri buraya uyarladığım zaman çalıştıramıyorum.


    <?
    $ix = $_POST['ix'];
    if($ix == "1"){
    $baslik = trim(htmlspecialchars($_POST['baslik']));
    $konu = $_POST['konu'];
    $onay = $_POST['onay'];
    $resim = $_POST['resim'];
    
    
    mysql_query("INSERT INTO ilan (baslik,konu,tarih,onay,resim) VALUES('$baslik','$konu',Now(),'$onay','$resim')");
    echo "Eklendi";
    }else{
    
    ?>
    
    
    <FORM action="ekle.php" method=post ><INPUT type=hidden 
                    value=1 name=ix> 
    <table width="550" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr>
                    <td><b>Başlık:</b></td>
                    <td><input class=field style="WIDTH: 200px; HEIGHT: 20px"  
                      size=10 name=baslik /></td>
                  </tr>
                  <tr>
                    <td><b>Konu :</b></td>
                    <td><textarea id="textarea1" class=field style="WIDTH: 480px; HEIGHT: 240px" name=konu rows=6 cols=10></textarea><script language="javascript1.2">
      generate_wysiwyg('textarea1');
    </script></td>
                  </tr>
                  <tr>
                    <td><b>Tarih :</b></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td><b>Resim :</b></td>
                    <td><input name="resim" class="field" id="resim" style="WIDTH: 200px; HEIGHT: 20px"  
                      size="10" /></td>
                  </tr>
                  <tr>
                    <td><b>Onay :</b></td>
                    <td>
    <input type="checkbox" name="onay" value="$onay" /></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td><input class="button" type="submit" value="Ekle" name="send_button" /></td>
                  </tr>
                </table>
    <?}?>
    </FORM>
  • 28-06-2009, 21:29:17
    #8
    <?
    $ix = $_POST['ix'];
    if($ix == "1"){
    $baslik = trim(htmlspecialchars($_POST['baslik']));
    $konu = $_POST['konu'];
    $onay = $_POST['onay'];
    $resim = $_POST['resim'];
    
    
    mysql_query("INSERT INTO ilan (baslik,konu,tarih,onay,resim) VALUES('$baslik','$konu',Now(),'$onay','$resim')");
    echo "Eklendi";
    }else{
    
    ?>
    
    
    <FORM action="ekle.php" method=post ><INPUT type=hidden 
                    value=1 name=ix> 
    <table width="550" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr>
                    <td><b>Başlık:</b></td>
                    <td><input class=field style="WIDTH: 200px; HEIGHT: 20px"  
                      size=10 name=baslik /></td>
                  </tr>
                  <tr>
                    <td><b>Konu :</b></td>
                    <td><textarea id="textarea1" class=field style="WIDTH: 480px; HEIGHT: 240px" name=konu rows=6 cols=10></textarea><script language="javascript1.2">
      generate_wysiwyg('textarea1');
    </script></td>
                  </tr>
                  <tr>
                    <td><b>Tarih :</b></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td><b>Resim :</b></td>
                    <td><input name="resim" class="field" id="resim" style="WIDTH: 200px; HEIGHT: 20px"  
                      size="10" /></td>
                  </tr>
                  <tr>
                    <td><b>Onay :</b></td>
                    <td>
    <input type="checkbox" name="onay" value="$onay" /></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td><input class="button" type="submit" value="Ekle" name="send_button" /></td>
                  </tr>
                </table>
    <?}?>
    </FORM>

    tamam.. şimdi bunu şöyle değiştiriyoruz...

    <?
    $ix = $_POST['ix'];
    if($ix == "1"){
    $baslik = trim(htmlspecialchars($_POST['baslik']));
    $konu = $_POST['konu'];
    
    if(isset($_POST['onay'])) {
    $onay = "1";
    } else {
    $onay = "0";
    }
    
    $resim = $_POST['resim'];
    
    
    mysql_query("INSERT INTO ilan (baslik,konu,tarih,onay,resim) VALUES('$baslik','$konu',Now(),'$onay','$resim')");
    echo "Eklendi";
    }else{
    
    ?>
    
    
    <FORM action="ekle.php" method=post ><INPUT type=hidden 
                    value=1 name=ix> 
    <table width="550" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr>
                    <td><b>Başlık:</b></td>
                    <td><input class=field style="WIDTH: 200px; HEIGHT: 20px"  
                      size=10 name=baslik /></td>
                  </tr>
                  <tr>
                    <td><b>Konu :</b></td>
                    <td><textarea id="textarea1" class=field style="WIDTH: 480px; HEIGHT: 240px" name=konu rows=6 cols=10></textarea><script language="javascript1.2">
      generate_wysiwyg('textarea1');
    </script></td>
                  </tr>
                  <tr>
                    <td><b>Tarih :</b></td>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                    <td><b>Resim :</b></td>
                    <td><input name="resim" class="field" id="resim" style="WIDTH: 200px; HEIGHT: 20px"  
                      size="10" /></td>
                  </tr>
                  <tr>
                    <td><b>Onay :</b></td>
                    <td>
    <input type="checkbox" name="onay" value="1" /></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td><input class="button" type="submit" value="Ekle" name="send_button" /></td>
                  </tr>
                </table>
    <?}?>
    </FORM>
    eğer onay seçilirse 1 seçilmezse veritabanına 0 yazacaktır.
  • 28-06-2009, 22:38:33
    #9
    Çok çok Teşekkür ederim sağol varol