如果ID总是在网址的结尾是这样,你可以使用basename抓住它很简单:
<?php
// in your code you will do this:
//$url = $_SERVER['REQUEST_URI'];
// but for this example, i need your url:
$url = 'https://domain.com/no-access/download-id/572/';
// grab the basename:
$id = basename($url);
echo "($id)"; // (572)
加成现在
,你可以找到$id
这是请求的下载ID,将其放入一个变量中,您可以在写入忍者形式的代码中使用该变量。例如:
$url = $_SERVER['REQUEST_URI'];
// this was just for debugging...now comment it out
// $url = 'https://domain.com/no-access/download-id/572/';
// echo "($id)"; (572)
$id = basename($url);
// instead put it in a variable you can use in your form
$GLOBALS['requested-download-id'] = (integer) $id;
现在,无论你的代码为你的忍者形式做这样的事情:
<form id="ninja-form" action="your-action" method="POST">
<?php
// sanity check...something may have gone wrong
if (empty($GLOBALS['requested-download-id'])) {
$download_id = 'NOT FOUND';
} else {
$download_id = $GLOBALS['requested-download-id'];
}
?>
<input value="<?php echo $download_id; ?>" type="hidden" name="download-id">
更加简化 - 做这一切一下子
<form id="ninja-form" action="your-action" method="POST">
<?php
$id = basename($_SERVER['REQUEST_URI']);
// be sure you ended up with a number
$id = (integer) $id;
if (empty($id)) {
$download_id = 'NOT FOUND';
} else {
$download_id = $id;
}
?>
<input value="<?php echo $download_id; ?>" type="hidden" name="download-id">
好非常感谢,所以我会将网址更改为https://domain.com/no-access/然后以572为基准名称是正确的?我现在需要弄清楚如何将这个添加到忍者表单的隐藏字段 – igloobob
发表一些代码。此外,我没有按照关于更改您的网址无法访问的评论。我只是复制你的示例url。如果你得到'domain.com/no-access'的'basename()',那么你将会抓住'no-access'而不是'572'。 – WEBjuju
看到我的[编辑](http://stackoverflow.com/questions/41166749/populate-a-form-field-with-page-url/#answer-41166873) – WEBjuju