假设这是名为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">
答案 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') {...}