我一直在寻找一个解决方案,找不到一个,所以要求最好的地方是StackOverFlow。我不断收到错误未定义的索引:steamid(Line 54) 错误来自$ steamid = $ _SESSION [“steamid”];在欢迎页面上。未定义的索引:steamid
session_start();在标题中定义。 这是用户登录后被重定向到的欢迎页面。
------------------这是欢迎页面------ ------------
<?php include('../header.php'); ?>
<?php include('../footer.php'); ?>
<?php
$steamid = $_SESSION["steamid"];
require('../int/dbinit.php');
$sql = "SELECT steamid FROM users WHERE steamid='". $steamid ."'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
die("<!-- ACCOUNT ALREADY EXISTS! -->");
}
$sql = "INSERT INTO users (steamid) VALUES ('".$steamid."')";
if ($conn->query($sql) === TRUE) {
echo "<!-- ACCOUNT HAS BEEN CREATED! -->";
} else {
uhoh("Error while creating account: " . $sql . "<br>" . $conn->error);
}
ob_end_flush();
------------------这是一些登录页面------ ------------
foreach ($json_decoded->response->players as $player)
{
/*echo "
<br/>Player ID: $player->steamid
<br/>Player Name: $player->personaname
<br/>Profile URL: $player->profileurl
<br/>SmallAvatar: <img src='$player->avatar'/>
<br/>MediumAvatar: <img src='$player->avatarmedium'/>
<br/>LargeAvatar: <img src='$player->avatarfull'/>
";*/
$_SESSION["steamid"] = $player->steamid;
$_SESSION["personaname"] = $player->personaname;
$_SESSION["profileurl"] = $player->profileurl;
$_SESSION["avatar"] = $player->avatar;
$_SESSION["avatar_medium"] = $player->avatarmedium;
$_SESSION["avatar_full"] = $player->avatarfull;
/*var_dump($player);exit;*/
[PHP: “注意:未定义变量”, “注意:未定义指数” 和 “通知:未定义偏移”]的可能的复制(https://stackoverflow.com/questions/4261133/php-notice -undefined-variable-notice-undefined-index-and-notice-undef) –
你为什么要在一个循环中设置所有的会话变量?您只会从'players'数组的最后一个元素中获取值。 – Barmar
如果数组为空,则不会设置任何会话变量。这可能是未定义的原因。 – Barmar