2011-04-20 20 views
5

Bir form eyleminde bir url parametresi koymak tamam mı yoksa doğru mu? İçine gizli bir alan eklemek için en iyisi olurdu Bir formda URL parametreleri ekleme PHP HTML

index.php?do=search&_search=What are you looking for? 

okumak için URL'yi tercih ediyorum

index.php?_search=What are you looking for? (I've stripped %20) 

: Ben formu gönderdiğinizde

<form method='get' action='index.php?do=search'> 
    <input name='_search' type='text' value='What are you looking for?'> 
    <button type='submit'> Search </button> 
</form> 

URL olarak değiştirilir

+0

evet bunu (gizli alanları) yapacağını böyledir. Sorgulama için kullanmak için en iyi uygulama ve (hangi kullanarak) ne zaman navigasyon ect için değişkenleri kullanırken istendiğinde tam olarak ne olduğunu bildiğinizde (sonra sizin kullanımınız) dolandırıcıları bulmak için sorgusu ect –

+0

@ Lawrence işlemek için biraz daha zor bulabilirsiniz Güvenlik açısından GET ile POST arasında fark yoktur. Her ikisi de eşit düz metinlerdir. GET genellikle istekleri için kullanılır (örneğin, bu belgeyi ID 5 ile al) ve POST genellikle birkaç yüz bayttan fazla veri gerektiren (bazen GET kısaltılır) veya işlem için veri gönderirken kullanılır. – Brad

+0

Evet, fark ettim ki fark etmedim ama jquery ajax yöntemlerini kullanırken genellikle yazı kullanırım. Giriş adamlar – goingsideways

cevap

14

Görüşüme göre onları gizli alanlar olarak eklemeliyiz. Eğer yoksa bunu yapmak gerekir olamaz neden

<input type='hidden' name='do' value='search' /> 
3

A herhangi bir neden görmüyorum: Eğer gizli form alanı yoluyla

kullanımını bunu eğer params'ı geçmek denemek için hiçbir anlamı yoktur bu şekilde. do/aramanın ad/değer çifti düğmesi basın geçirilir

<form method='get' action='index.php'> 
    <input name='_search' type='text' value='What are you looking for?' /> 
    <submit name='do' value='Search'> 
</form> 

ve bir form üzerinde birden fazla eylem oluşturmak istiyorsanız o zaman farklı değerlere sahip olabilir: ancak bunu işleme Benim tercih edilen yöntem olacaktır Her gönder düğmesi için, formu birden çok şekilde ele alma.

if ($_GET['do'] == "Search") { 
... do Search ... 
} else if ($_GET['do'] == "Foo") { 
... do Foo ... 
} else if ($_GET['do'] == "Bar") { 
... do Bar ... 
} 

alternatif bir vaka yapısı kullanabilirsiniz:

switch($_GET['do']) { 
    case "Search": 
     ... do Search ... 
    case "Foo": 
     ... do Foo ... 
     break; 
    case "Bar": 
     ... do Bar ... 
     break; 
} 

Normalde kendim post kullanıyorum ama get aynı şekilde çalışır eminim. Umarım sorunuza cevap verir.

2

Bence Teodor ile aynı, değişkeni gizli alan olarak göndermemek için bir sebep olmamalı. Ama durumda bunu yapmak için iyi bir neden ... Eğer url sonunda & ekleyerek denediniz:

<form method='get' action='index.php?do=search&'> 
+1

FWIW, acion URL'sinin sonuna eklendiğinde ve parametrelerin eylem URL'sinde kalmasına yardımcı olmaz. –