ЙажаСценарий / Говнокод #20216 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
function load_err_count()
{

	var theUrl ='http://<?php print $_SERVER['HTTP_HOST'] ?>/gen/err/error_count.php';
		//alert(theUrl);
	var xmlHttp = null;
	xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    //alert(xmlHttp.responseText);
	var text = xmlHttp.responseText;
	try{
	if(   parseInt(text)>0)
		document.getElementById('id_err_count').innerHTML  = '<a target=\'_blank\' href=http://<?php print $_SERVER['HTTP_HOST'] ?>/gen/err/error_log.php>'+text+'</a>';
	else 
		document.getElementById('id_err_count').innerHTML  = '';
	}
	catch (ex){document.getElementById('id_err_count').innerHTML  = '';}
	
	
	var theUrl ='http://<?php print $_SERVER['HTTP_HOST'] ?>/gen/err/util_count.php';
		//alert(theUrl);
	var xmlHttp = null;
	xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    //alert(xmlHttp.responseText);
	var text = xmlHttp.responseText;
	try{
	if(   parseInt(text)>0)
		document.getElementById('id_util_count').innerHTML  = '<a target=\'_blank\' href=http://<?php print $_SERVER['HTTP_HOST'] ?>/gen/err/util_log.php>'+text+'</a>';
	else 
		document.getElementById('id_util_count').innerHTML  = '';
	}
	catch (ex){document.getElementById('id_util_count').innerHTML  = '';}

}

Внимание на: var theUrl

Запостил: kerberos kerberos, (Updated )

Комментарии (11) RSS

  • Не распарсится, но вообще, идея годная: не держать код на сервере, а генерировать его ж.скриптом на компьютере пользователя и посылать на сервер для исполнения.
    Ответить
    • Да не, это ж классический пыхоприём, когда в js что-то подставляют пыхой...
      Ответить
      • Просто у каждого языка должен быть макропроцессор. Некоторые рождают необходимый минимум вроде сишного. Некоторые выбирают тяжёлый путь и рождают темплейты. А некоторые пытаются увильнуть и их макропроцессором становится PHP.
        Ответить
  • У меня два варианта:
    1. Это шаблон, из него JS-файл генерируется на сервере. Да, на каждый запрос.
    2. Переменная отсылается на сервер, а там PHP-скрипт выполняет eval (PHP-инъекция!).

    Смотрим дальше: xmlHttp.open( "GET", theUrl, false ); Второй вариант проваливается, theUrl должна быть заполнена готовым адресом. Победил первый вариант.

    Но обычно так не делают. В шаблоне для HTML пишут что-то типа такого:
    <script type="text/javascript">
        var theHost ='<?php print $_SERVER['HTTP_HOST'] ?>';
    </script>

    А JS-файл оставляют статическим, а в нём так:
    var theUrl ='http://&#039; + theHost + '/gen/err/error_count.php';
    Ответить
      • А вот не знаком я с такой технологией, хотя слышал о ней от адептов Микрософта. Где-нибудь доступно изложено, как оно работает?
        Ответить
        • Это Майкрософт так задолго до Ноды.жс предлагал разработчикам вять веб-приложения на ж.скрипте. Про подробности не знаю, т.как столкнулся с этим только один раз в жизни, и ничего хорошего из встречи не почерпнул.
          Ответить
        • Classic ASP это называется. Это нода нулевых, только без асинхронщины и с активиксом. С полифилами жить и сегодня можно, но не нужно.
          Был популярен до ASP.NET, писали на нем, в массе, такую же лапшу как и на пхп4.
          На типичную лапшу можно посмотреть тут: w3schools.com/asp/
          Про основные грабли: https://legacytotheedge.blogspot.ru/2014/05/guide-to-javascript-on-classic-asp.html
          Ответить
          • Если я правильно понял, <script runat="server"> выполняется на сервере (типа как <% code %>). А как выполняется <form runat="server">? Какой HTML-код в этом случае получает клиент?
            Ответить
            • На сколько я помню, это типа плейсхолдер для контролов которые вижуалстудия генерировала для веб страничек. А еще были такие РАД контролы. Ну, та же идея, что и борландовкий билдер: перетаскиваешь иконку на форму, и потом дописываешь к ней обработчики. Такие контролы в ХТМЛ заворачивались в форму и к ним генерировался специальный жскрипт, который осуществлял общение с сервером так что для программиста было не понятно, где именно код выполнится. Т.е. например, ставишь на форму кнопку, а в обработчике пишешь обращение к базе данных - студия сгенерирует код который при нажатии на кнопку пошлет запрос серверной части и вызовет нужный обработчик.
              Ответить
            • <form runat="server"> в Classic ASP нет, емнип, это уже вебформс. Там тоже ничего интересного: состояние формы запихивается во ViewState, а сама форма сабмитит этот ViewState на ту же самую страницу. ViewState работает как кукисы, только его подписывает сервер, чтобы быть увереным, что клиент его не испортил.
              Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8