Textarea returns PHP POST 中的空值

Textarea returns empty value in PHP POST

我通过 PHP 在文本区域内容 POST 中遇到问题。我有一个提交两个值的表单,一个在 textarea 中,另一个在单选按钮中。提交单选按钮值时已发布,但文本区域值显示为空。

为什么会这样?任何建议将不胜感激..

我的 HTML 代码片段

<form action="" method="post" id="register_form">
<h2><img class="small_image" src="images/rsz_heart.png">Describe 
Yourself<img class="small_image" src="images/heart.png"></h2>
<table id="register_table">
<tr>
<td>Describe Yourself</td>
<td>
<textarea id="description" type="textarea" name="description" rows="5" 
cols="40" class="textbox" form="register_form" required>type</textarea>
</td>
</tr>
<tr>
<td>Any disability</td>
<td>
<input type="radio" name="disability" value="none" selected="selected">None
<input type="radio" name="disability" value="physicaldisability">Physical 
Disability
</td>
</tr>
<tr>
<td colspan=2>
<input type="submit" name="submit" value="Submit" class="button" >
</td>
</tr>
</table>
</form>

我的PHP代码是

if(isset($_REQUEST["submit"]))
{  
$description = $_POST["description"];
$disability = $_POST["disability"];
$email = $_GET["email"];
$sql = "update Registration_members set Description_self='$description', 
Disability='$disability' where Email='$email'";
$res = mysql_query($sql);
if($res)
{
?>
<script>
alert("You have registered successfully!!");
</script>
<?
echo $description." is description";
echo $disability." is disability";
}
}
?>

在输出中写

 is description
none is disability

您关闭 php 标签的时间过早。

您需要一个开始 <?php 标签,否则您的代码将不会被解释为 PHP。

在你问题的原始版本中,在你的第三行,你有 ?>。这将关闭 PHP 块并意味着下一段代码将被视为普通 HTML。所以,它从未被评估过。删除该行。


请注意,稍后在您的代码中,您应该使用 <?php 而不是 <? 来开始一个新的 PHP 代码块。

另外,请don't use mysql_*; the mysql_* functions are outdated, deprecated, and insecure. Use MySQLi or PDO instead. On top of that, you are wide open to SQL injection

替换

    <textarea id="description" type="textarea" name="description" rows="5" 
cols="40" class="textbox" form="register_form" required>type</textarea>

来自

   <textarea id="description"  name="description" rows="5" 
cols="40" class="textbox" form="register_form" required></textarea>

type="textarea"是错误的,也用$_POST代替$_REQUEST["submit"]

对您的代码进行一些编辑可能会解决您的问题:

1) 始终使用 <?php 作为起始 PHP 标记。您在代码中的一处仅使用了 <?。改变那个。

2) 将 isset($_REQUEST["submit"]) 更改为 isset($_POST["submit"])

3) 从您的 <textarea>

中删除 type="textarea"

4) 打开和关闭 PHP 标签时要小心。在您的情况下,您在 if(isset($_REQUEST["submit"])) { 之后关闭了 PHP 标签,这是错误的。