PHP - 使用HTML标签提交表单

时间:2013-07-12 22:08:36

标签: php html forms tags textarea

我需要使用PHP提交表单以将其发送到CouchBase并将其存储在那里,其中包含HTML标签(<p>标签,而不是基本HTML)。我正在使用CLEditor创建HTML标记供人们输入文本字段,这样当有人在表单中放入粗体文本时,它就像这样:

<span style="font-size: large;">Highlights of what your hotel has to offer.</span>

所以我开始使用action属性通过表单发送信息,但是如何通过包含HTML标签发送信息呢?

感谢您的帮助!

更新:

想象一下我只是做一个cURL请求并调用该字段。但是,如何调用该字段中的信息来提取原始html?

PHP:

<?php 
session_start();
    $curl = curl_init();
    $url =  $_SESSION['extranetRequest'] . '?action=sendDesc&guid=' . $_SESSION['guid'] . '&username=' . $_SESSION['u_name'];
        $curl = curl_init(); 
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_POSTFIELDS,     $_POST[''] ); 
        curl_setopt($curl, CURLOPT_HTTPHEADER,     array('Content-Type: text/plain')); 
        $content = curl_exec($curl);
        if (curl_errno($curl)) {
            print curl_error($curl);
        } else {
            curl_close($curl);
        }
?>

更新2:

好的,所以我对我正在做的事情有了更好的了解。我正在使用CLEditor来真正允许人们编辑他们自己的文本以及不提交哪些内容以便在其他地方查看。但现在我无法从中获取数据:

HTML:

<form action="assets/php/sendHTML.php" name="hotelDescForm" id="hotelDesc" method="POST" class="hotelDesc">
                <div class="row push-down">
                    <div class="span4">
                        <h1 style="font-size: 24px;"><span class="orange-title">hotel description</span></h1>
                            <textarea class="textarea" rows="8" style="width: 900px;" name="hotelDesc" class="hotelDesc" id="hotelDesc" value="">Text Is Here. Start working.</textarea>
                    </div>
                </div>
                <div class="row">
                    <br>
                        <button type="submit" name="submit" id="update" class="btn btn-success btn-large"><i id="update-button" class="icon-refresh"></i> Update Information</button>
                    </form>

jQuery只是调用textarea来配置带有CLEditor的文本框。

PHP:

    <?php 
session_start();
  $data['data'] = $_POST['demo'];
  $desc = json_encode($data);
    $curl = curl_init();
    $url =  $_SESSION['extranetRequest'] . '?action=sendDesc&desc='. var_dump($_POST) .'&guid=' . $_SESSION['guid'] . '&username=' . $_SESSION['u_name'];
        $curl = curl_init(); 
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_POSTFIELDS,     var_dump($_POST) ); 
        curl_setopt($curl, CURLOPT_HTTPHEADER,     array('Content-Type: text/plain')); 
        $content = curl_exec($curl);
        if (curl_errno($curl)) {
            print curl_error($curl);
            echo "<script language='javascript'>\n";
            echo "alert('Failed'); window.location.href='https://hotelmobidev.jvgames.com/profile';";
            echo "</script>\n";
        } else {
            curl_close($curl);
            echo "<script language='javascript'>\n";
            echo "alert('Worked'); window.location.href='https://hotelmobidev.jvgames.com/profile';";
            echo "</script>\n";
        }
?>

CLEditor的作用是创建一个iFrame,所以我需要一种方法来解决这个问题并发布文本框中的数据。谢谢你们!

2 个答案:

答案 0 :(得分:0)

根据PHP手册页,您可以在CURLOPT_POSTFIELDS调用中进行调用。 (http://php.net/manual/en/function.curl-setopt.php)。

  

CURLOPT_POSTFIELDS

     

要在HTTP“POST”操作中发布的完整数据。要发布文件,   使用@预先添加文件名并使用完整路径。文件类型可以是   通过跟随文件名中的类型明确指定   format'; type = mimetype'。此参数可以作为a传递   urlencoded字符串,如'para1 = val1&amp; para2 = val2&amp; ...'或作为数组   字段名称为键,字段数据为值。如果value是一个数组,   Content-Type标头将设置为multipart / form-data。截至PHP   5.2.0,如果使用@前缀将文件传递给此选项,则value必须是数组。从PHP 5.5.0开始,不推荐使用@前缀和文件   可以使用CURLFile发送。

你会接受:

$field = '<span style="font-size: large;">Highlights of what your hotel has to offer.</span>';

然后在你的CURLOPT_POSTFIELDS中:

curl_setopt($ch, CURLOPT_POSTFIELDS, $field);

你可能需要确保你的HTML被正确转义。例如&amp; =&amp;就像那样。

答案 1 :(得分:0)

好的,我明白了。我决定用CKEditor来解决这个问题。我所做的就是将数据发送到带有标签的服务器。在PHP中使用cURL语句。

PHP:

<?php 
session_start();
  $editor_data = $_POST[ 'editor1' ];
  $data['data'] = $_POST[ 'editor1' ];
    $curl = curl_init();
    $url =  $_SESSION['extranetRequest'] . '?action=sendDesc&guid=' . $_SESSION['guid'] . '&username=' . $_SESSION['u_name'];
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data );
        $content = curl_exec($curl);
        if (curl_errno($curl)) {
            print curl_error($curl);
        } else {
            curl_close($curl);

        }

?>

在HTML方面......

<form action="assets/php/sendHTML.php" name="hotelDescForm" id="hotelDesc" method="POST" class="hotelDesc">
                    <div class="row push-down">
                        <div class="span4">
                            <h1 style="font-size: 24px;"><span class="orange-title">hotel description</span></h1>
                                <textarea name="editor1" style="width: 900px;" rows="8"></textarea>
                                <script>
                                    CKEDITOR.replace('editor1', {
                                        height: 300,
                                        width: 900
                                    });
                                </script>
                        </div>
                    </div>
                    <div class="row">
                        <br>
                            <button type="submit" name="submit" id="update" class="btn btn-success btn-large"><i id="update-button" class="icon-refresh"></i> Update Information</button>
                        </form>

如果你们有任何问题,为什么这个工作让我知道!再次感谢所有帮助过的人!