我最近为教师填写的商务办公室构建了一个表单,并将数据存储到mySQL数据库中,然后可以将其下载到Excel电子表格中。一切都很好,除了现在他们想知道谁登录并填写此表格。
当用户尝试访问表单所在的网页时,会弹出一个框,并要求他们在页面加载之前输入用户名和密码。我没有设置此功能,因为我在大学工作,而且我无法访问此信息所在的数据库。
我被告知使用$ _SERVER ['REMOTE_USER'];抓住谁登录到页面然后将其存储到数据库中。这是我的代码:
//create a variable to store the career account username
$contact= $_SERVER['REMOTE_USER'];
//Insert values from the form into the database
$sql="INSERT INTO payroll (dateSubmitted, lname, fname, orgUnit, action, payArea, pernr, contact) VALUES ('$dateSubmitted','$_POST[lname]','$_POST[fname]','$_POST[orgUnit]','$_POST[action]','$_POST[payArea]','$_POST[pernr]','$contact')";
问题是,“联系”下没有任何内容存储到数据库中。我甚至试过设置$ _SERVER ['REMOTE_USER'];到一个字符串,但它没有保存它。
我错过了什么或做错了什么?任何帮助,将不胜感激!谢谢!!
答案 0 :(得分:1)
$_SERVER['REMOTE_USER']
,这就是您的问题所在。如果您打开E_NOTICE,您可能会收到警告“REMOTE_USER”未被定义为$ _SERVER的索引
其他一些选择:
$_SERVER['REMOTE_ADDR']
给出用户连接的IP(例如:34.66.21.183)
$_SERVER['REMOTE_HOST']
给出反向dns查找REMOTE_ADDR值(例如:www.google.com)
然而,这不是你想要的。您需要在$ _SESSION中保存用户名(这需要启动会话并在相关的每个页面上重新加载)或使用$ _COOKIE,这允许您在一段时间内丢弃少量信息。
如果您正在使用CMS(内容管理系统)您可能还有其他选项来获取用户变量。
答案 1 :(得分:0)
尝试$_SERVER['HTTP_AUTH_USER']