PHP每次更新记录时都会添加空格

时间:2014-05-20 00:41:06

标签: php mysql

我正在从表中读取值并以可由用户更新的形式显示它们。问题是每次我进行更新时都会在表中的每个值中添加一堆空格。

以下是基本代码:

function ReadHTML($str) {
    return htmlspecialchars(stripslashes($str), ENT_QUOTES);
}

$query = "SELECT * FROM " . $table_name . " WHERE id = " . $row_id;

$result = mysqli_query ($connection, $query ) or die ("Database query failed: " . mysqli_error($connection));

$row = mysqli_fetch_assoc($result);

$q1 = ReadHTML($row['q1']);

当我在表单中显示值时,它看起来很好。但是当我更新空间被添加的值时。

当我处理更新时,它看起来像这样:

function mysqli_prep(&$connection, $value) {
    $detagged = strip_tags($value);
    $escaped = mysqli_real_escape_string($connection, $detagged);
    return $escaped;
}

$q1 = mysqli_prep($connection, $_POST['q1'])

$query = "UPDATE my_form SET  
        q1='$q1'";

谁能看到我做错了什么?


HTML看起来像这样:

<textarea class="textarea form_textarea_field" name="comment_1" placeholder="Comments">
                <?php if($saved_form == true) {echo $q1;} ?>
            </textarea>

当我在浏览器中查看DOM时,它看起来像这样:

<textarea class="textarea form_textarea_field" name="comment_1" placeholder="Comments">
                " Test text "
            </textarea>

但我从未添加过这些引号或空格,并且它们没有出现在显示屏中。不确定这是正常还是线索是什么问题。

1 个答案:

答案 0 :(得分:3)

如果您不想添加任何空格,则应在构建html时确保textarea中没有空格。

所以改变:

<textarea class="textarea form_textarea_field" type="textarea" name="comment_1" placeholder="Comments">
            <?php if($saved_form == true) {echo $q1;} ?>
        </textarea>

为:

<textarea class="textarea form_textarea_field" type="textarea" name="comment_1" placeholder="Comments"><?php if($saved_form == true) {echo $q1;} ?></textarea>

请注意textarea的开始标记和结束标记之间的所有内容都是其内容的一部分(包括换行符,空格等)。