CakePHP: önleyin URL form alanları GET

2 Cevap php

Ben sahip bir CakePHP arama formunu var 'type'=>'get'. Temel olarak, şeklinde elemanları bir tür görüntünün bir göndermek düğmedir. Form yayınlanmıştır olduğunda, URL ben her zaman bu x & olsun Görüntünün y koordinatları Gönder düğmesi:

http://site.com/controller/action? x=22&y=36 & Sorgu = merhaba

Ben URL gösterilmesini koordinatları engel herhangi bir yolu var mı? Başkası bağlantı olduğunu unintuitive şeyler olmadan, aynı arama yapmak için aynı URL kullanabilir böylece nedenidir.

Teşekkürler!

2 Cevap

Sen düğmesini bazı javascript kullanabilirsiniz:

document.getElementById('myImageButton').onclick = function() {
    this.form.submit();
    return false;
};

Alternatif olarak, beforeFilter fonksiyonu, kontrolör, sen, istenmeyen değişkenlerin varlığını kontrol onları dışarı şerit ve güzel URL'ye yönlendirme olabilir. Bu yapılmış olsa 2 HTTP istekleri orada olacağım anlamına gelmez.

Bir Post/Redirect/Get yapmak için arıyoruz gibi geliyor.

İşte CakePHP bunu yapmanın iki örnek:

A GET isteğine a POST yönlendirme avantajları şunlardır:

  1. Kullanıcılar, "Yeniden göndermek ister misin?" Alamadım iletişim onlar yenileyin
  2. Çıkan sayfa / sorgu imi olabilir
  3. Sen kullanabileceği CakePHP en SEF yönlendirme yerleşik, böylece yerine ile URL'leri /search?q=contact alabilirsiniz /search/contact