1

我无法让我的表格保留输入的数据。如何更正此代码以保留数据?

表格:

<div class="nyhedsdiv">

<form name="nyhedsform" onSubmit="return validateForm()" method="post">
  <label for="nyheds_overskrift">Overskrift</label>
    <input id="nyheds_overskrift" name="nyheds_overskrift" type="text" value="<?php echo $nyheds_overskrift; ?>" />
    <br />
<label for="nyheds_tekst">Nyhed-tekst</label>
  <textarea id="nyheds_tekst" name="nyheds_tekst" value="<?php echo $nyheds_tekst; ?>"></textarea>
<br />
<label for="nyheds_forfatter">Forfatter</label>
<input id="nyheds_forfatter" name="nyheds_forfatter" type="text" value="<?php echo $nyheds_forfatter; ?>" />
<br />
  <button name="opret_nyhed" type="submit">Opret nyhed</button>
</form>

PHP 验证脚本:

<div id="fejlbesked"> 

<?php

  if (isset($_POST['opret_nyhed']))
     {
//mysql_real_escape_string tjekker koden for symboler og sætter backslash ind foran, hvis den finder nogen.
$nyheds_overskrift = mysql_real_escape_string($_POST['nyheds_overskrift']);
$nyheds_tekst = mysql_real_escape_string($_POST['nyheds_tekst']);
$nyheds_forfatter = mysql_real_escape_string($_POST['nyheds_forfatter']);
$fejlbesked = '';

    if(empty($nyheds_overskrift))
      {
$fejlbesked .= '<span class="red">Du skal skrive en overskrift!</span><br />';
}

if(empty($nyheds_tekst))
   {
$fejlbesked .= '<span class="red">Du skal skrive nyheden!</span><br />';
}

  if(empty($nyheds_forfatter))
    {
$fejlbesked .= '<span class="red">Du skal skrive navnet på nyhedens forfatter!</span><br />';
}

  if(empty($fejlbesked))
    {
//Sætter nyheden ind i mysql databasens tabelrækker, der passer til navnene, som er defineret for variablerne.

$query_ind = "INSERT INTO nyheder VALUES ('', '$nyheds_overskrift', '$nyheds_tekst', '$nyheds_forfatter', NOW())";//mysql_real_escape_string tjekker koden for symboler og sætter backslash ind foran, hvis den finder nogen.
mysql_query($query_ind) or die (mysql_error());
echo "Nyheden er oprettet";

   }

else
   {
  echo $fejlbesked;
   }
}

?>

</div><!--fejlbesked-->

   </div><!--nyhedsdiv-->
4

2 回答 2

2

这是因为您使用的是此处未定义的变量,只需将要$_POST获取的每个变量更改为具有范围的数组即可。例如

value="<?php echo $nyheds_overskrift; ?>"

应该

value="<?php echo htmlentities($_POST['nyheds_overskrift']); ?>" 
于 2013-06-07T16:58:24.407 回答
1
<?php
echo '
<form method="post" action="index.php">
    <label>Name:</label>
    <input type="text" name="Name" value="'.(isset($_POST['Name']) ? $_POST['Name'] : '').'" />
</form>';
?>

这样,如果 $_POST['name'] 存在,则 value 属性将被填充,如果不存在,它将为空。

于 2013-06-07T16:58:13.683 回答