Php 使用会话变量更新数据库表-如何?
我正试图为我的工作场所整合一个基本的协调应用程序,我已经为每个员工建立了独特的登录。该应用程序的一部分是有一个显示(使用Ajax保持最新),显示谁可以或不可以进行下一次案例加载。简而言之;我可以使用固定值轻松地更新数据库,但我希望更新脚本是动态的,因为它将更新正确的用户状态 这是update.php脚本的片段Php 使用会话变量更新数据库表-如何?,php,session,mysqli,Php,Session,Mysqli,我正试图为我的工作场所整合一个基本的协调应用程序,我已经为每个员工建立了独特的登录。该应用程序的一部分是有一个显示(使用Ajax保持最新),显示谁可以或不可以进行下一次案例加载。简而言之;我可以使用固定值轻松地更新数据库,但我希望更新脚本是动态的,因为它将更新正确的用户状态 这是update.php脚本的片段 <?php require_once("data/connect.php"); $user_name = $_SESSION['user_name'];
<?php
require_once("data/connect.php");
$user_name = $_SESSION['user_name'];
mysqli_query($con,"UPDATE users SET status = 'AVAILABLE' WHERE user_name='$user_name'");
mysqli_close( $con );
exit;
?>
更多信息;
如果我以其他方式使用$\u SESSION veriables,它可以正常工作。Ie
<?php
require_once("data/connect.php");
echo $_SESSION['user_name'];
?>
这可以很好地填充各种用户名或设置为从会话回显的任何内容,但当我尝试将其用作写入数据库/表的变量时,它就会崩溃。即使在将“session_start()”放在开始位置之后
进一步更新
我试着在主页上运行脚本,加载时它使用session变量运行脚本!但在作为被调用文件运行时仍然不会。不确定我做错了什么。在使用会话阵列之前需要启动会话
<?php
require_once("data/connect.php");
//you missed this
@session_start();
$user_name = $_SESSION['user_name'];
//validate the user name
if(!empty($user_name))
{
mysqli_query($con,"UPDATE users SET status='AVAILABLE'
WHERE user_name='$user_name'");
mysqli_close($con);
}else{
echo "user name is empty";
//check your session is proper or not
print_r($_SESSION);
}
exit;
在任何会话信息请求之前,您需要告诉PHP您想要使用会话功能:在require
行之后,但在$user\u name=$\u session['user\u name'之前代码>行,输入session_start()代码>问题似乎与我发布的php脚本的会话结转有关,该脚本由我的主页调用。我已将其合并到主页中,并在登录和注销时执行 在使用会话值之前是否已检查。。会话_start()应该在我上面编辑过的显示更改的地方。我已经添加了session_start()-并用其中建议的调试行重新运行了php脚本。回来了;NULL字符串(0)”,并且它没有执行更新。哇,谢谢大家,没想到会这么快得到帮助!不管怎样,我修复了session_start()的缺失-我得到了这个;空字符串(0)”,我修复了会话启动()的缺失,并得到了它;NULL NULL字符串(0)”“这很有趣,它返回的用户名是emptyArray(),但$\u会话['user\u name']的其他用法也会填充数据。我准确地复制了上面的代码,这就是返回的代码。有什么想法吗?
<?php
require_once("data/connect.php");
echo $_SESSION['user_name'];
?>
<?php
require_once("data/connect.php");
//you missed this
@session_start();
$user_name = $_SESSION['user_name'];
//validate the user name
if(!empty($user_name))
{
mysqli_query($con,"UPDATE users SET status='AVAILABLE'
WHERE user_name='$user_name'");
mysqli_close($con);
}else{
echo "user name is empty";
//check your session is proper or not
print_r($_SESSION);
}
exit;