我刚刚在isset
的{{1}}框中遇到了empty
和php
的问题。我首先测试textarea
数组是否包含任何文本。如果是,则将该文本作为索引$_POST
存储在$_SESSION
数组中。我刚尝试用空文本区域命中提交,而不是绕过我的条件语句,执行它并在我的数据库中放入空白数据。
继承人html:
comments
这在与表单相关的脚本中执行:
<p class="center"><textarea placeholder="450 characters max!" rows="10" cols="50" name="message" maxlength="450"></textarea></p>
这是另一个脚本中函数的一部分:
if (isset($_POST['message']) || !empty($_POST['message'])) {
$_SESSION['comments'] = $_POST['message'];
}
理论上,当我if (isset($_SESSION['comments']) || !empty($_SESSION['comments'])) {
$comment = $_SESSION['comments'];
// comment_id, user_id, comments
$sql = "INSERT into comments (user_id, comments) VALUES ('{$user_id}', '{$comment}')";
$db -> query($sql);
}
留空时,$_POST
和$_SESSION
中不应有任何内容,因此以后不应该写入textarea
进行中。我的代码中有很多这样的语句,从外观来看,它的行为方式也不一样。当我检查db
时,db
字段为空,但它创建的行包含comments
和comments_id
。
答案 0 :(得分:2)
检查是否为空。这也将处理isset:
if (!empty($_POST['message'])) {
// Process
}
来自PHP的网站:如果变量不存在,则不会生成警告。这意味着empty()基本上是!isset($ var)||的简洁等价物$ var == false。
http://php.net/manual/en/function.empty.php
谢谢,
安德鲁
答案 1 :(得分:1)
如果我理解,请替换
if (isset($_POST['message']) || !empty($_POST['message'])) {
通过
if (isset($_POST['message']) && !empty($_POST['message'])) {