Boeses_Genie

Рейтинг
3
Регистрация
09.10.2010

Ставьте вместо этого

mail ($to,$subject,$message) or print "Не могу отправить письмо!";

А можно вопрос - что эта форма должна делать? А то из кода не сразу понятно.

Нет, там при получении строки с помощью свойства innerHTML перекодируются практически все мнемоники в спецсимволы, кроме < &qt; & и еще парочки. В общем, я сам написал решение. Код поправлю и выложу тут, вдруг у кого-то еще будет такая проблема.

Boeses_Genie добавил 31.01.2011 в 18:24

Решение:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test</title>
</head>
<body>
<!-- Это фрагмент HTML-кода с символами-мнемониками, который нужно обработать.
Таким фрагментом могут, к примеру, оказаться данные, полученные с сервера -->
<div id="input" style="display: none;">
<h1>&laquo;Test!&raquo;</h1>
<p><a href="http://somesite.com/">&quot;Some Text&quot; Some &amp; Text</a></p>
</div>
<!-- Конец фрагмента -->

<!-- А эта форма - окно для редактирования текста и html-кода,
при переключении режимов html-сущности остаются в неименном виде -->
<form action="#">
<input type="button" value="Text/HTML" onclick="editorMode();" />
<br />
<iframe id="output" style="display: block; width: 300px; height: 200px; margin-top: 5px; border: 1px solid black;"></iframe>
<textarea id="edithtml" style="display: none; width: 300px; height: 200px; margin-top: 5px; border: 1px solid black;"></textarea>
</form>

<!-- Скрипт-обработчик событий формы -->
<script type="text/javascript">
window.onload = function(){document.getElementById("output").contentDocument.designMode = "on";};
document.getElementById("output").contentDocument.write(findTXT(document.getElementById("input")).replace(/&amp;/g, "&"));
document.getElementById("output").contentDocument.close();
document.getElementById("edithtml").value = findTXT(document.getElementById("input")).replace(/&amp;/g, "&");
function editorMode()
{
if(document.getElementById("edithtml").style.display == "none")
{
document.getElementById("edithtml").value = findTXT(document.getElementById("output").contentDocument.body).replace(/&amp;/g, "&");
document.getElementById("output").style.display = "none";
document.getElementById("edithtml").style.display = "block";
}
else
{
document.getElementById("edithtml").style.display = "none";
document.getElementById("output").style.display = "block";
document.getElementById("output").contentDocument.write(document.getElementById("edithtml").value);
document.getElementById("output").contentDocument.close();
}
}
function get_html_translation_table (table, quote_style) //Взято с сайта http://phpjs.org/, таблица html-сущностей
{
var entities = {}, hash_map = {}, decimal = 0, symbol = ''; var constMappingTable = {}, constMappingQuoteStyle = {};
var useTable = {}, useQuoteStyle = {};
constMappingTable[0] = 'HTML_SPECIALCHARS';
constMappingTable[1] = 'HTML_ENTITIES';
constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
constMappingQuoteStyle[2] = 'ENT_COMPAT';
constMappingQuoteStyle[3] = 'ENT_QUOTES';
useTable = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';
if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES')
{
throw new Error("Table: "+useTable+' not supported');
}
entities['38'] = '&amp;';
if (useTable === 'HTML_ENTITIES')
{
entities['160'] = '&nbsp;';
entities['161'] = '&iexcl;';
entities['162'] = '&cent;';
entities['163'] = '&pound;';
entities['164'] = '&curren;';
entities['165'] = '&yen;';
entities['166'] = '&brvbar;';
entities['167'] = '&sect;';
entities['168'] = '&uml;';
entities['169'] = '&copy;';
entities['170'] = '&ordf;';
entities['171'] = '&laquo;';
entities['172'] = '&not;';
entities['173'] = '*';
entities['174'] = '&reg;';
entities['175'] = '&macr;';
entities['176'] = '&deg;';
entities['177'] = '&plusmn;';
entities['178'] = '&sup2;';
entities['179'] = '&sup3;';
entities['180'] = '&acute;';
entities['181'] = '&micro;';
entities['182'] = '&para;';
entities['183'] = '&middot;';
entities['184'] = '&cedil;';
entities['185'] = '&sup1;';
entities['186'] = '&ordm;';
entities['187'] = '&raquo;';
entities['188'] = '&frac14;';
entities['189'] = '&frac12;';
entities['190'] = '&frac34;';
entities['191'] = '&iquest;';
entities['192'] = '&Agrave;';
entities['193'] = '&Aacute;';
entities['194'] = '&Acirc;';
entities['195'] = '&Atilde;';
entities['196'] = '&Auml;';
entities['197'] = '&Aring;';
entities['198'] = '&AElig;';
entities['199'] = '&Ccedil;';
entities['200'] = '&Egrave;';
entities['201'] = '&Eacute;';
entities['202'] = '&Ecirc;';
entities['203'] = '&Euml;';
entities['204'] = '&Igrave;';
entities['205'] = '&Iacute;';
entities['206'] = '&Icirc;';
entities['207'] = '&Iuml;';
entities['208'] = '&ETH;';
entities['209'] = '&Ntilde;';
entities['210'] = '&Ograve;';
entities['211'] = '&Oacute;';
entities['212'] = '&Ocirc;';
entities['213'] = '&Otilde;';
entities['214'] = '&Ouml;';
entities['215'] = '&times;';
entities['216'] = '&Oslash;';
entities['217'] = '&Ugrave;';
entities['218'] = '&Uacute;';
entities['219'] = '&Ucirc;';
entities['220'] = '&Uuml;';
entities['221'] = '&Yacute;';
entities['222'] = '&THORN;';
entities['223'] = '&szlig;';
entities['224'] = '&agrave;';
entities['225'] = '&aacute;';
entities['226'] = '&acirc;';
entities['227'] = '&atilde;';
entities['228'] = '&auml;';
entities['229'] = '&aring;';
entities['230'] = '&aelig;';
entities['231'] = '&ccedil;';
entities['232'] = '&egrave;';
entities['233'] = '&eacute;';
entities['234'] = '&ecirc;';
entities['235'] = '&euml;';
entities['236'] = '&igrave;';
entities['237'] = '&iacute;';
entities['238'] = '&icirc;';
entities['239'] = '&iuml;';
entities['240'] = '&eth;';
entities['241'] = '&ntilde;';
entities['242'] = '&ograve;';
entities['243'] = '&oacute;';
entities['244'] = '&ocirc;';
entities['245'] = '&otilde;';
entities['246'] = '&ouml;';
entities['247'] = '&divide;';
entities['248'] = '&oslash;';
entities['249'] = '&ugrave;';
entities['250'] = '&uacute;';
entities['251'] = '&ucirc;';
entities['252'] = '&uuml;';
entities['253'] = '&yacute;';
entities['254'] = '&thorn;';
entities['255'] = '&yuml;';
}
if (useQuoteStyle !== 'ENT_NOQUOTES') {
entities['34'] = '&quot;'; }
if (useQuoteStyle === 'ENT_QUOTES') {
entities['39'] = ''';
}
entities['60'] = '&lt;'; entities['62'] = '&gt;';
for (decimal in entities) {
symbol = String.fromCharCode(decimal);
hash_map[symbol] = entities[decimal];
}
return hash_map;
}
function htmlentities (string, quote_style) //Взято с сайта http://phpjs.org/, аналог php-фуркции htmlentities
{
var hash_map = {}, symbol = '', tmp_str = '', entity = '';
tmp_str = string.toString();
if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
return false;
}
hash_map["'"] = '''; for (symbol in hash_map) {
entity = hash_map[symbol];
tmp_str = tmp_str.split(symbol).join(entity);
}
return tmp_str;
}
function findTXT(n) //Эта функция обходит полученный узел DOM и исправляет в текстовых узлах специальные символы на html-сущности
{
var numtags = 0;
if (n.nodeType == 1)
numtags++;
if (n.nodeType == 3)
{
n.data = htmlentities(n.data);
}
var children = n.childNodes;
for(var i=0; i < children.length; i++)
{
findTXT(children);
}
return n.innerHTML;
}
</script>
</body>
</html>

В общем, тут движок форума тоже не все позволяет, будьте внимательны: в функции с таблицей мнемоник есть ошибки, движок форума тоже заменяет мнемоники на спецсимволы. Поэтому эту функцию берите с того сайта, на котором я ее нашел.

Если это не форма для ввода текста, как мне показалось, тогда, действительно, можно использовать div с явно указанной в CSS шириной и float: left;.

Вот самый простой способ:

<input type="text" value="текст" style="display: inline;" />

<input type="text" value="текст" style="display: inline;" />

Может быть, кто-нибудь подскажет решение? Суть в том, чтобы при присвоении значения value для textarea, выдернутого из фрагмента документа, сохранялись html-сущности. Дело в том, что в WYSIWYG'ах в различных CMS (WP, Joomla!, к примеру) при переключении режима text/html html-сущности перекодируются в спецсимволы. Можно добиться, чтобы этого не происходило, см., например, CKEditor или то же в 1С Битриксе. Мне интересно понять, как это реализовано.

Способов много. Навскидку: можно создать в этой же таблице дополнительное поле, в которое поместить идентификаторы друзей.

1|Иван|2,3

2|Петр|1,4

3|Василий|1

4|Пафнутий|2

Лучше сделать специальную карту сайта в XML и добавить ее в соответствующие формы поисковых систем. Этот формат поддерживается всеми крупными поисковиками. Можно написать скрипт для генерации файла самому или поискать - в сети есть множество скриптов, которые обходят весь сайт по внутренним ссылкам и генерируют sitemap.xml с нужными настройками. Можно даже привязать такой скрипт к планировщику или cron и забыть о проблеме. Практика показывает, что при наличии этого файла, если он корректно составлен, сайт индексируется быстрее. Также при генерации файла можно выявить ошибки в ссылочной структуре сайта и поправить их.

Вот простенький код с использованием DOM без применения jQuery. Размещать лучше перед закрывающим тегом BODY. При желании можно еще добавить и выбор конкретного атрибута.

<script type="text/javascript">

var item = prompt("Номер ссылки") - 1;
var attr = document.getElementsByTagName("a")[item].rel;
document.write(attr);
</script>
Rusreach:
Файл index.php
Сейчас на главной выводятся записи из всех категорий в порядке увеличения кол-ва просмотра:
<?php query_posts('v_sortby=views&v_orderby=asc') ?>

А может быть, все тривиально. Возможно, здесь просто ";" пропущена. Хотя это должно вызвать parse error. Возможно, надо так:

<?php query_posts('v_sortby=views&v_orderby=asc'); ?>
12
Всего: 17