防止PHP文件显示

时间:2013-08-28 16:41:13

标签: php fwrite

以下代码从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> 

3 个答案:

答案 0 :(得分:2)

使用204 No Content response发送http_response_code function

<?php
http_response_code(204);
exit;

或旧版本的PHP

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

204无内容

     

服务器已完成请求但不需要返回   entity-body,可能想要返回更新的元信息。该   响应可能包括新的或更新的元信息形式   实体标题,如果存在,应该与...相关联   要求的变体。

     

如果客户端是用户代理,它不应该更改其文档视图   从导致请求发送的那个。这个回应是   主要是为了允许在没有的情况下进行动作的输入   但是,导致更改用户代理的活动文档视图   任何新的或更新的元信息应该应用于文档   目前在用户代理的活动视图中。

     

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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);

多数人。