在URL中的?=之后添加随机文本

时间:2016-04-01 08:23:19

标签: javascript php html5

假设这是名为MyWebsite.com/page.php

的页面的代码
<?php
  $username = "SuperUsername";
  $password = "SuperPassword";
  if (isset($_GET['p']) && $_GET['p'] == "login") {
    if ($_POST['user'] != $username) {
        exit;
    } else if ($_POST['keypass'] != $password) {
        exit;
    } else if ($_POST['user'] == $username && $_POST['keypass'] == $password) {
    echo "LOGGED IN";
   } else {
    exit;
   }
  }
?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?p=login" method="post">
    <label><input type="text" name="user" id="user" /> Name</label><br />
    <label><input type="password" name="keypass" id="keypass" /> Password</label><br />
    <input type="submit" id="submit" value="Login" />
</form>
</body>
</html>

就像现在一样,如果有人登录,他们会被发送到名为“MyWebsite.com/page.php?p=login”的页面

但是现在,如果有人访问网站MyWebsite.com/page.php?=1337,则会在没有?=查询的情况下加载相同的网页。我怎样才能做到这一点,以便我在?=之后获得任何数字,当用户登录时,相同的数字将添加到MyWebsite.com/page.php?p=login1337

我该怎么做?

这是我到目前为止所尝试过的,似乎无法正常工作

$Query = $_SERVER['QUERY_STRING'];
if (isset($_GET['p']) && $_GET['p'] == "login" . $Query) {
/////////////////////
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?p=login<?php echo $Query;?>" method="post">

1 个答案:

答案 0 :(得分:0)

可以帮忙......试试这个

$Query = $_SERVER['QUERY_STRING'];
if (isset($_GET['p']) && $_GET['p'] == "login") {
/////////////////////
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?p=login&q=<?php echo $Query;?>" method="post">

像这样你可以通过以下方式获得$ Query值:

$Query = $_GET['q'];

或者另一个解决方案是使用隐藏的输入POST这个p = login(不在URL中):

<form action="<?php echo $_SERVER['PHP_SELF']; ?>?q=<?php echo $Query;?>" method="post">
<input typ="hidden" name="p" value="login" />

在PHP中测试:

if($_POST['p'] == 'login') {...}