猿问

在 php 和 mysql 中使用 Session 登录

我刚刚在 PHP 中创建了一个完整的登录名并注册了 systsem,但我的问题是我还没有使用任何会话。我是 PHP 的新手,以前从未使用过会话。想使用会话登录,如果代码中的一些错误无法转到仪表板页面,请帮助我解决此问题。


<?php

session_start();

error_reporting(0);

include('config.php');

if(isset($_POST['submit']))

{

$result = mysqli_query($dbh,"SELECT * FROM users WHERE email='" . $_POST["email"] . "' and password = '". $_POST["password"]."'");

$row  = mysqli_fetch_array($result);

if(is_array($row)) {

$_SESSION["id"] = $row[id];

$_SESSION["username"] = $row[username];

} else {

$message = "Invalid Email or Password!";

}

}

if(isset($_SESSION["id"])) {

header("Location:dashboard.php");

}

?>

想使用会话登录,如果代码中的一些错误无法转到仪表板页面,请帮助我解决此问题。


aluckdog
浏览 255回答 2
2回答

jeck猫

您在数组的索引中传递常量$row。从此更改您的代码$_SESSION["id"] = $row[id];$_SESSION["username"] = $row[username];对此$_SESSION["id"] = $row['id'];$_SESSION["username"] = $row['username'];您的代码对sql 注入是开放的。我建议您使用准备好的语句,因为您是新手,因此最好将精力花在正确的方向上

慕桂英546537

<input&nbsp;type="password"&nbsp;name="pass"&nbsp;class="form-control"&nbsp;placeholder="Password">pass应该是password。我的意思是你的前端 html 不与 php 确认。改用这个&nbsp;<input&nbsp;type="password"&nbsp;name="password"&nbsp;class="form-control"&nbsp;placeholder="Password">
随时随地看视频慕课网APP
我要回答