2016-04-26 114 views
0

好吧,讓我一步一步解釋你,點是這個發展的新來的。安全的網址參數

PHP文件在我的CProject目錄: allproducts.php watch.php

在allproducts.php即時顯示數據庫中的所有可用的產品。每個產品都有自己的網址。在我的watch.php im根據參數顯示某些數據來自allproducts.php頁面。

我allproducts.php頁

我有這個網址:

http://localhost/cproject/watch?v=

URL看起來是這樣的:在

本地主機/的CProject /手錶V = J46TKlqSw3Gt4sk

?一刻我寫了一個rewriterule使watch.php在「看」

現在我想擺脫這個「?」標誌中的「/」和「V =」到「/」 ,所以我想我的RUL到看起來像這樣 本地主機/的CProject /手錶/ J46TKlqSw3Gt4sk

我現在希望你也明白我想要真正做到? 如果我突然解釋你我有我的.htaccess文件爲這個watch.php 我有什麼這行代碼

重寫規則^看watch.php [NC,L]

+0

您可以使用'$ _POST ['param_name']'或'$ _REQUEST ['param_name']'發送post請求並獲取php文件。或者你可以使用htaccess進行URL重寫。 –

+0

是的即時通訊問如何與一個例子,因爲我不知道如何做到這一點 –

+0

你可以請分享你的代碼? –

回答

0

你必須使用.htaccess來做這個url。

.htaccess文件代碼

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

對於PHP版本低於5.2。6試試這個:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 

如果你需要從URL中的參數,然後使用:

的JavaScript

var str = "http://localhost/cproject/watch?v=J46TKlqSw3Gt4sk"; 
var param = str.split("=")[1]; 
alert(param); 

結果

J46TKlqSw3Gt4sk

新的URL

var str = "http://localhost/cproject/J46TKlqSw3Gt4sk"; 
var param = str.split("/"); 
alert(param[param.length - 1]); 

結果

J46TKlqSw3Gt4sk

+0

謝謝,但我想要的是得到一個像我上面提到的網址,並在不同的頁面獲取參數 –

+0

你可以設計這樣的網址,但不工作。爲了處理這種類型的url,你需要在你的主機空間中添加'.htaccess'文件並且有一些代碼來控制這個url。 –

+0

你能幫我寫一下必要的代碼嗎/ –

0

對於您可以使用此重寫規則,這將網址與轉發.htaccess文件只是一個/來的網址爲/watch?v=

RewriteRule ^cproject/(.*) cproject/watch?v=$1 [NC] 

例如:

開始URL http://localhost/cproject/eeeeeeeaf
結束URL http://localhost/cproject/watch?v=eeeeeeeaf

但我想要的是得到像我所提到的網址,並在不同的頁面獲取參數

您可以使用通過使用$_SERVER[]數組中的REQUEST_URI元素,生成文件。

對於PHP代碼,你可以這樣做:

<?php 
$request = $_SERVER['REQUEST_URI']; 
$exploded = explode("/", $request); 
$id  = $exploded[4]; 
echo $id; 
?> 

在問候你加入你的問題,很容易做,因爲我在上面放。取而代之的是我已經把,可以改爲只使用:

RewriteRule ^watch/(.*) watch.php?v=$1 [NC,L] 

可以(最好)之後加入這個規則當前的規則一起,當你需要它應有的功能。

現在我想要擺脫這個「?」標誌中的「/」和「V =」到「/」,所以我想我的RUL到這個樣子的本地主機/的CProject /手錶/ J46TKlqSw3Gt4sk

我所提供的URL重寫規則將做到這一點:) 有你實際測試了您提供的重寫?

+0

我是否需要一個相同的名稱,我打電話給htaccess中的網址的一個derectory? –

+0

你能解釋一下你的意思嗎?抱歉。 – pxgamer

+0

謝謝,但我在這個url中的「watch」是我以前重寫的特定頁面。 在一個例子中,我的「手錶」的真實網址就像view_product.php。 那麼你認爲這會起作用嗎? –