安全的网址参数
好吧,让我一步一步解释你,点是这个发展的新来的。安全的网址参数
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]
你必须使用.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
谢谢,但我想要的是得到一个像我上面提到的网址,并在不同的页面获取参数 –
你可以设计这样的网址,但不工作。为了处理这种类型的url,你需要在你的主机空间中添加'.htaccess'文件并且有一些代码来控制这个url。 –
你能帮我写一下必要的代码吗/ –
对于您可以使用此重写规则,这将网址与转发.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重写规则将做到这一点:) 有你实际测试了您提供的重写?
我是否需要一个相同的名称,我打电话给htaccess中的网址的一个derectory? –
你能解释一下你的意思吗?抱歉。 – pxgamer
谢谢,但我在这个url中的“watch”是我以前重写的特定页面。 在一个例子中,我的“手表”的真实网址就像view_product.php。 那么你认为这会起作用吗? –
您可以使用'$ _POST ['param_name']'或'$ _REQUEST ['param_name']'发送post请求并获取php文件。或者你可以使用htaccess进行URL重写。 –
是的即时通讯问如何与一个例子,因为我不知道如何做到这一点 –
你可以请分享你的代码? –