PHP中为啥我获取不到$_SERVER["REMOTE_USER"]的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中为啥我获取不到$_SERVER["REMOTE_USER"]的值?相关的知识,希望对你有一定的参考价值。

环境是linux、apache2,我写了一个测试文件,用var_dump($_SERVER["REMOTE_USER"])的结果却是NULL。但在同一个目录运行另外一套程序(是开源代码websvn)var_dump的结果却是正常的。为什么在同样的环境下他的代码可以获取到,我的代码就获取不到?需要在程序中启用什么特别变量吗?我看了他的代码,好像没什么特别啊。

估计是你的朋友的程序制动加载了相关模块。

这个档里的内容也可以放在上面的 httpd.conf 档中,根据你个人的喜好,如果不想改 Server 的配置,或是你没有许可权更新 Server 的 Config 档的时候可以采用上面的方式。

php 程式

// index.php
<?php
if (isset ( $_SERVER ['REMOTE_USER'] ) && ! empty ( $_SERVER ['REMOTE_USER'] ))
session_start ();
header ( 'Location: ../ess/includes/login.php?remote_user=' . urlencode ( $_SERVER ['REMOTE_USER'] ) . '&sessid=' . session_id () );
exit ();
else
header ( 'Location: ../ess/' );
exit ();
// end if
?>

我们把程式放在需要验证的根目录,并命名为 index.php,当运行此目录时,首先就会调用此程式。

这里需要说明的是,$_SERVER[‘REMOTE_USER’] 这个 Supper Global 变数只有在 Apache 在 Load mod_auth_sspi.so 之后才会有。
参考技术A 要在apache中配置这个Load mod_auth_sspi.so ,才会有 参考技术B echo '<pre>';
var_dump($_SERVER);
echo '</pre>';

PHP上传文件获取url文件上传上去了可是url获取不到

if($do=="soft")
If_rabc($action,$do); //检测权限
$salesid=$_SESSION[userid];
$filename= md5(time().rand(0,9).$_FILES["filedata"]["name"]).'.'.pathinfo($_FILES["filedata"]["name"],PATHINFO_EXTENSION);
$url= "uploadfile/".$filename;
move_uploaded_file($_FILES["filedata"]["tmp_name"],"uploadfile/".$filename);
if($_FILES["filedata"]["size"]>"12400")
$resizeimage = new resizeimage("uploadfile/".$filename, "137", "123", "1","uploadfile/"."m_".$filename);
else
$resizeimage = new resizeimage("uploadfile/".$filename, "137", "123", "1","uploadfile/"."m_".$filename);

$file = "uploadfile/".$filename;
$newfile = "news/uploadfile/".$filename;

if (!copy($file, $newfile))
echo "failed to copy $file... ";


$created_at=date("Y-m-d h:i:s");
$sql = "INSERT INTO `photo` (`salesid`,`filename`,`intro`,`created_at` ) VALUES ( '$salesid','$filename','文档图片','$created_at');";
if($db->query($sql))
$url= "uploadfile/".$filename;
exit("'err':'','msg':'url':'!".$url."'");
else
exit(error($msg));



我现在想把写入数据库的操作去掉,可是我直接去掉的话 就会文件上去了url获取不到 哪位大神帮我看一下

参考技术A 你如果不记录到数据库,总得把文件路径记到哪里吧
否则,怎么会知道文件路径在哪里呢

还是说你只想返回文件路径展示一下就罢了
那就把这一行改一下
if($db->query($sql))

改成if(1)
就行了,恒成立本回答被提问者采纳
参考技术B 那你改成ajax上传,把上传成功的文件名返回到前台的隐藏标签里 ,在一起提交到数据库

以上是关于PHP中为啥我获取不到$_SERVER["REMOTE_USER"]的值?的主要内容,如果未能解决你的问题,请参考以下文章

为啥是我的标头(“位置:$_SERVER['HTTP_REFERER']”); PHP函数不起作用?

php文件下载,为啥文件名有中文的提示找不到文件??

PHP获取路径

PHP json_decode(); 为啥没输出

php接收不到java程序post过来的数据

PHP上传文件获取url文件上传上去了可是url获取不到