Перейти к публикации

Рекомендованные сообщения

Добрый день! После обновления с 9 до 9.2 возникла проблема. Могу предположить, что это связанно с п.24, т.к. на старой версии работало.

код


<div id="movie_area"></div>


<script type="text/javascript">

        function loadPlayer(movie_id){

                var ajax = new dle_ajax();

                var movie_id = movie_id;

                var varsString = "movie_id=" + movie_id;

                ajax.onShow ('');

                ajax.requestFile = dle_root + 'video/video.php';

                ajax.method = 'POST';

                ajax.element = 'movie_area';

                ajax.sendAJAX(varsString);

                return false;

        };

</script>


<select name="video_list" onchange="if(this.value){loadPlayer(this.value);}">

<option value="111">01</option>

<option value="222">02</option>

</select>

Помогите изменить код.

Ссылка на сайт в профиле, сайт пустой, кода там нет.

Доп. вопрос не по теме:

Если скачать движок и установить на "Денвере", не активируя лицензию, будет ли движок функционировать?

Изменено пользователем Maks-Line
Ссылка на сообщение
Поделиться на других сайтах

<script type="text/javascript">

        function loadPlayer(movie_id){

                var ajax = new dle_ajax();

                var movie_id = movie_id;

                var varsString = "movie_id=" + movie_id;

                ajax.onShow ('');

                ajax.requestFile = dle_root + 'video/video.php';

                ajax.method = 'POST';

                ajax.element = 'movie_area';

                ajax.sendAJAX(varsString);

                return false;

        };

</script>

замени на

<script type="text/javascript">

        function loadPlayer(movie_id){

ShowLoading('');

	$.get(dle_root + "engine/ajax/video.php", 

	{ movie_id: movie_id}, function(data){

		HideLoading('');

		$("#movie_area").fadeOut(500, function() {

			$(this).html(data);

			$(this).fadeIn(500);

		});

	});

}

</script>

Ссылка на сообщение
Поделиться на других сайтах

a1ex, почти заработало. Вылетает "Hacking attempt!"

Вот код video.php


<?php

if ($_POST['movie_id']) {

  $movie = 'http://video.rutube.ru/'.$_POST['movie_id'].'';

  $movie = <<<HTML


  <OBJECT width="100%" height="451">

  <PARAM name="movie" value="{$movie}" />

  <PARAM name="wmode" value="window" />

  <PARAM name="allowFullScreen" value="true" />

  <EMBED src="{$movie}" type="application/x-shockwave-flash" wmode="window" width="100%" height="451" allowFullScreen="true" ></EMBED>

  </OBJECT>


HTML;

echo $movie; unset($movie);

} else echo 'Hacking attempt!';

?>

Что здесь нужно изменить?

Ссылка на сообщение
Поделиться на других сайтах

$.get
замените на
$.post

Кстати могу сразу сказать ваш код уязвим, и можно провести XSS атаку на сайт. $_POST['movie_id'] нужно фильтровать, нужно фильтровать через intval а не сразу вставлять.

Ссылка на сообщение
Поделиться на других сайтах

a1ex, Большое спасибо за код!

celsoft, Большое спасибо за исправление!

celsoft, по поводу XSS атаки. Я в этом совсем не разбираюсь и не знаю язык php. Если Вы поможете решить проблему, буду очень благодарен!

Ссылка на сообщение
Поделиться на других сайтах

Maks-Line,

Для начало скажите для примера, каким должно быть $_POST['movie_id'] это число или строка?

Ссылка на сообщение
Поделиться на других сайтах

celsoft,

Код html:


<div id="movie_area">


<OBJECT width="100%" height="451">

<PARAM name="movie" value="http://video.rutube.ru/2fd1abdcab9a5bc2f2488aeb8aa65bd9" />

<PARAM name="wmode" value="window" />

<PARAM name="allowFullScreen" value="true" />

<EMBED src="http://video.rutube.ru/2fd1abdcab9a5bc2f2488aeb8aa65bd9" type="application/x-shockwave-flash" wmode="window" width="100%" height="451" allowFullScreen="true" ></EMBED>

</OBJECT>


</div>


<script type="text/javascript">

        function loadPlayer(movie_id){

ShowLoading('');

        $.post(dle_root + "video/video.php", 

        { movie_id: movie_id}, function(data){

                HideLoading('');

                $("#movie_area").fadeOut(500, function() {

                        $(this).html(data);

                        $(this).fadeIn(500);

                });

        });

}

</script>


<select name="video_list" onchange="if(this.value){loadPlayer(this.value);}">

<option value="2fd1abdcab9a5bc2f2488aeb8aa65bd9">01</option>

<option value="b74b6e6eafa3ea8c98e9dc2311e4a6f3">02</option>

</select>

Код video.php

<?php

if ($_POST['movie_id']) {

  $movie = 'http://video.rutube.ru/'.$_POST['movie_id'].'';

  $movie = <<<HTML


  <OBJECT width="100%" height="451">

  <PARAM name="movie" value="{$movie}" />

  <PARAM name="wmode" value="window" />

  <PARAM name="allowFullScreen" value="true" />

  <EMBED src="{$movie}" type="application/x-shockwave-flash" wmode="window" width="100%" height="451" allowFullScreen="true" ></EMBED>

  </OBJECT>


HTML;

echo $movie; unset($movie);

} else echo 'Hacking attempt!';

?>

Ссылка на сообщение
Поделиться на других сайтах

video.php

$movie = 'http://video.rutube.ru/'.$_POST['movie_id'].''; 
замените на
$movie = 'http://video.rutube.ru/'.htmlspecialchars( strip_tags( stripslashes( $_POST['movie_id'] ) ), ENT_QUOTES ).'';

Ссылка на сообщение
Поделиться на других сайтах

celsoft, все получилось!

Возник еще один вопрос. Попробую объяснить на примере. Через доп. поля я задаю различную высоту плеера. Если просто html, то код выглядит так:


<OBJECT width="100%" height="[xfvalue_height]">

<PARAM name="movie" value="http://video.rutube.ru/b74b6e6eafa3ea8c98e9dc2311e4a6f3" />

<PARAM name="wmode" value="window" />

<PARAM name="allowFullScreen" value="true" />

<EMBED src="http://video.rutube.ru/b74b6e6eafa3ea8c98e9dc2311e4a6f3" type="application/x-shockwave-flash" wmode="window" width="100%" height="[xfvalue_height]" allowFullScreen="true" ></EMBED>

</OBJECT>

Как это реализовать в файле video.php, туда нельзя вписать доп. поле "[xfvalue_height]". Заведомо пишу неправильный код, чтобы примерно показать, чего я хочу добиться: video.php

<?php

if ($_POST['movie_id']) {

  $movie = 'http://video.rutube.ru/'.htmlspecialchars( strip_tags( stripslashes( $_POST['movie_id'] ) ), ENT_QUOTES ).'';

  $movie = <<<HTML


  <OBJECT width="100%" height="[xfvalue_height]">

  <PARAM name="movie" value="{$movie}" />

  <PARAM name="wmode" value="window" />

  <PARAM name="allowFullScreen" value="true" />

  <EMBED src="{$movie}" type="application/x-shockwave-flash" wmode="window" width="100%" height="[xfvalue_height]" allowFullScreen="true" ></EMBED>

  </OBJECT>


HTML;

echo $movie; unset($movie);

} else echo 'Hacking attempt!';

?>

Ссылка на сообщение
Поделиться на других сайтах

Maks-Line,

Я не пишу кодов на заказ, я помог с решением вопроса уязвимости, а подгонять код стороннего модуля это уже не ко мне, а к автору модуля.

Ссылка на сообщение
Поделиться на других сайтах

такая же тема,помогите код переделать

<script language="javascript" type="text/javascript">


function jokes_update(){

    var ajax = new dle_ajax();

    ajax.onShow ('');

    var varsString = "";

    ajax.requestFile = dle_root + "engine/ajax/jokes.php";

    ajax.method = 'POST';

    ajax.element = 'ajax-layer';

    ajax.execute = true;

    ajax.sendAJAX(varsString);

    return false;

}


</script>

Ссылка на сообщение
Поделиться на других сайтах

Возникла проблема по теме! В браузере IE периодически не выполняются запросы. Переключаю select и остается старое значение, после чего невозможно перезагрузить страницу. Предполагаю, что это связано с кэшированием. Искал в интернете, нашел строчки:


$.ajaxSetup({cache: false});

и

jQuery.ajaxSetup ({cache: false});

Только как их применить не знаю, и вообще правильные ли они. Можно ли отключить кэш для IE? Создаст ли это нагрузку на сервер при большом количестве запросов?

Исходный код можно посмотреть выше в #7 посте.

Помогите решить проблему.

Ссылка на сообщение
Поделиться на других сайтах

Предполагаю, что это связано с кэшированием. Искал в интернете, нашел строчки:

$.ajaxSetup({cache: false});

и

jQuery.ajaxSetup ({cache: false});

это не имеет к вашему вопросу отношения, у вас POST, а это не кешируется.

sergi7,

function jokes_update(){ 
var ajax = new dle_ajax();
ajax.onShow ('');
var varsString = "";
ajax.requestFile = dle_root + "engine/ajax/jokes.php";
ajax.method = 'POST';
ajax.element = 'ajax-layer';
ajax.execute = true;
ajax.sendAJAX(varsString);
return false;
} [/code] заменить на
[code]function jokes_update(){
ShowLoading('');
$.post(dle_root + "engine/ajax/jokes.php", {}, function(data){
HideLoading('');
RunAjaxJS('ajax-layer', data);
});

return false;
}

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...