PHP $ _POST çalışmıyor [kapalı]

6 Cevap php

Benim sunucuda bu test sayfasını kurmak. Ben formu göndermek bile $_POST dizisi bir şey içermiyor neden söyle. Ben üç farklı tarayıcılarda denedim ve hiçbir şey olmuyor.

<?php print_r($_POST);?>

<form method="post">

<p><label>Email: </label>
<input type="text" id="login_email" />
</p>

<p><label>Password: </label>
<input type="password" id="login_password" />
</p>

<p><label>Remember Me?: </label>
<input type="checkbox" id="login_remember" />
</p>

<p>
<input type="submit" value="Login" />
</p>

</form>

Ben yıllardır PHP yazı olmuştur ve bu daha önce hiç olmamıştı. Ne bu kod ile yanlış?

6 Cevap

Sizin giriş elemanları isim niteliklerini yok. Olmalıdır:

<input type="text" id="login_email" name="login_email" />

Bir giriş elemanı bir name niteliği yoksa, bu POST veri parçası olarak gönderilmez.

Peki, form etiketi için bir eylem yok? Bu komut adı olmalıdır:

<form method="post" action="scriptname.php">

Tarayıcı öğesi adı gibi kimliğini teslim etmiyor - ... ve ayrıca her form girişi için ayar adlarını değiliz.

Giriş elemanları için herhangi bir isim niteliği var.

Ben Zend_View yardımcıları dayalı takip fonksiyonları gibi bir şey yazmak öneririz.

formText($name, $value = null, array $attribs = null)
formPassword($name, $value = null, array $attribs = null)
formLabel($id, $text, array $attribs = null)
formHidden($name, $value = null, array $attribs = null)
formSubmit($name = null, $text = null, array $attribs = null)
formSelect($name, $selected, array $attribs = null, array $options = null)
formCheckbox($name, $default, array $attribs = null, array $options = null)

Sonra tekrar böyle / özledim şey asla unutmayacağım.

<form method="POST" action="<?php echo $PHP_SELF; ?>

<p>
<?php
echo formLabel('login_email', 'Email'), ':',
     formText('login_email'); 
?>
</p>

<p>
<?php
echo formLabel('login_password', 'Password'), ':',
     formPassword('login_password'); 
?>
</p>

<p>
<?php
echo formCheckbox('login_remember'), ' ', 
     formLabel('login_remember', 'Remember me');
?>
</p>

<p>
<?php
echo formSubmit(null, 'Login');
?>
</p>
</form>

İpucu:

  • Id Attribs tanımlı değilse, id = "$ id" niteliği ve formHidden için ya bir varsayılan kimliğe sahip olmamalıdır id kullanılan etiketler dışında, adıyla aynıdır.
  • formCheckbox yazıyor bir negatif değer kendisinden önce aynı adla formHidden, bu yüzden onay kutusunun yanı işaretli değilse bir dönüş değeri olsun.
  • formCheckbox seçenekleri kontrol veya denetlenmeyen için değerleri olan bir dizidir.
  • Işaretlenir veya değilse kontrol etmek için bir onay kutusu dönüş değerini okumak için FILTER_VALIDATE_BOOLEAN ile bir filtre kullanın.

Lütfen giriş unsurların tümü bir isim özniteliği gerekir.

Eğer komut iş yapmak için isim özelliklerini unuttu. Ayrıca sizin girişin adlarını eşleştirmek için etiket tag nitelikleri "için" içerebilir. Bu bir gereklilik değil ama form CSS biçimlendirme yardımcı olabilir:

<p>
<label for="login_email">Email: </label>
<input type="text" name="login_email" id="login_email" />
</p>

Eğer 6 ay sonra geri gelmek için varsa daha akıcı ve okunabilir herşeyi maç ve kodunuzu tutmanıza yardımcı olur. Eylem niteliği birini doldurmak için gidiş değildir eğer senin eylem olarak yer alacak:

<form method="POST" action="<?php echo $PHP_SELF; ?>

Bu sayfa kadar formun gereksinimleri yanı sıra komut yürütmek gerektiği gibi yapmak iyi olduğundan emin olun. Üzerinde görüş bir basit gibi görünüyor. Umarım bu yardımcı olur.