Открытие ссылки во фрейме. Не сильно намудрил?

S
На сайте с 06.08.2008
Offline
130
729

Ссылка для открытия сайта во фрейме:

Код go.php (лишнее вырезал):

<html>
<head>

<script type="text/javascript">
function parseArgs() {
var a, res = {};
var objs = document.location.href.split(/\?|&/);
for (i=0; i<objs.length; i++) {
a = objs.split("=");
if (a[1]) res[a[0]] = unescape(a[1]);
}
return res;
}
var a = parseArgs();
var url = a['link']?a['link']:"<?=$url?>";
</script>

</head>
<body>

<script>document.write('<iframe id="source" src="' + url + '"" scrolling="auto" frameborder="0"></iframe>');</script>

</body>
</html>

Так-то вроде всё работает..

Не сильно мудрённо? Как можно проще сделать?

ДП
На сайте с 23.11.2009
Offline
203
#1

Раз у вас php, почему бы не генерировать код <iframe> сразу на сервере?

S
На сайте с 06.08.2008
Offline
130
#2
Дикий пионер:
Раз у вас php, почему бы не генерировать код <iframe> сразу на сервере?

Всмысле не разделять на 2 файла?

ДП
На сайте с 23.11.2009
Offline
203
#3

Не совсем, что-то типа


<html>
<head>
</head>
<body>
<?php
echo '<iframe id="source" src="'.$_GET['link'].'"" scrolling="auto" frameborder="0"></iframe>';
?>
</body>
</html>

Ну и параметры ссылки собрать тоже на сервере, типа если в link будет ссылка с параметрами. А то у вас код по сути дублируется, насколько я понимаю.

В go.php ну только экранируйте $_GET['link'], чтобы вам туда XSS не насовали.

S
На сайте с 06.08.2008
Offline
130
#4
Дикий пионер:
Ну и параметры ссылки собрать тоже на сервере, типа если в link будет ссылка с параметрами. А то у вас код по сути дублируется, насколько я понимаю.
В go.php ну только экранируйте $_GET['link'], чтобы вам туда XSS не насовали.

Спасибо! Реально намудрил..

Так достаточно будет?

src="'.stripcslashes($_GET['link']).'""

Спрошу тут же..

Что прописать в .htaccess, чтобы делать ссылки вида:

Вывод фрейма заменил на:

<?php
echo '<iframe id="source" src="http://'.stripcslashes($_GET['link']).'"" scrolling="auto" frameborder="0"></iframe>';
?>

Пробую так:

RewriteEngine On
RewriteRule ^go(/?)+$ go.php?link=$1 [L]

Результат - Not Found

А если прописать:

RewriteRule ^go(/?)+$ go.php?link=outsite.ru [L]

и ссылаться просто

, то всё работает..

Что не учёл?

sashka_
На сайте с 27.01.2010
Offline
103
#5

<?php
echo '<iframe id="source" src="http://'.htmlspecialchars($_GET['link'], ENT_QUOTE, 'windows-1251').'"" scrolling="auto" frameborder="0"></iframe>';
?>

htaccess

RewriteEngine On

RewriteRule ^go/(.+)$ go.php?link=$1 [L]

Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).

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