2014-09-17 19 views
7

Ben php bir web sitesi geliştiriyorum ve bu php kullanarak ilk sitem ve ben php için yeniyim.Formda url sluguna sorgu dizgisi nasıl dönüştürebilirim?

sitesi index.php 2 sayfa içerir ve index.php aşağıdaki formu vardır

,

<form action="info.php" method="get"> 
    <input type="text" name="username" /> 
    <input type="text" name="company" /> 
    <input type="email" name="email" /> 
    <button type="submit">Click to Proceed!</button> 
</form> 

kullanıcı girip ayrıntıları yazılı ismi info.php olmalıdır. Bir sonraki sayfaya yönlendirir ve URL sorgu dizesini gibi

http://localhost/info/john/zend/[email protected] 

ve url değerlerini almak için $_GET['username'],$_GET['company'] and $_GET['email']

kullanarak böyle yukarıdaki url görüntülemek istediğiniz

http://localhost/info?username=john&company=zend&[email protected] 

içerir

Ben, aşağıda htaccess dahil yeniden yazma kuralının çok denedik

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

RewriteRule ^([\d\w-]+)$ info?username=$1&company=$2&email=$3 [L,QSA] 
RewriteRule ^([\d\w-]+)$ info?username=$1&company=$2&email=$3 [QSA] 
RewriteRule ^(.*)$ info?username=$1&company=$2&email=$3 [L,QSA] 
RewriteRule ^([a-zA-Z0-9-/]+)/([0-9]+)$ info?username=$1&company=$2&email=$3 [L,QSA] 
RewriteRule ^([a-zA-Z0-9-/]+)/([0-9]+)$ info?username=$1&company=$2&email=$3 [QSA] 

ama hiçbir şey işe yaramıyor.

this ve Clean URLs for search query? da denedim. Birisi bana bu konuda yardımcı olur.

+0

sizin .htaccess olarak

if(isset($_GET['username']) && isset($_GET['company']) && isset($_GET['email'])) $url = '/info/'.$_GET['username'].'/'.$_GET['company'].'/'.$_GET['email'] header('Location: '.$url); 

route.php için koddur route.php için formu gönderin JavaScript ile yapmalısınız. Temiz URL'ler istiyorsanız, GET yerine POST kullanmalısınız. –

+1

olası yinelenen [Arama sorgusu için temiz URL'ler?] (Http://stackoverflow.com/questions/5464481/clean-urls-for-search-query) –

+0

Temiz URL'ler istemiyorum. Bir sonraki sayfada bu değerlere yalnızca url aracılığıyla ihtiyacım var. Bu yüzden GET kullanıyorum –

cevap

2

Akış budur.

burada

Gerçekten serverside bu değiştiremezsiniz

RewriteRule ^info/(.+)/(.+)/(.+)$ info.php?username=$1&company=$2&email=$3 [L,QSA] 
+0

Cevabınız için teşekkürler./Info/myname/mycompany/myemail adresine yönlendirir, ancak bu sunucuya /info/myname/mycompany/myemail.php bu sunucuda bulunamadı. –

0

Yeniden yazma çalışıyorsa, basit bir kuralla kontrol edin. Yeniden yazma modülünün etkin olduğundan emin olun.

RewriteRule ^info/(.+)/(.+)/(.+)(/*)$ info?username=$1&company=$2&email=$3 [L,QSA] 
+1

Bu, aranan şeyin tam tersi. –

+0

bu çalışmıyor. –

İlgili konular