【问题标题】:Textarea returns empty value in PHP POSTTextarea 在 PHP POST 中返回空值
【发布时间】:2015-09-30 04:50:49
【问题描述】:

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

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

我的 HTML 代码的 sn-p

<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

【问题讨论】:

  • don't use mysql_*; mysql_* 函数已过时、deprecated 且不安全。请改用MySQLiPDO。此外,您对SQL injection 持开放态度。
  • @chintanmathukiya 不要编辑代码中的错误。这不是有效的编辑,您尝试修复的错误很可能是 OP 问题的根源。
  • 您的代码很好...我已经检查并在我的机器上创建了相同的代码,并且 textarea 的值在那里。使用 print_r($_POST);死;在 php 文件上
  • 您在保存数据或其他任何内容时遇到的问题...

标签: php html post textarea


【解决方案1】:

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

1) 始终使用&lt;?php 作为 PHP 的起始标签。您在代码中的一处仅使用了&lt;?。改变它。

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

3) 从您的 &lt;textarea&gt; 中删除 type="textarea"

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

【讨论】:

  • 进行了标签更改并尝试了所有...但仍不显示 textarea 值...显示单选按钮值但 textarea 显示空值
【解决方案2】:

你关闭 php 标签太早了。

【讨论】:

    【解决方案3】:

    替换

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

    【讨论】:

    • 是的,我已经进行了更改.. 但很抱歉,这也不起作用.. 我无法解决问题
    • @leenapatel 它在我的机器上成功运行..你能从 textarea 中删除你的 css 类并检查
    • 我已经完成了这些更改,但问题仍然相同:(
    【解决方案4】:

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

    在您的问题的原始版本中,在您的第三行,您有?&gt;。这关闭了 PHP 块,意味着下一段代码被视为纯 HTML。所以,它从来没有被评估过。删除该行。


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

    另外,请don't use mysql_*; mysql_* 函数已过时、deprecated 且不安全。请改用MySQLiPDO。最重要的是,您对SQL injection 持开放态度。

    【讨论】:

    • 是的,我已经在 php 关闭中进行了更改,但问题仍然存在。它没有发布 textarea 值。
    • 我目前在 localhost 上工作,所以我只使用 mysql 进行演示
    • @leenapatel 你确定吗?现在您已经修复了 PHP 标记问题,它应该可以工作了。此外,仅仅因为您在 localhost 上就使用已弃用的库进行开发是非常糟糕的做法。
    • @leenapatel 请注意,在您现在发布的代码中,您没有打开 &lt;?php 标记,这与过早关闭一样糟糕......
    • @leenapatel 什么标签你做了什么改变?您在问题中发布的 PHP 代码要么(1)由于我已经指出的原因而错误,要么(2)不完整,因为它没有开始标签。如果没有看到给您带来问题的实际代码,就不可能提供帮助。
    猜你喜欢
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多