-2

テキストエリアをファイルに保存する際に問題があります。POST メソッドを使用してフォームを他のページに送信した後、次のページでファイルにテキストエリアのコンテンツを含めることができません。何が問題なのかわかりません。

問題が何であるかについて何か考えはありますか?

ここに 2 つのページがあります: page1:

<!DOCTYPE HTML>
<html>
<head>
    <title>Save</title>
</head>

<body>
    <form action="page2.php" method="post">
    <span>name:</span>
    <input type="text" name="name"><br>
    <span>file extension: </span>
    <select name="ext" id="ext">            
        <option value=".txt">.txt</option>
        <option value=".doc">.doc</option>          
    </select>
    <textarea name="txt1" id="txt1" cols="15" rows="10"></textarea>
    <br>
          <input type="submit" name="submit"  id="submit" value="Save">
          </form>
          <br>
</body>

  </html>

-page2.php

$txt1 = $_POST['txt1']; //textarea
$name = $_POST['name'];
$ext = $_POST['ext'];  //choose from multiple extensions
if ($ext == '.txt')    // In case if I want to add more than extension.
{   
    $file = "'. $name$ext.'" ;
    $output = "$txt1";
    file_put_contents($file, $output);
    $text = file_get_contents($file);

    header("Content-Description: File Transfer");
    header("Content-Type: application/text/plain");
    header("Content-Disposition: attachment; filename=".basename($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
4

5 に答える 5

0

あなたのhtmlを見ないと、何が問題なのかわかりません。しかし、サーバー側で POST 変数へのアクセスに問題がある場合、おそらく単純なスペルミスであることが私の経験です。フォームの name 属性が POST 変数と一致していることを確認してください。ちょうど私の2セント。

于 2013-03-03T07:35:32.780 に答える
0

あなたのコードであなたが何を意味していたのかわからないので、書き直します

サーバーにファイルを保存するには、これらの2行が必要です

$name = basename($_POST['name']).'.txt';
file_put_contents($name, $_POST['txt1']);
于 2013-03-03T07:35:51.020 に答える
0

テキストエリアでラップ要素を使用してみてください

<textarea name="txt1" id="txt1" cols="15" rows="10"></textarea>

ラップを追加

<textarea name="txt1" id="txt1" cols="15" rows="10" wrap="virtual"></textarea>

ラップも使用できます:オフ、ハード、ソフト、フィジカル

データベースで、フィールド txt1 が適切に定義されていることを確認します (つまり、テキストを入力します)。

于 2014-09-13T20:11:33.493 に答える
0

$file = "'. $name$ext.'";

次のようにする必要があります。

$file = $name.$ext;

少なくとも、それをサーバーで動作させるために変更する必要がありました。

于 2013-03-03T07:32:51.453 に答える