0

だから私はphpページで変数を適切に定義しており、インクルードを使用してHTMLページで使用しています。現在、Var を変更できるページを作成しています (これは長いテキストであり、実際には複数あるため、それらを変更するには、そのためのレイアウトを備えたページがあると便利です)、テキスト ボックスを使用しています。そして、このような送信ボタン:

<?php
$titre= 'Bienvenido a PARIS EXPERT LIMOUSINE !  ' ;
?>

<form method="post">
 Titre: <input name="titre" type="text" id="titre" value="<?php echo htmlspecialchars($titre); ?>" size="50" maxlength="50">
<input type="submit" name="submit">
 </form>

<?php
if (isset($_POST['submit']))
{
$titre = $_POST['titre'];
echo($titre);
}
?>

問題は、エコーで新しいテキストが表示されることですが、更新すると古いテキストが表示されます...どうすればこれを行うことができますか?

4

4 に答える 4

1

編集: 追加のフィールドとデータ ハンドラーを追加しました。元の回答の下にある追加のコードを参照してください。


コンテンツをファイルに書き込むために思いついたコードを次に示します。

注: コンテンツを上下に並べてファイルに追加するには、aまたはa+スイッチを使用します。

コンテンツを作成してファイルに書き込み、以前のコンテンツを上書きするには、wスイッチを使用します。

このメソッドはfwrite()関数を使用します。

(テスト済み)

OPのコードに追加:action="write.php"

<?php

$titre= 'Bienvenido a PARIS EXPERT LIMOUSINE !  ' ;
?>

<form method="post" action="write.php">
Titre: <input name="titre" type="text" id="titre" value="<?php if(isset($_POST['titre'])){echo htmlspecialchars($_POST['titre']); } 
else echo htmlspecialchars($titre); ?>" size="50" maxlength="50">


<input type="submit" name="submit">
 </form>

PHP ファイル ハンドラへの書き込み(write.php)

この例では、wスイッチを使用しています。

<?php
if (isset($_POST['submit']))
{
$titre = $_POST['titre'];
echo($titre);
}
?>

<?php

$filename = "output.txt"; #Must CHMOD to 666 or 644
$text = $_POST['titre']; # Form must use POST. if it uses GET, use the line below:
// $text = $_GET['titre']; #POST is the preferred method

$fp = fopen ($filename, "w" ); # w = write to the file only, create file if it does not exist, discard existing contents
if ($fp) {
    fwrite ($fp, $text. "\n");
    fclose ($fp);
    echo ("File written");
}
else {
    echo ("File was not written");
}

?>


編集: 追加のフィールドとデータ ハンドラーを追加しました。

追加のフィールドを追加することができ、ファイル ハンドラーで同じ方法に従う必要があります。

追加フィールドを含む新しいフォーム

ファイルデータの例:test | email@example.com | 123-456-7890

<?php

$titre= 'Bienvenido a PARIS EXPERT LIMOUSINE !  ' ;
?>

<form method="post" action="write.php">
Titre: <input name="titre" type="text" id="titre" value="<?php if(isset($_POST['titre'])){echo htmlspecialchars($_POST['titre']); } 
else echo htmlspecialchars($titre); ?>" size="50" maxlength="50">

<br>
Email: <input name="email" size="50" maxlength="50">

<br>
Telephone: <input name="telephone" size="50" maxlength="50">


<input type="submit" name="submit">
 </form>

<?php
if (isset($_POST['submit']))
{
$titre = $_POST['titre'];
echo($titre);
}
?>

PHP ファイル ハンドラへの書き込み

<?php

$titre = $_POST['titre'];
$email = $_POST['email'];
$telephone = $_POST['telephone'];
$data = "$titre | $email | $telephone";

$fp = fopen("data.txt", "a"); // a-add append or w-write overwrite

if ($fp) {
    fwrite ($fp, $data. "\n");
    fclose ($fp);
    echo ("File written successfully.");
}

else{
  echo "FAILED";
}

?>
于 2013-08-05T13:59:44.050 に答える
0

フォームの送信時に新しいコンテンツを表示しているため、これは正常です。ページを更新するPOSTと、更新でデータを再度送信するように指示しない限り (ブラウザが確認を求めます)、フォーム (したがって入力フィールド) には何も表示されません。

于 2013-08-05T13:35:49.563 に答える