Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP检查页面加载中是否存在表单文件_Php_Javascript_Forms_File_Get - Fatal编程技术网

使用PHP检查页面加载中是否存在表单文件

使用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

因此,我有一个简单的表单,它接受用户输入,将其传递给一个单独的PHP脚本,该脚本在不同的域上进行一些处理,如果成功,则发布一个txt文件。例如:

<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 */    
}

?>