PHP noob在这里。我正在尝试创建一个登录文件。这是我的代码:
HTML:
<body>
<div class="login">
<h2 class="login-header">Log in</h2>
<form action="practice.php" method="POST" class="login-container">
<p>
<label>Username: </label>
<input type="text" id="user" name="user" placeholder="Enter Username" required/>
</p>
<p>
<label>Password:</label>
<input type="password" id="pass" name="pass" placeholder="Enter Password" required/>
</p>
<p>
<input type="submit" id="btn" value="Login" />
</p>
</form>
</div>
PHP:
<?php
$usernameIn = $_POST['user'];
$passwordIn = $_POST['pass'];
$usernameIn = stripcslashes($usernameIn);
$passwordIn = stripcslashes($passwordIn);
$usernameIn = mysql_real_escape_string($usernameIn);
$passwordIn = mysql_real_escape_string($passwordIn);
$host = 'localhost';
$user = 'root';
$password = '';
$db ='practice';
$connection = mysqli_connect($host,$user,$password,$db);// you can select db separately as you did already
if($connection){
$ret = mysqli_query($connection,"SELECT `userName`, `password`, `clearacne` FROM
`users_table` WHERE `userName`='$usernameIn' AND `password`='$passwordIn'");
global $to_encode = array();
while($row = mysqli_fetch_assoc($ret)) {
$to_encode[] = $row;
}
//user doesn't exist redirect to error page
if(empty($to_encode)) header("Location: http://localhost/practiceLogin/loginErrorIndex.html");
//user exist continue
else{
$to_encode = json_encode($to_encode);
header("Location: http://localhost/practiceLogin/loginOkIndex.php");
}
}else{
echo "db connection error because of".mysqli_connect_error();
}
?>
两个问题: 1)如果数据库中存在信息,是否有办法处理用户输入的信息并将其重定向到新文件? 2)如何在不包含/需要practice.php文件的情况下将practice.php中的变量$ to_encode传递给其他.php文件?
基本上我要做的是如果用户没有注册就不允许访问,如果他允许访问另一个文件并使用代表与用户关联的不同参数的JSON对象。
谢谢!
答案 0 :(得分:0)
第一个问题:您已经在重定向:
header("Location: http://localhost/practiceLogin/loginOkIndex.php");
第二个问题:是的,有办法。它被称为会话。您可以在此处阅读更多内容:http://php.net/manual/en/book.session.php
基本解释 - 一旦检查用户名/密码是否与您开始会话匹配,在其中放入一些临时变量,文件已写入服务器的硬盘并且cookie已发送到您的用户的浏览器。下次用户向您的某些页面发送请求时,您检查cookie,检查会话是否仍处于活动状态且未过期,您可以从会话的文件中获取临时变量。
重要的东西已经写好并自动化了。只需花点时间阅读我给你的链接,我相信你会在互联网上找到很多示例资源。