安全的网址参数

问题描述:

好吧,让我一步一步解释你,点是这个发展的新来的。安全的网址参数

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

你可以请分享你的代码? –

你必须使用.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

你能帮我写一下必要的代码吗/ –

对于您可以使用此重写规则,这将网址与转发.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。 那么你认为这会起作用吗? –