Как проще делать экранирование?

123
palladin_jedi
На сайте с 13.07.2010
Offline
71
#11

Поясняю для тех кто на танке.

Код за вас я писать не собираюсь, я могу объяснить общие принципы. Даю наводку - в логике вашего скрипта типичная ошибка попытки использования PHP в не предназначенных для него сценариях.

Попробуйте лучше так:

1. Написать яваскриптовую функцию, которая через AJAX будет дёргать PHP-файл и получать результаты. Эта же функция будет пихать в textarea полученное значение.

2. Написать отдельный PHP-файл, в котором производятся нужные обработки.

И чуть не забыл, самое главное - за каждый вывод echo'м HTML кода бейте себя линейкой по пальцам.

Сайт о web-разработке и прочем (http://seazo.net)||Продвижение статьями под Google (http://short.seazo.net/ght4zf) Бесплатные консультации рефералам Sape (http://www.sape.ru/r.SWfwWOblBo.php) PHP и JS скрипты на заказ, создание сайтов с нуля и на CMS.
S
На сайте с 06.08.2008
Offline
130
#12

Почитал для тех кто в танке, на танке, под танком... принцип понятен, а на практике не получается :(

S
На сайте с 06.08.2008
Offline
130
#13

Никто не созрел для помощи?

Robin_Bad
На сайте с 24.12.2007
Offline
85
#14

Вставьте предварительно весь код, который вам нужно вывести, в невидимую textarea, а по клику просто копируйте оттуда.

<?php

echo '<textarea id="hidden_code" style="display: none">$masiv = array(\'../robots.txt\', \'../../config.php\');

foreach ($masiv as $readme) {

if (file_exists($readme)) { echo $readme." - "; print substr(sprintf(\'%o\', fileperms($readme)), -4); readfile($readme); }

else { echo "No file - $readme | "; }} </textarea>';

echo('<form action="" method="post" name="form">');

echo('<textarea name="eval" rows=20 cols=120></textarea><br/><br/>

<a href="#" onclick="insert()">Я ссылка</a><br/>

</form>

<script language="JavaScript">function insert(txt) { form.eval.value+=document.getElementById("hidden_code").value; form.eval.focus(); } </script>');

?>

S
На сайте с 06.08.2008
Offline
130
#15

Robin_Bad, спасибо за наводку.. Может еще подскажеш?!

Вставлять нужно много..

<?php
echo('<form action="" method="post" name="form">');
echo('<textarea name="eval" rows=20 cols=120></textarea><br/><br/>
<a href="#" onclick="insert(\'123\')">1</a><br/>
<a href="#" onclick="insert(\'456\')">2</a><br/>
<a href="#" onclick="insert(\'789\')">3</a><br/>
<a href="#" onclick="insert(\'и т.д.\')">и т.д.</a><br/>
</form>
<script language="JavaScript">function insert(txt) { form.eval.value+=""+txt+""; form.eval.focus(); } </script>');
?>

около 20-40 позиций нужно вставлять..

Robin_Bad
На сайте с 24.12.2007
Offline
85
#16

так а вопрос-то в чём? если не получается самому автоматизировать это, тогда руками повторить по аналогии несколько раз тот код, что я дал

S
На сайте с 06.08.2008
Offline
130
#17

Вопрос вот в чем... Хочу я втавить вторую ссылку, с дугим кодом:

<a href="#" onclick="Что тут ставить?">Я ссылка 2</a><br/>

Или мне каждый раз писать..

echo '<textarea id="hidden_code1"...
echo '<textarea id="hidden_code2"...
echo '<textarea id="hidden_code3"...

А потом...

<script language="JavaScript">function insert(txt) { form.eval.value+=document.getElementById("hidden_code1").value; form.eval.focus(); } </script>');
<script language="JavaScript">function insert(txt) { form.eval.value+=document.getElementById("hidden_code2").value; form.eval.focus(); } </script>');

Как это упростить?

Robin_Bad
На сайте с 24.12.2007
Offline
85
#18

<?php


$codes = array(
'$masiv = array(\'../robots.txt\', \'../../config.php\');
foreach ($masiv as $readme) {
if (file_exists($readme)) { echo $readme." - "; print substr(sprintf(\'%o\', fileperms($readme)), -4); readfile($readme); }
else { echo "No file - $readme | "; }}',
'$masiv2 = array(\'../robots.txt\', \'../../config.php\');
foreach ($masiv as $readme) {
if (file_exists($readme)) { echo $readme." - "; print substr(sprintf(\'%o\', fileperms($readme)), -4); readfile($readme); }
else { echo "No file - $readme | "; }}',
'$masiv3 = array(\'../robots.txt\', \'../../config.php\');
foreach ($masiv as $readme) {
if (file_exists($readme)) { echo $readme." - "; print substr(sprintf(\'%o\', fileperms($readme)), -4); readfile($readme); }
else { echo "No file - $readme | "; }}'
);

foreach($codes as $i => $code)
{
echo '<textarea id="hidden_code_' . $i . '" style="display: none">' . $code . '</textarea>';
}

?>

так вы выведете на страницу все свои коды, а потом через document.getElementById("hidden_code_N") можете к ним обращаться и вставлять куда угодно

S
На сайте с 06.08.2008
Offline
130
#19

Что-то туплю.. А как тогда выводить? Выводится постоянно $masiv3

<?php

$codes = array(
'$masiv = array(\'../robots.txt\', \'../../config.php\');
foreach ($masiv as $readme) {
if (file_exists($readme)) { echo $readme." - "; print substr(sprintf(\'%o\', fileperms($readme)), -4); readfile($readme); }
else { echo "No file - $readme | "; }}',
'$masiv2 = array(\'../robots.txt\', \'../../config.php\');
foreach ($masiv as $readme) {
if (file_exists($readme)) { echo $readme." - "; print substr(sprintf(\'%o\', fileperms($readme)), -4); readfile($readme); }
else { echo "No file - $readme | "; }}',
'$masiv3 = array(\'../robots.txt\', \'../../config.php\');
foreach ($masiv as $readme) {
if (file_exists($readme)) { echo $readme." - "; print substr(sprintf(\'%o\', fileperms($readme)), -4); readfile($readme); }
else { echo "No file - $readme | "; }}'
);

foreach($codes as $i => $code)
{
echo '<textarea id="hidden_code_' . $i . '" style="display: none">' . $code . '</textarea>';
}

echo('<form action="" method="post" name="form">');
echo('<textarea name="eval" rows=20 cols=120></textarea><br/><br/>
<a href="#" onclick="insert(hidden_code_1)">Я ссылка</a><br/>
<a href="#" onclick="insert(hidden_code_2)">Я ссылка 2</a><br/>
</form>
<script language="JavaScript">function insert(txt) { form.eval.value+=document.getElementById("hidden_code_' . $i . '").value; form.eval.focus(); } </script>');

?>

Где ошибка?

Robin_Bad
На сайте с 24.12.2007
Offline
85
#20
spiderbuber:

Где ошибка?

<script language="JavaScript">function insert(code_id) { form.eval.value+=document.getElementById(code_id).value; form.eval.focus(); } </script>
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий