gpt4 book ai didi

php - var_dump 数组返回我的字符串, double ?

转载 作者:行者123 更新时间:2023-11-29 16:38:48 25 4
gpt4 key购买 nike

经过几个小时的研究,到目前为止,我自己还没有找到合适的解决方案,因此我在这里!

我目前正在开发一个学校项目,该项目使用 login.php 验证器文件来检查用户是否填写了所有输入等,并创建 session 。

require "config.inc.php";

$query = ("SELECT username, password, active FROM *DATABASE* WHERE username='".$username."' AND password='".$password."' AND active='1'") or die(mysql_error());
$result = mysqli_query($mysqli, $query);
$match = mysqli_num_rows($result);

if($match > 0){
//Directing to account page
header("Location:account.php");

//User info search
$queryID = ("SELECT id FROM *DATABASE* WHERE username='".$username."' AND password='".$password."' AND active='1'") or die(mysql_error());
$resultID = mysqli_query($mysqli, $queryID);
$id = mysqli_fetch_assoc($resultID);

$queryNAME = ("SELECT name FROM *DATABASE* WHERE username='".$username."' AND password='".$password."' AND active='1'") or die(mysql_error());
$resultNAME = mysqli_query($mysqli, $queryNAME);
$naam = mysqli_fetch_assoc($resultNAME);

//Session user info
$_SESSION['id'] = $id;
$_SESSION['naam'] = $naam;

这只是验证器的一小部分,但正如您所看到的,它会重定向到帐户页面(这很好用),并且应该为数据库中找到的名称和 ID 创建 session 。

然后,帐户页面再次接收 session 并将其转换为具有以下代码的变量;

  //SESSIONS
require 'session.php'; //CHECKS IF SESSION IS VALID, IF NOT: RETURN TO HOME

//VARIABLES
if (isset($_SESSION['naam']) && isset($_SESSION['id']) && isset($_SESSION['username'])) {
print_r($_SESSION['naam']); //Debug purposes
print_r($_SESSION['id']);
print_r($_SESSION['username']);
$id = implode($_SESSION['id']); //Convert to String
$naam = implode($_SESSION['naam']);
$username = ($_SESSION['username']); //Already a string, this was a variable used in the POST form
var_dump($naam);
} else {
echo "No sessions"; //Debug purposes
}

当我在帐户页面上回显用户名时,它会完美地显示用户名,我认为这是因为用户名始终是一个字符串开头。

然而,当我回显 naam 变量时,它显示“AdministratorAdministrator”,即使数据库中的 naam 只是管理员。

这是我的 print_r 结果:

Array ( [0] => Administrator [name] => Administrator )
Array ( [0] => 23 [id] => 23 )
admin
string(26) "AdministratorAdministrator"

关于如何确保每当我回显 naam 变量时,它只显示管理员一次,而不是两次,有什么线索吗?谢谢!

最佳答案

您只需在 session 中保存所需的数据

$_SESSION['id'] = $id['id'];
$_SESSION['naam'] = $naam['name'];

在您的情况下,您将保存函数 mysqli_fetch_assoc 的整个结果,这是一个数组,正如您从文档中看到的:

http://php.net/manual/en/mysqli-result.fetch-assoc.php

关于php - var_dump 数组返回我的字符串, double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53451425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com