5

関数を使用して、いくつかの数字 (フォーム内に入力) が別の .php ファイル (.html の場合もあります) に書き込まれる単純な注文システムを作成していfopenます。これは正常に動作しますが、ファイルに書き込んだ後、できれば新しいブラウザー ウィンドウで、ブラウザーが実際にその書き込まれたファイルを開くようにしたいと考えています。このようにして、クライアントはこれを使用して印刷したり、請求書として使用したりできます。

今、私はまだ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)

4

3 に答える 3

5

JSスクリプトを使用して新しいウィンドウを開きます。たとえば、直後fclose($fh)

echo "<script>window.open($order, '_blank'); window.focus();</script>";
于 2012-09-12T14:51:44.187 に答える
2

データベースに物を保存する方がはるかに簡単でしょう。

とはいえ、fopenを使用するとファイル自体が開かれ、書き込まれたファイルを新しいブラウザウィンドウで開くには、新しく作成されたファイルをロードするためのクライアント側のスクリプト(Javascriptなど)が必要になります。

Google Javascript window.open()。

トム

于 2012-09-12T14:53:54.720 に答える
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);
}
于 2012-09-12T14:58:55.393 に答える