Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: PHP > JS
Форумы портала PHP.SU » » Вопросы новичков » PHP > JS

Страниц (1): [1]
 

1. ksamochkin - 21 Февраля, 2015 - 08:39:20 - перейти к сообщению
Пишу скрипт случайного информера

сделал вывод через
CODE (htmlphp):
скопировать код в буфер обмена
  1. echo "document.write(\"$txt\");";


При выполнении скрипта http://humor[dot]permskii[dot]ru/informer.php как положено выводит типа
Цитата:
document.write("В номинации "Самое доступное жилье в Сочи", победил железнодорожный вокзал.");


Но при выполнении
CODE (javascript):
скопировать код в буфер обмена
  1. <script src="http://humor.permskii.ru/informer.php" type="text/javascript"></script>


частенько пусто редко когда проскакивает нужное в чем может быть ошибка?
2. Tyoma5891 - 21 Февраля, 2015 - 09:23:58 - перейти к сообщению
экранировать нужно
\"$txt\"
3. ksamochkin - 21 Февраля, 2015 - 09:42:56 - перейти к сообщению
Tyoma5891 пишет:
\"$txt\"


так то сделано
CODE (htmlphp):
скопировать код в буфер обмена
  1. echo "document.write(\"$txt\");";
4. skiphog - 21 Февраля, 2015 - 10:21:15 - перейти к сообщению
1. Ваш скрипт не всегда отрабатывает корректно из-за переводов строк.

Поэтому, перед тем, как пульнуть строку в javascript, нужно удалить их.
В вашем случае это будет выглядеть примерно так
PHP:
скопировать код в буфер обмена
  1. echo 'document.write("'.str_replace("\r\n",'',$txt).'");';


Так же, не забывайте отправлять правильные заголовки в начале скрипта.
PHP:
скопировать код в буфер обмена
  1. // что бы все браузеры правильно распознали контент
  2. header('Content-Type:text/javascript');
  3. // что бы браузеры не кешировали
  4. header('Cache-Control: no-store;max-age=0');


2. Почему нельзя просто заинклюдить этот php файлик в нужном месте?
зачем все эти танцы с document.write?
5. ksamochkin - 21 Февраля, 2015 - 10:28:13 - перейти к сообщению
skiphog пишет:
1. Ваш скрипт не всегда отрабатывает корректно из-за переводов строк.

Поэтому, перед тем, как пульнуть строку в javascript, нужно удалить их.
В вашем случае это будет выглядеть примерно так
PHP:
скопировать код в буфер обмена
  1. echo 'document.write("'.str_replace("\r\n",'',$txt).'");';


Так же, не забывайте отправлять правильные заголовки в начале скрипта.
PHP:
скопировать код в буфер обмена
  1. // что бы все браузеры правильно распознали контент
  2. header('Content-Type:text/javascript');
  3. // что бы браузеры не кешировали
  4. header('Cache-Control: no-store;max-age=0');


2. Почему нельзя просто заинклюдить этот php файлик в нужном месте?
зачем все эти танцы с document.write?


о спасибо... Ваш совет помог, инклюд хорош для php а я хочу что бы любой сайт можно было подключить...
6. Quick - 21 Февраля, 2015 - 10:46:55 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<script language='JavaScript'>document.write(\"$txt\");</script><noscript>$txt</noscript>";  
  3.  
7. esterio - 23 Февраля, 2015 - 14:50:09 - перейти к сообщению
http://htmlbook[dot]ru/webserver/ssi
?
8. ksamochkin - 23 Февраля, 2015 - 14:58:49 - перейти к сообщению


ssi не используется совместно с include

 

Powered by ExBB FM 1.0 RC1