0

以下代码从 HTML 页面接收字符串并将字符串写入文本文件。但是,这样做会在我的浏览器中打开一个页面,其中包含 php 文件的地址。

我怎样才能保留我的 html 页面并防止显示其他页面。

<?php
    $name = $_POST['txtFile'];
    $tbx = $_POST['tbx'];
    $chk = $_POST['chk'];
    $txa = $_POST['txa'];

    $file_handle = fopen($name, "w");

    fwrite($file_handle, $tbx . $chk. $txa);
    fclose($file_handle);
?>

发布到此页面的 HTML 表单是:

<form action="troncon.ca/Test/Test1.php"; method="POST" enctype="multipart/form-data" id="dataUpload">
  <input type="hidden" name="txtFile" value="">
  <input type="hidden" name="tbx" value="">
  <input type="hidden" name="chk" value="">
  <input type="hidden" name="txa" value="">
</form> 
4

3 回答 3

2

使用http_response_code 函数发送204 No Content 响应

<?php
http_response_code(204);
exit;

或在旧版本的 PHP 中

<?php
header('HTTP/1.1 204 No Content', true, 204);
exit;

204 无内容

服务器已完成请求,但不需要返回实体主体,并且可能希望返回更新的元信息。响应可能包括实体头形式的新的或更新的元信息,如果存在,应该与请求的变体相关联。

如果客户端是用户代理,它不应该改变导致请求被发送的文档视图。这个响应主要是为了允许输入动作发生而不导致用户代理的活动文档视图发生变化,尽管任何新的或更新的元信息应该应用于当前在用户代理的活动视图中的文档。

204 响应不能包含消息体,因此总是由头字段之后的第一个空行终止。

于 2013-08-28T16:43:30.690 回答
0

您需要使用 AJAX 请求在后台提交数据。如果您的表单直接提交到此脚本,则浏览器的地址将更改为脚本的地址。

另一方面,不要使用这个脚本。您直接允许用户指定文件名(包括路径数据)及其内容。恶意用户可以使用此代码完全颠覆并接管您的服务器。这是一个可怕的安全漏洞。

于 2013-08-28T16:43:18.417 回答
0

只是不要在文件末尾关闭 php tah - 解释器会理解这个文件不应该有任何输出:

<?php
$name = $_POST['txtFile'];
$tbx = $_POST['tbx'];
$chk = $_POST['chk'];
$txa = $_POST['txa'];

$file_handle = fopen($name, "w");

fwrite($file_handle, $tbx . $chk. $txa);
fclose($file_handle);

就这样。

于 2013-08-28T16:46:08.227 回答