我已经写了一个基本的登录表单和注册表,并将它们存储在数据库中,包括个人的详细信息,我还创建了另一行名为filename,其名称将是输入的用户名.php假设如果有人输入John,文件名将john.php是这样的,每当他登录时,该人只会访问该特定文件,但在登录表单中,我将文件名存储在特定变量中,并希望在用户登录login.php中的代码时打开
<?php
include('connection.php');
if(isset($_POST['login']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$filename = $username.".php";
$errflag = false;
if($username == '' and $password == '') {
echo "you must enter username and password";
$errflag = true;
}
if ($errflag == false) {
SignIn($username,$password);
}
}
function SignIn($username,$password){
global $connection;
$search = $connection->prepare("SELECT * FROM users where username =
:username AND password = :password");
$search->bindParam(':username',$username);
$search->bindParam(':password',$password);
$search->execute();
$count = $search->rowCount();
if($count> 0)
{
$_SESSION['username'] = $_POST['username'];
header("Location : $filename");
}
else{
echo "wrong email or password";
}
}
?>
我使用了header('Location:'),以便我可以重定向到名称存储在$ filename中的文件我尝试使用header('location:'。$ filename);还有标题(“location:$ filename”);但是这两个都返回错误是有什么办法让我可以重定向到存储在变量中的那个文件名谢谢
答案 0 :(得分:0)
你正在做的只有一个小错误。
请参阅以下代码。
progressBar.setProgress(porgressBar.getProcess + returnProgress);
或者只是将$filename = $username.".php"; // Write it here in the signIn function
$_SESSION['username'] = $_POST['username'];
header("Location : $filename");
作为参数传递给函数。
$filename
另外,在函数定义中添加SignIn($username,$password, $filename);
参数
$filename
使用以下代码更改标题位置。
function SignIn($username,$password, $filename){
// Code goes here
}
如果您需要更多帮助,请与我联系。
答案 1 :(得分:-1)
您的变量$ filename是一个字符串,因此您的标题将类似于:
header("Location:"John.php"")
,这就是为什么标头不起作用,如果用户名是john。此外,您正在尝试将文件重定向到未存在的文件,也就是说,如果新用户输入名称(例如Jason),则服务器无法重定向到您假定的Jason.php文件,因为您尚未创建它。您应该做的是创建一个首页文件,您应该使用发布的信息并显示适当的详细信息。下次,请使用圆点和逗号。