формы и броузеры
От: andreymp  
Дата: 15.06.06 06:38
Оценка:
поиск использовал — ничего не нашел.

есть форма типа

<form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>
<input type=text name=aaa><br>
<input type=submit>
</form>

если пользоваться IE, то он нормально втсавляет все поля формы в тело письма и все ок.
но Opera не хочет этого делать.
MyIE делает.
Mozilla не проверял еще.

С этим можно как-то бороться ?
Или только через передачу формы исполняемой на сервере странице (php, cgi) чтобы она сама это отправила ?


и еще вопрос — есть такая конструкция (относится к CMS)

<textarea>
некий текст
</textarea>

если "некий текст" содержит теги <textarea></textarea>, то оторбражается вся эта конструкция очень криво
с эти можно что-то сделать ?

доступ есть только к исправлению "некого текста".
Re: формы и броузеры
От: Neron Германия  
Дата: 15.06.06 06:45
Оценка:
Здравствуйте, andreymp, Вы писали:

A>поиск использовал — ничего не нашел.


A>есть форма типа


A><form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>

A><input type=text name=aaa><br>
A><input type=submit>
A></form>

A>если пользоваться IE, то он нормально втсавляет все поля формы в тело письма и все ок.

A>но Opera не хочет этого делать.
A>MyIE делает.
A>Mozilla не проверял еще.

A>С этим можно как-то бороться ?

A>Или только через передачу формы исполняемой на сервере странице (php, cgi) чтобы она сама это отправила ?

Лучше использовать отправку письма спомощью серверного скрипта...

A>и еще вопрос — есть такая конструкция (относится к CMS)


A><textarea>

A>некий текст
A></textarea>

A>если "некий текст" содержит теги <textarea></textarea>, то оторбражается вся эта конструкция очень криво

A>с эти можно что-то сделать ?
A>доступ есть только к исправлению "некого текста".

Символы '<' и '>' заменить на соответствующие '&lt;' и '&gt;'
Re[2]: формы и броузеры
От: andreymp  
Дата: 15.06.06 06:50
Оценка:
Здравствуйте, Neron, Вы писали:

N>Здравствуйте, andreymp, Вы писали:


A>>поиск использовал — ничего не нашел.


A>>есть форма типа


A>><form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>

A>><input type=text name=aaa><br>
A>><input type=submit>
A>></form>

A>>если пользоваться IE, то он нормально втсавляет все поля формы в тело письма и все ок.

A>>но Opera не хочет этого делать.
A>>MyIE делает.
A>>Mozilla не проверял еще.

A>>С этим можно как-то бороться ?

A>>Или только через передачу формы исполняемой на сервере странице (php, cgi) чтобы она сама это отправила ?

N>Лучше использовать отправку письма спомощью серверного скрипта...


лучше, согласен )
но в данный момент есть доступ только через CMS, для исправления текста этой формы, более глубокого доступа нет. (иначе бы давно сделал
т.е. никак через средства html или javascript эта проблема не решается ?


A>>и еще вопрос — есть такая конструкция (относится к CMS)


A>><textarea>

A>>некий текст
A>></textarea>

A>>если "некий текст" содержит теги <textarea></textarea>, то оторбражается вся эта конструкция очень криво

A>>с эти можно что-то сделать ?
A>>доступ есть только к исправлению "некого текста".

N>Символы '<' и '>' заменить на соответствующие '&lt;' и '&gt;'


спасибо ))
Re: формы и броузеры
От: anonymous Россия http://denis.ibaev.name/
Дата: 15.06.06 07:09
Оценка:
Здравствуйте, andreymp, Вы писали:

A>С этим можно как-то бороться ?


<a href="mailto:email@host.ru?subject=Hello!&body=Have+a+nice+day.">Послать</a>
Re[2]: формы и броузеры
От: andreymp  
Дата: 15.06.06 07:12
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, andreymp, Вы писали:


A>>С этим можно как-то бороться ?


A>
<a href="mailto:email@host.ru?subject=Hello!&body=Have+a+nice+day.">Послать</a>


а данные формы как в тело письма попадут ?
или это через Javascript ? тогда расскажите чайнику ))
Re[3]: формы и броузеры
От: anonymous Россия http://denis.ibaev.name/
Дата: 15.06.06 09:14
Оценка:
Здравствуйте, andreymp, Вы писали:

A>>>С этим можно как-то бороться ?

A>>
<a href="mailto:email@host.ru?subject=Hello!&body=Have+a+nice+day.">Послать</a>

A>а данные формы как в тело письма попадут ?
A>или это через Javascript ? тогда расскажите чайнику ))

Да, JavaScript. Ходим по форме, собираем данные из полей и добавляем в конец ссылки.
Re: формы и броузеры
От: kan_izh Великобритания  
Дата: 15.06.06 10:09
Оценка:
andreymp wrote:

> <form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>


А если method="get"? И значения аттрибутов лучше в кавычки заключать.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: формы и броузеры
От: Аноним  
Дата: 15.06.06 10:33
Оценка:
Здравствуйте, kan_izh, Вы писали:

_>andreymp wrote:


>> <form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>


_>А если method="get"? И значения аттрибутов лучше в кавычки заключать.


method="get" результата не дает, кавычки тоже.
да и CMS этот съедает все кавычки при обработке введенных данных.
а сам CMS исправить не могу, нет доступа.
Re[4]: формы и броузеры
От: Аноним  
Дата: 15.06.06 10:35
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, andreymp, Вы писали:


A>>>>С этим можно как-то бороться ?

A>>>
<a href="mailto:email@host.ru?subject=Hello!&body=Have+a+nice+day.">Послать</a>

A>>а данные формы как в тело письма попадут ?
A>>или это через Javascript ? тогда расскажите чайнику ))

A>Да, JavaScript. Ходим по форме, собираем данные из полей и добавляем в конец ссылки.


а не могли бы вы, дать ссылки на исходный код такого плана ?
а то не силен я в JavaScript
Re[3]: формы и броузеры
От: Neron Германия  
Дата: 15.06.06 10:52
Оценка:
Здравствуйте, andreymp, Вы писали:

A>>>поиск использовал — ничего не нашел.


A>>>есть форма типа


A>>><form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>

A>>><input type=text name=aaa><br>
A>>><input type=submit>
A>>></form>

A>>>если пользоваться IE, то он нормально втсавляет все поля формы в тело письма и все ок.

A>>>но Opera не хочет этого делать.
A>>>MyIE делает.
A>>>Mozilla не проверял еще.

A>>>С этим можно как-то бороться ?

A>>>Или только через передачу формы исполняемой на сервере странице (php, cgi) чтобы она сама это отправила ?

N>>Лучше использовать отправку письма спомощью серверного скрипта...


A>лучше, согласен )

A>но в данный момент есть доступ только через CMS, для исправления текста этой формы, более глубокого доступа нет. (иначе бы давно сделал
A>т.е. никак через средства html или javascript эта проблема не решается ?

Может тут что-то подходящее найдеш?

http://script.woweb.ru/index.htm/c/69
Re[4]: формы и броузеры
От: andreymp  
Дата: 15.06.06 11:07
Оценка:
Здравствуйте, Neron, Вы писали:

N>Здравствуйте, andreymp, Вы писали:


A>>>>поиск использовал — ничего не нашел.


A>>>>есть форма типа


A>>>><form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>

A>>>><input type=text name=aaa><br>
A>>>><input type=submit>
A>>>></form>

A>>>>если пользоваться IE, то он нормально втсавляет все поля формы в тело письма и все ок.

A>>>>но Opera не хочет этого делать.
A>>>>MyIE делает.
A>>>>Mozilla не проверял еще.

A>>>>С этим можно как-то бороться ?

A>>>>Или только через передачу формы исполняемой на сервере странице (php, cgi) чтобы она сама это отправила ?

N>>>Лучше использовать отправку письма спомощью серверного скрипта...


A>>лучше, согласен )

A>>но в данный момент есть доступ только через CMS, для исправления текста этой формы, более глубокого доступа нет. (иначе бы давно сделал
A>>т.е. никак через средства html или javascript эта проблема не решается ?

N>Может тут что-то подходящее найдеш?


N>http://script.woweb.ru/index.htm/c/69


Спасибо !
Re[3]: формы и броузеры
От: kan_izh Великобритания  
Дата: 15.06.06 11:14
Оценка:
Аноним wrote:

>> > <form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>


> method="get" результата не дает, кавычки тоже.

> да и CMS этот съедает все кавычки при обработке введенных данных.
> а сам CMS исправить не могу, нет доступа.
Кстати, кто такой text/plain??? Тут же не content-type, а encoding type, Я знаю только два — url-form-encoded и
multipart-form-data
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: формы и броузеры
От: andreymp  
Дата: 15.06.06 12:09
Оценка:
Здравствуйте, kan_izh, Вы писали:

_>Аноним wrote:


>>> > <form action=mailto:andrey@assol.mipt.ru method=post encType=text/plain>


>> method="get" результата не дает, кавычки тоже.

>> да и CMS этот съедает все кавычки при обработке введенных данных.
>> а сам CMS исправить не могу, нет доступа.
_>Кстати, кто такой text/plain??? Тут же не content-type, а encoding type, Я знаю только два — url-form-encoded и
_>multipart-form-data

в описани вот что —
<form enctype="MIME-тип">...</form>


но text/plain на IE действует магическим образом )))) он передает все в теле письма ))
в отличие от двух стандартных значений, тогда все идет в аттаче )

но на оперу ничто не влияет, ни стандартные значения, ни другие )
Re[5]: формы и броузеры
От: Neron Германия  
Дата: 15.06.06 14:37
Оценка:
Здравствуйте, andreymp, Вы писали:

N>>Может тут что-то подходящее найдеш?


N>>http://script.woweb.ru/index.htm/c/69


A>Спасибо !


Пожалуйста
Re[5]: формы и броузеры
От: kan_izh Великобритания  
Дата: 15.06.06 15:05
Оценка:
andreymp wrote:

> _>Кстати, кто такой text/plain??? Тут же не content-type, а encoding

> type, Я знаю только два — url-form-encoded и
> _>multipart-form-data
>
> в описани вот что —
> <form enctype="MIME-тип">...</form>
Не знаю, вот описание: http://www.w3.org/TR/1998/REC-html40-19980424/interact/forms.html#adef-enctype
Остальное от лукавого.

> но text/plain на IE действует магическим образом )))) он передает все в

> теле письма ))
Есть чего-то такое http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/encoding.asp
Но это выдумка MS, не стандарт.

> в отличие от двух стандартных значений, тогда все идет в аттаче )

В смысле? Сабж в аттаче? Это как?

> но на оперу ничто не влияет, ни стандартные значения, ни другие )
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[6]: формы и броузеры
От: Аноним  
Дата: 15.06.06 15:22
Оценка:
Здравствуйте, kan_izh, Вы писали:

_>andreymp wrote:


>> _>Кстати, кто такой text/plain??? Тут же не content-type, а encoding

>> type, Я знаю только два — url-form-encoded и
>> _>multipart-form-data
>>
>> в описани вот что —
>> <form enctype="MIME-тип">...</form>
_>Не знаю, вот описание: http://www.w3.org/TR/1998/REC-html40-19980424/interact/forms.html#adef-enctype
_>Остальное от лукавого.

>> но text/plain на IE действует магическим образом )))) он передает все в

>> теле письма ))
_>Есть чего-то такое http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/encoding.asp
_>Но это выдумка MS, не стандарт.

>> в отличие от двух стандартных значений, тогда все идет в аттаче )

_>В смысле? Сабж в аттаче? Это как?

просто передается все в аттаче к письму, либо в виде url-form-encoded, либо multipart.
но Опера не делает аттач, она только открывает почтового клиента и подставляет адрес, данные формы она куда-то теряет.

>> но на оперу ничто не влияет, ни стандартные значения, ни другие )
Re[6]: формы и броузеры
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.11.06 06:29
Оценка:
Здравствуйте, kan_izh, Вы писали:
_>Есть чего-то такое http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/encoding.asp
_>Но это выдумка MS, не стандарт.
Не понял. По приведенной ссылке процитирован стандарт практически 1:1, разве что упомянуто, что multipart/form-data поддерживается начиная с IE 4.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: формы и броузеры
От: kan Великобритания  
Дата: 15.11.06 11:16
Оценка:
Sinclair wrote:

> Не понял. По приведенной ссылке процитирован стандарт практически 1:1,

> разве что упомянуто, что multipart/form-data поддерживается начиная с IE 4.
Там упоминаются только 2,
а чувак хз что юзает:

_>Кстати, кто такой text/plain??? Тут же не content-type, а encoding type, Я знаю только два — url-form-encoded и
_>multipart-form-data

в описани вот что —
<form enctype="MIME-тип">...</form>


но text/plain на IE действует магическим образом )))) он передает все в теле письма ))
в отличие от двух стандартных значений, тогда все идет в аттаче )


Что-то какое-то старинное пиьсмо из небытыя извлекли...
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: формы и броузеры
От: Arioch  
Дата: 15.11.06 15:23
Оценка:
A>
<a href="mailto:email@host.ru?subject=Hello!&body=Have+a+nice+day.">Послать</a>


Я бы не стал, в той же Опере body будет выброшено нафиг.

Что-то подобной было при описании JsHTTPRequest на dklab.ru — но там, насколько помню, нужен доступ чтобы на сервер скрипт обработки форм поставить
Re: формы и броузеры
От: kost-BebiX Украина http://fedorastones.blogspot.com
Дата: 16.11.06 21:27
Оценка:
Здравствуйте, andreymp, Вы писали:

A>[skip]


Вот вам, короче, плагин для смарти.

<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */


/**
 * Smarty {mailto} function plugin
 *
 * Type:     function<br>
 * Name:     mailto<br>
 * Date:     May 21, 2002
 * Purpose:  automate mailto address link creation, and optionally
 *           encode them.<br>
 * Input:<br>
 *         - address = e-mail address
 *         - text = (optional) text to display, default is address
 *         - encode = (optional) can be one of:
 *                * none : no encoding (default)
 *                * javascript : encode with javascript
 *                * javascript_charcode : encode with javascript charcode
 *                * hex : encode with hexidecimal (no javascript)
 *         - cc = (optional) address(es) to carbon copy
 *         - bcc = (optional) address(es) to blind carbon copy
 *         - subject = (optional) e-mail subject
 *         - newsgroups = (optional) newsgroup(s) to post to
 *         - followupto = (optional) address(es) to follow up to
 *         - extra = (optional) extra tags for the href link
 *
 * Examples:
 * <pre>
 * {mailto address="me@domain.com"}
 * {mailto address="me@domain.com" encode="javascript"}
 * {mailto address="me@domain.com" encode="hex"}
 * {mailto address="me@domain.com" subject="Hello to you!"}
 * {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
 * {mailto address="me@domain.com" extra='class="mailto"'}
 * </pre>
 * @link http://smarty.php.net/manual/en/language.function.mailto.php {mailto}
 *          (Smarty online manual)
 * @version  1.2
 * @author   Monte Ohrt <monte at ohrt dot com>
 * @author   credits to Jason Sweat (added cc, bcc and subject functionality)
 * @param    array
 * @param    Smarty
 * @return   string
 */
function smarty_function_mailto($params, &$smarty)
{
    $extra = '';

    if (empty($params['address'])) {
        $smarty->trigger_error("mailto: missing 'address' parameter");
        return;
    } else {
        $address = $params['address'];
    }

    $text = $address;

    // netscape and mozilla do not decode %40 (@) in BCC field (bug?)
    // so, don't encode it.
    $mail_parms = array();
    foreach ($params as $var=>$value) {
        switch ($var) {
            case 'cc':
            case 'bcc':
            case 'followupto':
                if (!empty($value))
                    $mail_parms[] = $var.'='.str_replace('%40','@',rawurlencode($value));
                break;
                
            case 'subject':
            case 'newsgroups':
                $mail_parms[] = $var.'='.rawurlencode($value);
                break;

            case 'extra':
            case 'text':
                $$var = $value;

            default:
        }
    }

    $mail_parm_vals = '';
    for ($i=0; $i<count($mail_parms); $i++) {
        $mail_parm_vals .= (0==$i) ? '?' : '&';
        $mail_parm_vals .= $mail_parms[$i];
    }
    $address .= $mail_parm_vals;

    $encode = (empty($params['encode'])) ? 'none' : $params['encode'];
    if (!in_array($encode,array('javascript','javascript_charcode','hex','none')) ) {
        $smarty->trigger_error("mailto: 'encode' parameter must be none, javascript or hex");
        return;
    }

    if ($encode == 'javascript' ) {
        $string = 'document.write(\'<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>\');';

        $js_encode = '';
        for ($x=0; $x < strlen($string); $x++) {
            $js_encode .= '%' . bin2hex($string[$x]);
        }

        return '<script type="text/javascript">eval(unescape(\''.$js_encode.'\'))</script>';

    } elseif ($encode == 'javascript_charcode' ) {
        $string = '<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>';

        for($x = 0, $y = strlen($string); $x < $y; $x++ ) {
            $ord[] = ord($string[$x]);   
        }

        $_ret = "<script type=\"text/javascript\" language=\"javascript\">\n";
        $_ret .= "<!--\n";
        $_ret .= "{document.write(String.fromCharCode(";
        $_ret .= implode(',',$ord);
        $_ret .= "))";
        $_ret .= "}\n";
        $_ret .= "//-->\n";
        $_ret .= "</script>\n";
        
        return $_ret;
        
        
    } elseif ($encode == 'hex') {

        preg_match('!^(.*)(\?.*)$!',$address,$match);
        if(!empty($match[2])) {
            $smarty->trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.");
            return;
        }
        $address_encode = '';
        for ($x=0; $x < strlen($address); $x++) {
            if(preg_match('!\w!',$address[$x])) {
                $address_encode .= '%' . bin2hex($address[$x]);
            } else {
                $address_encode .= $address[$x];
            }
        }
        $text_encode = '';
        for ($x=0; $x < strlen($text); $x++) {
            $text_encode .= '&#x' . bin2hex($text[$x]).';';
        }

        $mailto = "mailto:";
        return '<a href="'.$mailto.$address_encode.'" '.$extra.'>'.$text_encode.'</a>';

    } else {
        // no encoding
        return '<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>';

    }

}

/* vim: set expandtab: */
?>


Поройтесь.

К примеру,
{mailto address=somename@someserver.com text=sometext encode=none subject=somesubj}

дает нам
<a href="mailto:somename@someserver.com?subject=somesubj">sometext</a>
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Если программист в рабочее время играет, значит —
либо у него мало работы и большая зарплата,
либо у него много работы и маленькая зарплата.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.