我正在编写一个简单的订单系统,其中使用fopen
函数将多个数字(填写在表单中)写入另一个.php文件(也可能是.html)。这样可以正常工作,但在写入文件后,我希望浏览器实际打开该文件,最好是在 new 浏览器窗口中。这样我的客户就可以使用它来打印,用作发票等。
现在我仍然是一个基于php的新手,并且没有使用fopen
的经验。但是在我寻找教程等的地方,据说fopen
打开(或写当然)一个文件,但它并没有我所经历的那样。它似乎只允许访问指定的文件进行写入和读取,而不是实际显示新写入的页面。
为避免混淆:我不想在SO状态下打开像其他问题一样的链接。
我的代码:
<form action="" method="post">
<input type="text" id="amountTuna" name="numberTuna" value="0"/>
<input type="text" id="amountCheese" name="numberCheese" value="0"/>
<input name="send" id="send" type="submit" value="Post order" />
</form>
<?php
if (array_key_exists('send', $_POST)) {
$order = "order.php";
$fh = fopen($order, 'w') or die("can't open file");//file handler
fwrite($fh, "Tuna sandwiches: " . stripslashes($_POST['numberTuna']));
fwrite($fh, "Cheese sandwiches: " . stripslashes($_POST['numberCheese']));
$fh = fopen($factuur, 'r');
$fileip = fread($fh, filesize($factuur));
fclose($fh);
}
?>
尝试fopen
,'w'
,'r'
等不同的'r+'
参数似乎没有任何区别。删除fclose($fh)
似乎没有任何区别。
答案 0 :(得分:5)
使用JS脚本打开新窗口。例如,在fclose($fh)
之后:
echo "<script>window.open($order, '_blank'); window.focus();</script>";
答案 1 :(得分:2)
将内容存储在数据库中可能会容易得多。
也就是说,使用fopen是打开文件本身,在新的浏览器窗口中打开写入的文件需要一些客户端脚本(即Javascript)来加载新创建的文件。
Google Javascript window.open()。
汤姆
答案 2 :(得分:1)
由于您只想写一个可打印的页面..您是否尝试过file_put_contents
示例
if (isset($_POST['send'])) {
$file = "test.html";
$data = "Tuna sandwiches: " . stripslashes($_POST['numberTuna']) . "<br>";
$data .= "Cheese sandwiches: " . stripslashes($_POST['numberCheese']) . "<br>";
touch($file);
file_put_contents($file, $data);
}