Devletler PHP arasındaki veri geçirerek

2 Cevap php

Yani PUT öykünen bir sığınakta bir tasarıma sahip olan Limonade PHP kullanıyorum, POST, silme, güncelleme oluşturmak için yolları DELETE.

Ben iyi gidiyor bazı form doğrulama geliştirmeye çalışıyorum. Karşılıklı önemli sorun olsa oluşturmak ya da düzenlemek formu yeniden doldurmak için geri (doğrulama başarısız oldu) benim filtrelenmiş verileri döndürmek için nasıl.

Bu nasıl yapılabilir ki? Ben şu anda bir sayfa oluşturmak için var:

/admin/page/new -> GET function

/admin/page -> POST function
+ validate
    + pass, update db
    + fail, add errors to flash, redirect to /admin/page/mew

Tüm ben geçersiz birlikte / admin / sayfa / yeni doldurmak için nasıl bilmiyorum gibi aşağı düşer, ancak süzülmüş veri.

2 Cevap

Geri yönlendirildi sayfasına veri almak için, get (, bakmak hoş değil imleme için güzel değil, tavsiye etmem) her eleman için vars ile talep oturumu veya çöp kullanmanız gerekir ya.

Ben tahmin ediyorum ki 'add errors to flash' is using a session var (Limonade aşina değil).

Başka bir alternatif submitting the form with an AJAX call, daha sonra form veri bile hata değiştirmek olmaz olurdu.

Tabii ki, yine geriye dönük uyumluluk için çalışan bir sivil-AJAX yöntemi gerekir.

Update, Limonade Source teyit flash() kullanım $_SESSION. Yani zaten oturum değişkenler kullanıyoruz.

Sen yönlendirme olmadan çıkış formu olabilir. Hiçbir diğer HTML öğelerini içeren bir komut formu koyun. O (uygun alıntı tarzı ile htmlspecialchars çağrıldıktan sonra) $_POST verilen herhangi bir form girişi değerini belirledik. Diğer komut uygun olduğunda form komut dosyası içerir.

Lütfen yardımcı fonksiyonları:

function passthruFormInput($name) {
    if (isset($_POST[$name])) {
      echo htmlspecialchars($_POST[$name], ENT_QUOTES); 
    }
}

newForm.php (veya ne olursa olsun onu aramak istiyorum):

<form action="..." method="POST" onsubmit="...(client side validation function)...">
    ...
    <input name="foo" value="<?php passthruFormInput('foo'); ?>"/>
    ...
</form>

Dinamik formunu oluşturmak durumunda, maç için yukarıdaki adapte. Bir kaç şey bu uygulama ve yaklaşım hakkında kapatma hissediyorum, ama ben oldukça üzerinde benim parmak koyamazsınız.

Form komut kamuya açık bırakarak bir güvenlik sorunu olmayabilir, ancak belge kök hiyerarşi dışında veya ORDER Allow,Deny or mod_rewrite ile korunan bir şube ya da olmalıdır. Muhtemelen manzaralı gitmeli.