我正在尝试存储$_GET
在变量中,并在POST请求中重复使用它们,但是问题是,一旦发送POST请求,URL就会变空,没有任何内容可以存储在变量中,或者存储在变量中的数据将被删除因为网址中没有任何内容
[email protected]&token=M3XK5HeCZy
当前网址
发送POST请求后,URLsuccess.php
不再存储任何内容,
我正在尝试根据此方法更新用户密码
我已经尝试了$_SESSION
,但无法弄清楚,我目前的工作
if(!$_GET['email'] && !$_GET['token']) {
header("Location: register.php");
}
else {
$arrayCookie = array('email' => $_GET['email'] , 'token' => $_GET['token']);
$json = json_encode($arrayCookie);
setcookie('data',$json,time()+(8400));
$cookie = $_COOKIE['data'];
$cookie = stripslashes($cookie);
$cookieSavedArray = json_decode($cookie,true);
print_r($cookieSavedArray);
include 'UserActions.php';
$msg="";
$checkEmail = new UserActions();
$checkEmail->databaseConnection('localhost', 'root', '', 'placement2018');
}
HTML表格
<form action="success.php" enctype="multipart/form-data" method="post">
<div class="col-sm-12">
<div class="form-group">
<label>Password</label>
<input type="password" name="pass" placeholder="Enter password" class="form-control" required>
</div>
<div class="form-group">
<label>Confirm Password</label>
<input type="password" name="confirmpass" placeholder="Confirm password" class="form-control" required>
</div>
<input class="btn btn-lg btn-info" type="submit" name="addPassword" value="Submit">
</center>
现在,一旦提交表单,URL参数就不存在了,因此我想存储URL参数,因为我需要基于该参数运行查询。
如何存储$ _GET参数,使其也保留在$ _POST请求中?
这就是我解决此问题的方式,我相信这有点像破解,但它确实有效,我仍在寻找更好的解决方案。
验证
如果URL中没有参数,它将被重定向
if(!$_REQUEST['email'] && !$_REQUEST['token']) {
header("Location: register.php");
}
如果找到参数,则:
if(isset($_POST['addPassword'])) {
$email = htmlentities($_POST['email']);
$token = $_POST['token'];
$password=$_POST['pass'] ;
$confirm = $_POST['confirmpass'] ;
if($password == $confirm) {
if($checkEmail->checkTokenEmail($email,$token)) {
$password = password_hash($password,PASSWORD_BCRYPT);
if($checkEmail->setAccountActiveAndInsertPassword($email,$password)) {
$msg = "<p style='color:green;text-align:center;'>Successfuly set password, you may login now</p>";
}
} else {
$msg = "<p style='color:red;text-align:center;'>This link is expired</p>";
}
}
}
最后,在之前$_POST
我保存请求$email
,并$token
在一个隐藏字段,这样我可以在进一步查询中使用它
<form action="success.php" enctype="multipart/form-data" method="post">
<div class="col-sm-12">
<div class="form-group">
<label>Password</label>
<input type="password" name="pass" placeholder="Enter password" class="form-control" required>
</div>
<div class="form-group">
<label>Confirm Password</label>
<input type="password" name="confirmpass" placeholder="Confirm password" class="form-control" required>
</div>
<input type="hidden" value="<?php echo $_REQUEST['email'];?>" name="email">
<input type="hidden" value="<?php echo $_REQUEST['token'];?>" name="token">
<center>
<input class="btn btn-lg btn-info" type="submit" name="addPassword" value="Submit">
</center>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句