在PHP POST中,Textarea返回空值


Textarea returns empty value in PHP POST

我在文本区内容POST通过PHP面临的问题。我有一个表单,提交两个值一个在文本区和其他单选按钮。当提交单选按钮值被张贴,但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

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

1)始终使用<?php作为起始PHP标记。您在代码中的一个地方只使用了<?。改变这种状况。

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

3)从<textarea>中删除type="textarea"

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

您关闭php标签太早了。

Replace

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

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

在你的问题的原始版本中,在第三行,你有?>。这将关闭PHP块,并意味着下一个代码块将被视为普通HTML。所以,它永远不会被求值。删除那一行


注意,在后面的代码中,你应该使用<?php,而不是<?,来启动一个新的PHP代码块。

同时,请不要使用mysql_*;mysql_*函数已经过时,不安全。请使用MySQLiPDO。最重要的是,您对SQL注入非常开放。