我想通过评论框插入大文本。我怎样才能在 PHP 中做到这一点?

Posted

技术标签:

【中文标题】我想通过评论框插入大文本。我怎样才能在 PHP 中做到这一点?【英文标题】:I want to insert the large text through comment box. How can I do this in PHP? 【发布时间】:2019-05-23 10:06:14 【问题描述】:

我试图在表单的评论框中提交很长的消息(比如超过 2000 封信)。但得到“评论尚未提交”。请检查以下代码:

我已将数据库中的注释类型更改为 TEXT、MEDIUMTEXT 和 LONGTEXT,但没有任何效果。它仍然显示“评论尚未提交”。

<?php
    if(isset($_POST['submit']))
    
        $cs_name = $_POST['name'];
        $cs_email = $_POST['email'];
        $cs_comment = $_POST['comment'];
        $cs_image = implode(',', $_FILES['image']['name']);
        $cs_images = $_FILES['image']['name'];
        $cs_image_tmp =  $_FILES['image']['tmp_name'];
        $cs_image_type = $_FILES['image']['type'];
        $cs_rating = $_POST['rating'];
        $cs_date = time();
        if(empty($cs_name) or empty($cs_email) or empty($cs_comment))
        
            $error_msg = "All (*) feilds are compulsary";
          
        else
        
            $cs_query = "INSERT INTO `comments` (`id`, `date`, `name`, 
            `username`, `comp_id`, `email`, `image`, `comment`, 
            `rating`,`status`, `type`) VALUES (NULL, '$cs_date', '$cs_name', 
            'user', '$comp_id', '$cs_email', 
            '$cs_image', '$cs_comment', '$cs_rating', 'pending', 'C')";
            if(mysqli_query($con, $cs_query))
            
                $msg = "Comment Submitted and waiting for Approval";
                for($i=0; $i<=count($cs_image_tmp)-1;$i++)
                
                    move_uploaded_file($cs_image_tmp[$i], 
                        "admin/images/uploded/$cs_images[$i]");
                
                header('Location: companies.php?comp_id='.$comp_id.'');
                exit();
            
            else
            
                $error_msg = "Comment has not be submitted";
            
        
    
?>

它应该提交一个很长的评论(成功说超过2000个字母并将其存储在数据库中。

【问题讨论】:

有什么错误吗? 你好,@DeepakTyagi 首先你回显你的插入查询,然后复制你的查询并粘贴到 SQL 数据库表中并检查。 @TarangP 查看我发送短消息时没有错误。但是当我插入大文本时,else 查询被执行(即尚未提交评论)。 @SubhashPatel 您好,感谢您的评论。看到查询中没有错误,它工作正常,但是当我尝试在评论框中发送长文本时,它会执行没有提交评论的 else 部分。但对于短文本来说,两三行它工作正常。 而不是$error_msg = "Comment has not be submitted"; 尝试printf("Query failed: " . mysqli_error($link));die("Query failed: " . mysqli_error($link)); 其中一个应该输出更多信息的mysqli错误 【参考方案1】:

是的,我得到了答案。我在 move_uploded_files 的 for 循环之前添加了一个 if 条件。那是造成问题。

    if(!empty($cs_images))
        for($i=0; $i<=count($cs_image_tmp)-1;$i++)
        move_uploaded_file($cs_image_tmp[$i], "admin/images/uploded/$cs_images[$i]");
            
        

非常感谢你们的cmets。

【讨论】:

以上是关于我想通过评论框插入大文本。我怎样才能在 PHP 中做到这一点?的主要内容,如果未能解决你的问题,请参考以下文章

powerbi文本框怎么打开

如何识别用户在评论框中输入的 URL?

这些文本格式标记是啥,我怎样才能故意将它们插入另一个文件?

我怎样才能只获得在我的文本框中输入的小时数,并与在 rateperhour 中的 keyup 输入相乘,然后在我的总数中显示答案?

带逗号的TextBox变成sql

如何评论重组文本中的字符串?