验证后保留表单数据 - PHP

时间:2013-06-07 16:54:24

标签: php html5

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

表格:

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

2 个答案:

答案 0 :(得分:2)

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

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

应该是

value="<?php echo htmlentities($_POST['nyheds_overskrift']); ?>" 

答案 1 :(得分: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属性,否则,它将为空。