php post请求和重定向
我正在创建一个页面,其中的php post请求和重定向,php,Php,我正在创建一个页面,其中的add\u user.php页面应该在之后让您登录 login.php页面使用: $_POST['username'] $_POST['password'] 为了验证和登录,它还填写了大量会话变量,我不想重新计算这些变量 我希望add_user.php在插入数据库后登录 以下是未执行我要执行的功能的最后代码位: $_SESSION["username"] = $username; $_SESSION["password"] = $password; header("l
add\u user.php
页面应该在之后让您登录
login.php
页面使用:
$_POST['username']
$_POST['password']
为了验证和登录,它还填写了大量会话变量,我不想重新计算这些变量
我希望add_user.php
在插入数据库后登录
以下是未执行我要执行的功能的最后代码位:
$_SESSION["username"] = $username;
$_SESSION["password"] = $password;
header("location:dashboard.php");
我想使用
$username
和$password
并将它们传递到login.php
页面。我认为有很多方法可以做到这一点,最简单的方法是
1创建一个会话密钥(存储在db per session and user中),通过将其写入$_session['sKey']之类的内容进行设置,并在要登录的页面上执行以下操作:
if (isset($_SESSION['sKey'])){
$validLogin = check_sKey_from_DB($_SESSION['sKey']); //previously created function that checks, if the key is present in the DB and still valid...
if($validLogin){
//you are logged in
}
}
Table(sessions):
userid(foreignkey)|loggedin(date)|sessionid(randomly generated Number)|validthrou(date)
在DB中,您应该有如下内容:
if (isset($_SESSION['sKey'])){
$validLogin = check_sKey_from_DB($_SESSION['sKey']); //previously created function that checks, if the key is present in the DB and still valid...
if($validLogin){
//you are logged in
}
}
Table(sessions):
userid(foreignkey)|loggedin(date)|sessionid(randomly generated Number)|validthrou(date)
2通过,例如通过标题获取属性,类似于:
header("Location:index.php?user=mustermann&pass=123")
在设置全局变量的任何值之前,请记住启动会话。
$\u会话
session_start()
用于启动会话。使用PHP会话
超全局数组,您需要在
部分的最开始启动会话。
参见示例-
<?php
session_start(); //session is started here just the next line of <?php
$username = $_POST['username'];
$password = $_POST['password'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
?>
现在这个会话变量可以用于任何其他页面,比如add_user.php页面。不理解。请详细说明。设置位置标题将导致浏览器发出GET请求,没有标题可以引发帖子。您可以通过多种方式完成任务(让Login接受GET参数,包含
使用添加用户登录,使用javascript表单提交执行重定向)-为了得到正确的答案,您需要编辑您的问题以包含更多的细节。为什么不使用html
formmethod=“post”
?将变量传递给login.php
?我决不会建议在GET url请求中使用任何形式的明文密码:if(空($\u SESSION[“username”])){//不是新用户$username=$\u POST['username'];$password=$\u POST['password'];header(“location:loggedin.php”);}要测试,不幸的是,我从未重定向您的问题对我来说不是很清楚。header()函数中有问题吗?如果只是header()函数不起作用,那么我建议您使用一个有效的过程;