【发布时间】:2021-04-25 17:25:30
【问题描述】:
我在一个项目上工作,我面临着边缘/chrome 和 firefox 之间的奇怪行为。我正在尝试使用 file_[ip address]-[username].txt 之类的文件名保存文件。
通过ajax从html页面发送数据..
...
<form id="frmChat" action="#">
<table>
<tr>
<td>User:</td>
<td>
<input class="input-data" type="text" id="txtUser" name="user" size="20" value="" />
</td>
<td rowspan="2">
<input class="input-data-submit" type="submit" name="send" value="Send Value" />
</td>
</tr>
<tr>
<td>Message:</td>
<td>
<input type="text" name="message" id="txtMessage" size="20" />
</td>
</tr>
</table>
</form>
...
var data = $(this).serialize();
$.ajax({
url: 'xxx.php',
dataType: 'text',
data: data,
type: 'post',
...
}
});
...
我将数据保存到我的 php 文件中,如下所示:
...
$postVars = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
extract($postVars); //contains $user, $message and some more fields
...
然后我尝试像这样保存文件
...
$userip = $_SERVER['REMOTE_ADDR']."-".$user;
$msg = $userip."-".$message;
$fp=fsockopen($host,$port,$errstr,$errno,300)
fputs($fp,$msg);
fclose($fp);
...
到目前为止一切正常。但是,当我从 edge/chrome 打开页面时,我得到 $user 和 $_SERVER['REMOTE_ADDR'] 的“null”,当我从 firefox 打开页面时,我得到 $user 和 $_SERVER[ 'REMOTE_ADDR'] 正确。
所以在 edge/chrome 上创建的保存文件看起来像:file_-.txt
从firefox来看是这样的:file_127.0.0.0-test.txt
我在这里错过了什么?
【问题讨论】:
-
如何将数据发送到服务器?表单?不确定浏览器的选择如何影响 remote_addr 值,这没有多大意义
-
感谢您的回复.. 我正在通过 ajax 从 html 文件发送
-
它是通过
http://还是通过file://加载的HTML 文件?并请出示相关代码,以防万一。 -
我正在我的本地主机 wamp 服务器上对其进行测试
-
好的。请同时显示
data来自的表单的HTML。
标签: php google-chrome sockets firefox fputs