使用PHP检查页面加载中是否存在表单文件
因此,我有一个简单的表单,它接受用户输入,将其传递给一个单独的PHP脚本,该脚本在不同的域上进行一些处理,如果成功,则发布一个txt文件。例如:使用PHP检查页面加载中是否存在表单文件,php,javascript,forms,file,get,Php,Javascript,Forms,File,Get,因此,我有一个简单的表单,它接受用户输入,将其传递给一个单独的PHP脚本,该脚本在不同的域上进行一些处理,如果成功,则发布一个txt文件。例如: <form method="GET" action="inventory_check.php" target="_blank"> Part Number <input type="text" name="part" /><input type="submit" value="Check Inventory" /&g
<form method="GET" action="inventory_check.php" target="_blank">
Part Number <input type="text" name="part" /><input type="submit" value="Check Inventory" />
</form>
<?php
$filename = $userInput;
if (file_exists('ftpMain/'.$filename.'')) {
$handle = fopen("ftpMain/".$filename."", "r");
$output = fread($handle, filesize('ftpMain/'.$filename.''));
fclose($handle);
$output = trim($output, '&l0O(10U');
$output = trim($output, 'E ');
echo $output;
}
else {
echo 'Failure.';
}
?>
零件号
因此,inventory_check.php显然是我们的库存查找,但是,它包含在另一台服务器(不同的域)上,因此它完成了处理并将其发布到一个文件中,我可以读取、清理和显示该文件。现在我的问题有两个,我需要从用户那里获取并保留输入以查找文件名,第二个是我需要翻页以重新加载或重新检查文件是否存在。最好的方法是什么
注意:我们使用的是一个糟糕的内部DBMS,因此从数据库中发布和检索不是一个选项,我们花了一段时间才让它读取输入并正确使用FTP,所以看起来这是唯一的路径。为什么不在服务器a中发出请求?通过使用curl,您可以在查询之后立即获得响应。首先,您需要正确获取用户的输入,并对其进行清理。我将省略
sanitize()
方法的细节,因为这不是您真正想要的
<?php
if(isset($_POST)) {
$part_number = sanitize($_POST['part']);
$filename = "ftpMain/$part_number";
if (file_exists($filename)) {
$handle = fopen($filename, "r");
$output = fread($handle, filesize($filename));
fclose($handle);
/* Do things with output */
} else {
echo 'Failure.';
}
}
?>
我希望我正确理解了您的问题-这假设表单操作指向自身。也就是说,您的带有此代码的文件也称为
inventory\u check.php
,请您进一步解释一下……对不起,我对phpin的了解不多,请不要将表单发送到另一个域,而是将其发送到同一域中的另一个php文件,并在该文件中直接向另一个域发出请求,因此,您可以在脚本完成后立即获取输出。看看这个,您可以使用它将内容发布到脚本中的另一台服务器。您可以给我一个正在发布内容(或最好使用GET)的curl函数示例吗?如果您使用GET,您可以使用file\u GET\u内容,如$content=file\u GET\u contents('htp://url?params=param');$content将从url获取输出,因此您可以将其更改为,而不是生成文件,直接打印它表单操作指向web服务器上的php脚本。该脚本中包含指向内部服务器并进行处理的重定向。因此,基本上我需要它在后台执行该操作,或在处理完成后重新检查文件是否存在。
<?php
$url = "http://yourserver.com/parts/$part_number.txt";
$response = get_headers($url, 1);
if ($response[0] == 'HTTP/1.1 200 OK') {
/* The file exists */
} else {
/* The file does not exist */
}
?>