php - 在此 if 语句 (PHP) 中,此代码中仅 echo 有效
问题描述
$con = mysqli_connect('localhost', 'login', '*mypass*', 'login');
$check = "SELECT * FROM users";
$rs = mysqli_query($con, $check);
if(isset($_POST['submit'])) {
$username = strtolower($_POST['username']);
$password = hash('sha512', $_POST['password']);
if($username && $password){
while($data = mysqli_fetch_array($rs)){
if($username == $data[1]){
if($password == $data[2]){
session_start();
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
$exp = time() + (60*60*24*365);
setcookie('user', $username, $exp);
echo "test";
header("location: dash.php");
exit();
} else {
error("Incorrect Password");
}
}
}
} else {
error("Please insert your username and password");
}
}
在这段代码中,if 语句 ( if($password == $data[2]) ) 的内容没有正确运行:只有 echo 函数有效,其他都无效!
这个问题有解决方案吗?
我使用 PHP 7.0
邮政:
echo "test";
添加仅用于测试目的,无论有没有它,代码都不起作用。
解决方案
这不是答案,而是尝试检查会话是否有效。
将以下代码放在它自己的文件中:
<?php
session_start();
if(isset($_SESSION['test_counter'])) {
$_SESSION['test_counter']++;
} else {
$_SESSION['test_counter'] = 1;
}
echo $_SESSION['test_counter'];
它应该首先显示 1,然后在刷新时递增整数。
推荐阅读
- android - 被拒绝后如何重新发布android应用程序?
- ansible - 通过生成的名称设置 ansible 事实
- c# - 一次使用多个键输入会在 Unity C# 中产生意外行为
- unity3d - Unity 场景和游戏选项卡被拉伸,碰撞器与视觉网格不同步
- jquery - 如何避免在使用 DataTable 制作的 pdf 中分隔表格行
- linux - 为什么受密码保护的根账户是 Amazon EC2 中的安全问题?
- python - 根据列条件替换列表
- java - 为什么这个 java 代码不运行类并打印值?我尝试了很多但无法找到出路
- java - 从另一个 Activity 更新 TextView
- java - 如何将对象(实体)存储在内存中,以便以后仅在使用 Hibernate 的工作应用程序中获取它?