Bir form PHP ile sunulmuş olup olmadığının tespit

4 Cevap php

Ben doğrulama ve verilerin önbelleğe yapar PHP ile formların işlemek için temiz bir yol arıyorum, ama formu HTML ile PHP karıştırma gerektirmez. Temelde, ben o ve ya veriler yolunda mutlulukla gitmek, ya da formu gönderme doğrulama hataları ve önbelleğe alınan sonuçlar dönelim hedef, süreç için bu kadar yolda saf HTML ve bu formda önünü bir form yazabiliyor olmak istiyorum Onunla geri.

Ben öğrenme için bir yardım olarak geliştiriyorum biraz çerçevesinin bu parçasıdır. Benim ilk planı GET ve POST verileri hissetmenize Yönlendirme nesnesini kullanmak için, ama bu veriler her bir formun varlığını işaret etmez.

I this list of HTTP Headers bakarak oldum ama yardımcı olabilecek bir şey göremiyorum. Ben önce HTTP Başlıkları bakarak rahatsız olmamıştım rağmen bu yüzden kolayca bir şey eksik olabilir.

Veya form tabanlı gönderimleri tespit diğer bazı güvenilir bir yol var mı?

4 Cevap

Bu istekleri GET gelince form tabanlı gönderimleri ve basit bağlantılar arasında ayrım hiçbir genel yolu yoktur.

Düz HTML ile sadece formlar, REQUEST_METHOD filtreleme uygulanabilir bir çözüm olabilir, POST istekleri oluşturabilir. (Ancak, bu besbelli GET istekleri yakalamak olmaz, ve AJAX da POST istekleri oluşturabilir, yani ...)

Eğer form kontrol, ben gibi bir şey ekleyerek öneririm

<input type="hidden" name="this_is_a_form" />

her forma. (Bonus puan için, Form HTML müdahale ve anında yukarıdaki satırı ekleyebilirsiniz.)

Hemen hemen iki seçeneğiniz var:

  1. Ajax kullanın.
  2. Bir middleman.php boyun ve süreci 2 veya forma geri adım yönlendirme.

Ben gereksiz Sayfa yükleri önlemek için ajax öneriyoruz. Gibi bir şey yapabilirsiniz:

(Ben biliyorum ne olduğunu, çünkü burada jQuery kullanımını varsayarak)

$.post("middleman.php", {option1: options}, function(data){
    if (data == 1) window.location = 'step2.html';
    else $("#notificationArea").text("sorry, form incorrect")}, "html");

Sonra middleman.php düzgün bir şekilde teslim şeklinde, ya da yanlış için başka bir şey için 1 ya yankı.

Ayrıca, bu javascript incorrectness kullanıcıyı uyarır. Ayrıca yanlıştır formun belirli bölümleri için özel hata iletileri yankı olabilir. (Bu da noficiation tutabilecek bir div "notificiationArea" var varsayar)

Ben mevcut çerçeve veri doğrulama gerçekleştirmek nasıl bakmak için teşvik edecek. I QCubed, onlar (kullanıcı girişi yakalama ve işleme önce doğrulayarak) sizin tarif tam olarak ne yapmak çok iyi kullanın. İşte onların form işleme akar nasıl açıklanır öğretici bulunuyor: http://examples.qcu.be/assets/_core/php/examples/basic_qform/process_flow.php. Form_Validate sizin tarif tam aşamasıdır.

Yan Not: güvenlik / veri bütünlüğü nedenleriyle sunucu tarafında veri doğrulama yapmak önemlidir. Eğer isterseniz, kullanıcı deneyimini geliştirmek için, bunun üstüne istemci tarafında (javascript) doğrulama ADD olabilir. Ama sen de, sunucu tarafı doğrulamasının VAR.

if(!empty($_POST) && isset($_POST['submit']))

burada "sunma" Gönder düğmesini adıdır ...