Отправка специальных символов в формате HTML - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть поле ввода (которое заполняется автоматически) с именем формата <myemail@host.com>. Я дал форму enctype="application/x-www-form-urlencoded", но когда я получаю ее в PHP, она показывает только имя. Пожалуйста, помогите мне получить электронную почту тоже.

Моя HTML-форма:

<form action="{$path_site}{$index_file}" method="POST" enctype="application/x-www-form-urlencoded">
    <table>
        <tr>
            <td>Your Name</td>
            <td><input type="text" name="sender_name" size="37" /></td>
        </tr>
        <tr>
            <td>To</td>
            <td><input type="text" name="reciever_name" size="37" id="inputString" onkeyup="lookup(this.value)" onblur="fill()" /></td>
        </tr>
    </table>
</form>

И код PHP:

echo $msg_sender_name = $info[reciever_name];

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011

Извлечение информации из комментариев, где вы говорите:

, если текст похож на «myName»", info['reciever_name'] отображает только" myName "

Я бы сказал, что ваша проблема связана с отображением результатов и не связана с формой.

Вы, вероятно, отобразите полученную строку в виде HTML, где символы "<" и ">" являются специальными .

Вместо

echo $info['reciever_name'];

вам следуетиспользуйте функцию htmlspecialchars :

echo htmlspecialchars($info['reciever_name'], ENT_QUOTES);

Это самая распространенная ошибка в PHP (и во многих других языках) .

Вам следуетэкранируйте весь текст, который вы выводите на экран , особенно когда он исходит из ненадежных источников - и каждое значение, предоставленное пользователем , не заслуживает доверия .

В противном случае вы рискуете безопасностью своих пользователей - вы можете прочитать о межсайтовых скриптах в Википедии.

0 голосов
/ 12 сентября 2011

В следующем PHP-коде

echo $msg_sender_name = $info[reciever_name];

отсутствует пара цитат.Попробуйте вместо этого:

echo $msg_sender_name = $info['reciever_name'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...