【问题标题】:How do i post text from textarea to mysql database如何将文本从 textarea 发布到 mysql 数据库
【发布时间】:2017-11-29 19:44:10
【问题描述】:

我已经尝试了下面的代码,但它只是在数据库中写了“1”而不是我写的文本。我用 input type="text" 尝试了同样的方法,它奏效了。为什么它不适用于 textarea? Ofc 我也有 if(isset) 功能.. PHP:

$connectionText = mysql_connect("localhost", "root");
if(!$connectionText){
die("Noget gik galt?". mysql_connect_error());
}
mysql_select_db("textbox", $connectionText);

$t = isset($_POST['tekst']);

$sqlScript = "INSERT INTO forms (tekst) VALUES ('$t')";

mysql_query($sqlScript, $connectionText);
mysql_close($connectionText);

?>

HTML:

<form action="post.php" method="POST">
<textarea name="tekst" autocapitalize="on" autocomplete="off" 
autocorrect="off" 
class="textBox" maxlength="140"></textarea>
<input type="submit" value="Offentligør" name="submit">
</form>

【问题讨论】:

  • $t= isset($_POST['tekst']); 这就是问题
  • php.net/manual/en/function.isset.php, Returns TRUE if var exists and has value other than NULL. FALSE otherwise.。您还可以接受 SQL 注入并使用过时的驱动程序。升级您的驱动程序(mysqli 或 pdo)并进行参数化。
  • 您正在编写的代码对 Web 上最普遍的攻击 SQL 注入是开放的。在这里阅读:stackoverflow.com/questions/60174/…

标签: php html mysql forms textarea


【解决方案1】:
$t = isset($_POST['tekst']) ? $_POST['tekst'] : '';

否则,$t 是布尔值

【讨论】:

  • isset 返回一个布尔值,不清理输入。
  • ?和 : 是短的,如果
  • @R. A: 上面的代码是 isset($var) 吗?如果返回 true,请执行此操作:如果返回 false,请执行此操作
【解决方案2】:

函数isset 仅检查给定输入是否已定义。所以它返回真或假作为输出,当你将它保存在数据库中时,你只会看到 1(如果 $t 为真)或 0(如果 $t 为假)。

如果您想将$_POST['tekst'] 的值保存在数据库中,您应该将此行$t = isset($_POST['tekst']); 编辑为以下代码之一:

  • if-else 版本:
if(isset($_POST['tekst']))
    $t = $_POST['tekst'];
else
    $t = '';
  • 如果版本短:
$t = isset($_POST['tekst']) ? $_POST['tekst'] : '';

【讨论】:

  • 谢谢。没有 isset() 的代码就像一个魅力。标记为正确!
【解决方案3】:

如果定义了$your_variable,则函数isset($your_variable)返回true,否则返回false。所以$t为TRUE,翻译成1

提示:您的代码容易受到 SQL 注入的影响(您应该在构建 SQL 语句时转义 $t) 提示2:首先验证用户输入,如果一切正常,则连接到数据库(节省资源)

【讨论】:

  • 感谢您告诉我!我很感激;)
【解决方案4】:

您只需要在&lt;form&gt; 中添加一个id 值,然后添加表单 属性到带有表单 id 值的 textarea

<form id="sample".....>
  <textarea name="aba" form="sample".....></textarea>
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    相关资源
    最近更新 更多