将Hashtag放在参数的值中

时间:2013-08-02 10:11:17

标签: php javascript html ajax

我正在尝试在用户登录时重定向用户。

在我的网站上,您可以从不同的地方登录(在主菜单上,在某些页面上等),所以我希望在用户登录后,他会重定向到他以前的页面。 / p>

我为该过程获得了一个很长的代码,但问题出在登录面板中。

这是导致问题的代码的一部分,例如,如果我有“ index.php#page = games ”,则在登录后页面用户必须重定向到:

我的代码

HTML

<input type="hidden" id="login_redirect" name="login_redirect" value="index.php#page=games" />

JAVASCRIPT / AJAX

var dataString = 'username=' + username + '&password=' + password + '&login_redirect=' + login_redirect;

    //send informations 
    $("#message_login").load("php_login_code.php?"+dataString);

PHP

<?php
 $login_redirect = $_GET['login_redirect'];
 ?>

<script type="text/javascript">
                        window.location = <?php echo $login_redirect; ?>; //redirect to game's page
                        location.reload();
                    </script>

问题是:我只收到此链接: index.php

我应该得到这个链接 index.php #page = games

修改

我认为问题来自Ajax脚本,hashtag不能作为参数值发送。我怎么能摆脱这个?

2 个答案:

答案 0 :(得分:0)

index.php#page=games

URL中的哈希通常意味着锚定到某个标题,例如:

https://en.wikipedia.org/wiki/Java_(programming_language)#Automatic_memory_management

您应该做的只是删除所有#,并使用查询字符串。更简单,更直接。

index.php?page=games

if(isset($_GET['page'])) {
   $login_redirect = $_GET['page'];
}

如果您尝试从HTML DOM中获取值,则需要post数据,而不是发送get请求。

答案 1 :(得分:0)

您需要对插入到网址中的任何数据运行encodeURICompoent