我有一个标头脚本,它运行一些用户检查等。这些检查之一是他的用户名,他的权限和剩余的答案数。
这是一个名为header.php的脚本
if(isset($_SESSION['activeUser']))
{
$activeUser=$_SESSION['activeUser'];
$activeUserName=$_SESSION['activeUserName'];
$activeUserType=$_SESSION['activeUserType'];
$activeUserId=$_SESSION['activeUserId'];
$odgovori=$_SESSION['preostaliOdgovori'];
}
if(isset($_SESSION['activeUser']))
{
echo "<div style='float: right;'>";
echo "<h3>Prijavljeni ste kao: ".$_SESSION['activeUser']."</h3>";
echo "<h3>Prava: ".$_SESSION['tipNaziv']."</h3>";
echo "<h3>Preostali odgovori: ".$odgovori."</h3>";
echo"</div>";
}
else
{
echo "<h3 style='float: right;'>Niste prijavljeni!</h3>";
}
所以我想从另一个脚本中读取preostaliOdgovori(preostaliOdgovori是表列)mojaTvrtka.php是发生这种情况的脚本
$connect = connectDB();
$query ="SELECT pitanje.pitanje_id,naslov,pitanje.tvrtka_id, tvrtka.tvrtka_id,preostaliOdgovori ,
zaposlenik.tvrtka_id,korisnik_id
FROM pitanje
INNER JOIN tvrtka ON tvrtka.tvrtka_id = pitanje.tvrtka_id
INNER JOIN zaposlenik ON zaposlenik.tvrtka_id = pitanje.tvrtka_id
WHERE korisnik_id = '$activeUserId'";
if(isset($_SESSION['activeUser']))
{
$query1="SELECT tvrtka.tvrtka_id,preostaliOdgovori,zaposlenik.tvrtka_id,korisnik_id
FROM tvrtka
INNER JOIN zaposlenik ON zaposlenik.tvrtka_id = tvrtka.tvrtka_id
WHERE korisnik_id = '$activeUserId'";
$result2=queryDB($connect,$query1);
while($row=mysqli_fetch_array($result2))
{
$odgovori=$row['preostaliOdgovori'];
}
}
$_SESSION['preostaliOdgovori']=$odgovori;
所有这些实际上都有效,但是仅当我手动加载mojaTvrtka.php时才有效。我想说的是,当用户登录时,此号码会自动打印在header.php中,但我得到的只是未定义的索引。我不确定我在做什么错。
答案 0 :(得分:0)
在您的流程中,您需要包括NotifyWaitingThreadFunction
,以便它在加载mojaTvrtka.php
并随后获得header.php
数据之前发生。您可能只需要在顶部$_SESSION
。
如果您将该文件包括在include_once('../PATH/TO/mojaTvrtka.php');
的顶部,则可能会起作用。但是您应该知道的是,如果在每个header.php
中都包含此代码,不是每个页面都运行此SQL代码吗?您应该拥有它,以便代码进行检查以确保在包含header.php
之前它不存在。
答案 1 :(得分:0)
您正在将会话存储在变量中,并尝试使用变量
在另一个页面中调用变量由于会话是全局变量,因此可以在mojaTvrtka.php中调用$ _SESSION ['activeUserId'],直接将其传递到mysqlquery中,如下所示。
$query ="SELECT pitanje.pitanje_id,naslov,pitanje.tvrtka_id, tvrtka.tvrtka_id,preostaliOdgovori ,
zaposlenik.tvrtka_id,korisnik_id
FROM pitanje
INNER JOIN tvrtka ON tvrtka.tvrtka_id = pitanje.tvrtka_id
INNER JOIN zaposlenik ON zaposlenik.tvrtka_id = pitanje.tvrtka_id
WHERE korisnik_id = $_SESSION['activeUserId']";