我设法使用GET方法(登录页面)工作
if(isset($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];
$url = "Dailyplanner.php?username=" . $username . "password=" . $password;
我想要
上的变量的页面$username = $_GET['username'];
$password = $_GET['password'];
$url = "DailyPlanner.php?username=" . $username. "password=" . $password;
echo "$username $password";
现在,除了两件事之外,它还可以正常工作。
数字1:
加载页面时,正确显示$username
和$password
的值,但是由于某些原因,它指出第3行的密码是未定义的变量。
数字2:
我想访问多个页面的变量,所以我将其复制到想要的页面并使用以下代码
$username = $_GET['username'];
$password = $_GET['password'];
$url = "(the page i want).php?username=" . $username. "password=" . $password;
echo "$username $password";
错误仅表示用户名和密码未定义,并且不会像我希望的那样更改url。只是想知道是否有人可以提供帮助。对不起,如果我在学习PHP,这很痛苦。谢谢。
答案 0 :(得分:0)
我也是新手,我有一些建议:
首先,我认为您需要检查$_POST['username']
和$_POST['password']
,而不仅仅是$_POST['login']
。
第二:如果您想要在所有视图中都可用的内容,则可以使用会话:see this link
希望获得帮助
答案 1 :(得分:0)
1)您缺少?username=" . $username. "
& password=" . $password
来获取查询,这就是未定义密码的原因
2)这种传递此类易受攻击数据的方法是完全不正确的,因为它在地址面板中显示了密码,而在引荐来源标头中显示的则是最差的,此外,您还必须修改每个链接以保持跨站点传递数据。
您无需存储整个凭据,只需在会话中授权并存储用户ID,密码就永远不能以原始格式存储在任何地方
答案 2 :(得分:-1)
根据我的评论,您应该使用$_SESSION
而不通过URL传递此类信息。
登录后
if(isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
//redirect to your dashboard page or authenticated page
}
然后在每个页面上执行此操作
different_page.php
session_start();
if(isset($_SESSION['username'])) {
//user is logged in
echo $_SESSION['username'];
}
我不建议将密码保存在会话变量中。如果您要确定登录用户,请使用某种令牌,将其存储在会话和登录用户的数据库中,然后检查两个令牌都匹配的每个页面。
//if user credentials check out, generate token and append to session global
$_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(16));
然后在每个页面上,代替上面的标记检查