HTML onay kutusunu alan değil bile teslim olarak PHP geçirilen

2 Cevap php

Öncelikle önceden tüm sayesinde, bu çok sinir bozucu oldu ve ben kimse değilim şey görebilirsiniz umuyorum, ben kesinlikle hiçbir php uzman değilim. Peki burada 'ne oluyor.

Ben insanlar bizim newletter için tercih için bir onay kutusu var bir form var. Form elemanı bu gibi görünüyor:

<label for=newsletter accesskey=N class="checkbox">Signup for Cloverton's Newsletter</label>
        <input name="newsletter" type="checkbox" id="newsletter" value="Yes" style="width:20px;" />

İşte o zaman bu kod ile bir php dosyasına sunulmuştur:

    if (isset($_POST['newsletter']) && $_POST['newsletter'] == 'Yes'){
     echo "newletter yes";
     $newsletter = 1;
     }else{
        echo "newsletter no";
        $newsletter = 0;
        }

$ Bülten bir veritabanı alanına eklenir.

Sorun kutusunun işaretli olup olmadığını böylece her giriş bülten alırken, gerçek olarak php gönderilen ediliyor olmasıdır.

Herhangi bir yardım büyük mutluluk duyacağız! Teşekkürler!

İşte tam form eksi kısalık uğruna seçenek listesi

<form method="post" action="contact.php" name="contactform" id="contactform">

        <fieldset>

        <legend>Please fill in the following form all fields are required, thanks!</legend>

        <label for=firstName accesskey=F><span class="required">*</span>First Name</label>
        <input name="firstName" type="text" id="firstName" size="30" value="" /> 

        <br />
        <label for=lastName accesskey=L><span class="required">*</span>Last Name</label>
        <input name="lastName" type="text" id="lastName" size="30" value="" /> 

        <br />
        <label for=email accesskey=E><span class="required">*</span>Email</label>
        <input name="email" type="text" id="email" size="30" value="" />

        <br />
        <label for=city accesskey=C><span class="required">*</span>City</label>
        <input name="city" type="text" id="city" size="30" value="" /> 

        <br />


        <label for=state accesskey=S><span class="required">*</span>State</label>
        <select name="state" type="text" id="state">
            <option value="AL">Alabama</option> 
            ...
            <option value="WY">Wyoming</option>
        </select>

        <br />
        <label for=newsletter accesskey=N class="checkbox">Signup for Cloverton's Newsletter</label>
        <input name="newsletter" type="checkbox" id="newsletter" value="Yes" style="width:20px;" /> 

        <br />           
        <p><span class="required">*</span> Are you human?</p>

        <label for=verify accesskey=V>&nbsp;&nbsp;&nbsp;3 + 1 =</label>
        <input name="verify" type="text" id="verify" size="4" value="" style="width: 30px;" /><br /><br />

        <input type="submit" class="submit" id="submit" value="Submit" />

        </fieldset>

        </form>

2 Cevap

Kod doğru. Büyük olasılıkla veritabanı ekleme / güncelleme mantığı ile ilgili bir sorun var. Neden bunu PHP form işleme olduğunu sanıyorsun?

Bu sadece kafama dank etti gelmiştir.

Bir onay kutusu işaretli ise $ _POST süper küreseli ayarlı değil. !isset($_POST['newsletter']) sonra kontrol değildi Yani eğer - isset($_POST['newsletter']) bunu kontrol edildi.

Edit: 'evet' kısmını çıkarın - değeri 'evet', sadece doğru ya da olmayacak.

Edit 2: I've tested this to death. Change your code to:

 if (isset($_POST['newsletter'])){
     echo "newletter yes";
     $newsletter = 1;
 }else{
     echo "newsletter no";
     $newsletter = 0;
 }

Da onay kutusu girişinden değer = "Evet" özelliğini kaldırın. Eğer kontrol varsayılan olarak kullanılmak tarafından kontrol istiyorsanız = "kontrol".