stripslashes() удаляет мой src после отправки iframe

У меня есть эта форма:

<form action="my_parse_file.php" name="myform" id="myform" method="post">
    <input placeholder="Entry Title" style="height: 25px; text-align: center; font-size: 12px; background-color: #151515; color: #B4B4B4; border: 1px solid #303030;"
        name="title" id="title" type="text" size="80" maxlength="80" />
    <br />
    <p>
        Entry Body:<br />
        <div id="wysiwyg_cp" style="padding: 8px; width: 700px; margin: 0px auto;">
            <input class="BTN2" type="button" onclick="iBold()" value="B" />
            <input class="BTN2" type="button" onclick="iUnderline()" value="U" />
            <input class="BTN2" type="button" onclick="iItalic()" value="I" />
            <input class="BTN2" type="button" onclick="iFontSize()" value="Text Size" />
            <input class="BTN2" type="button" onclick="iForeColor()" value="Text Color" />
            <input class="BTN2" type="button" onclick="iHorizontalRule()" value="HR" />
            <input class="BTN2" type="button" onclick="iUnorderedList()" value="UL" />
            <input class="BTN2" type="button" onclick="iOrderedList()" value="OL" />
            <input class="BTN2" type="button" onclick="iLink()" value="Link" />
            <input class="BTN2" type="button" onclick="iUnLink()" value="UnLink" />
            <input class="BTN2" type="button" onclick="iImage()" value="Image" />
            <input class="BTN2" type="button" onclick="iVideo()" value="Embed Video" />
        </div>
        <!-- Hide (but keep) your normal textarea and place it in the iFrame replacement for it -->
        <textarea style="display: none;" name="myTextArea" id="myTextArea" cols="100" rows="14"></textarea>
        <iframe onload="this.contentWindow.focus()" name="richTextField" id="richTextField" style="border: 1px solid #303030; background-color: #151515; width: 700px; height: 300px;"></iframe>
        <!-- End replacing your normal textarea -->
    </p>
    <br />
    <br />
    <input name="myBtn" type="button" value="Submit Data" onclick="javascript: submit_form();" />
</form>

Это функция iVideo():

function iVideo(){
    var vidSrc = prompt('Enter video embed code:','');
    var iframe = document.getElementById('richTextField').contentDocument;
    iframe.writeln("<br/>"+vidSrc);
}

Функция submit_form():

function submit_form(){
    var theForm = document.getElementById("myform");
    theForm.elements["myTextArea"].value =  window.frames['richTextField'].document.body.innerHTML;
    theForm.submit();
}

И это my_parse_file.php:

<?php
    echo '<h2>You posted:</h2><hr/>'.$_POST['title'].'<hr/>'.stripslashes($_POST['myTextArea']);
?>

Я скажу, скажем, Vimeo, возьму код для вставки видео (который также является iframe) и вставлю его в окно ввода подсказки, которое появляется, когда я нажимаю кнопку "Вставить видео". Видео появляется в моем iframe на моей странице index.php (где у меня есть iframe "richTextField") в результате выполнения моей функции iVideo(), я могу воспроизвести ее (до сих пор проблем не возникало). Затем я нажимаю кнопку отправки, и содержимое моего iframe появляется в "my_parse_file.php", НО без моего встроенного iframe из Vimeo. Я посмотрел на исходный код "my_parse_file.php" и увидел, что код iframe видео все еще там, у него есть все атрибуты, но атрибут src пуст (src=""). И это из-за функции stripslashes(), которая должна удалять обратную косую черту (из того, что я знаю), возникшую после отправки формы, но похоже, что по какой-то причине это удаляет ссылку из моего атрибута src.

Я попытался удалить функцию stripslashes() следующим образом:

echo '<h2>You posted:</h2><hr/>'.$_POST['title'].'<hr/>'.$_POST['myTextArea'];

Но тогда атрибут src выглядит так:

src="\"//player.vimeo.com/video/15077261\""

И этот тоже не очень хорош.

Что я могу сделать, чтобы получить "чистый" SRC?

Оригинальный источник:

//player.vimeo.com/video/15077261

Желаемый результат:

<iframe src="//player.vimeo.com/video/15077261" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>

1 ответ

Я понял. Казалось, что \"- это дополнительный символ, который нужно удалить. Поэтому я заменил его ничем, используя str_replace();

echo '<h2>You posted:</h2><hr/>'.$_POST['title'].'<hr/>'.str_replace('\"','',$_POST['myTextArea']);
Другие вопросы по тегам