我无法获取表格以保留输入的数据。如何更正此代码以保留数据?
表格:
<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-->
答案 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属性,否则,它将为空。