php / html使用URL的文本作为变量信息?

时间:2017-08-01 05:48:52

标签: php html token

我有一个html页面和php脚本,它是html页面上表单的动作。 我希望能够在上一个url(来自html页面)的哈希之后得到最后一段文本

www.website.com/htmlpage#token5

所以我得到了一个字符串:“token5”被置于一个变量中,这样当我提交html表单时,PHP脚本会获取之前的URL或这些行中的某些内容,以便能够获取此字符串。 / p>

类似的东西:

1. submit form from www.website.com/htmlpage#token5
2. action of form goes to www.website.com/phppage
3. php page gets the "token5" string.

我该怎么做呢? thanks`

3 个答案:

答案 0 :(得分:0)

您可以使用JavaScript来获取哈希值,然后将其添加到表单元素中。

  if(window.location.hash) {
      var hash = window.location.hash.substring(1); //Puts hash in variable, and removes the # character
      // do whatever you want to do with hash
  } else {
      // No hash found
  }

答案 1 :(得分:0)

请看一下:

Can I read the hash portion of the URL on my server-side application (PHP, Ruby, Python, etc.)?

#token5永远不会传递给服务器。

您可以做的是将#identra5的值放入隐藏的输入中:

<input type="hidden" value="token5" name="token"/>

然后服务器端PHP取决于您发布表单的方式,您可以这样做:

// If your action on form is 'post'
$token = $_POST['token'];

// If your action on form is 'get'
$token = $_GET['token'];

答案 2 :(得分:0)

打破网址的最简单方法就是使用parse_url

$url='http://www.website.com/htmlpage#token5';
$parts=parse_url( $url );
echo '<pre>',print_r($parts,true),'</pre>';

/* or */

$hash = parse_url( $url, PHP_URL_FRAGMENT );
echo $hash;

将输出

Array
(
    [scheme] => http
    [host] => www.website.com
    [path] => /htmlpage
    [fragment] => token5
)

token5