0

因此,我在 php 页面中定义了一个变量,并且我在使用 include 的 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

尝试这个 :

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">

如果您需要永远保持您的价值,您应该将其存储在数据库中或保存在文件中(可能是 .txt)。

[编辑]

这是 .txt 解决方案的代码(您首先在同一文件夹中创建一个 file.txt):

<?php
$file = 'file.txt';

$lines  = file("file.txt");
if (!isset($lines[0])) {$titre='Bienvenido a PARIS EXPERT LIMOUSINE !  ';}
else {$titre=$lines[0];}
?>
<form method="post">
 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
if (isset($_POST['submit']))
{
echo($_POST['titre']);
$titre = $_POST['titre']."\n".$titre;
file_put_contents($file, $titre);
}

?>

希望能帮助到你 :)

于 2013-08-05T13:32:44.690 回答
1
<?php

if(!($titre = file_get_contents("filename.txt"))){
  $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'];
  if(@file_put_contents("filename.txt", $titre))){
    echo 'Success - var stored.';
  } else { echo 'Some error.'; }
  echo($titre);
}
?>
于 2013-08-05T13:50:15.663 回答
1

编辑:添加了额外的字段和数据处理程序。请参阅原始答案下方的额外代码。


这是我想出的一些将内容写入文件的代码。

注意:要添加到文件中,内容一个接一个,请使用aa+开关。

要创建内容并将其写入文件并覆盖以前的内容,请使用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 回答