Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2011, 13:16   #1
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию Тот же самый код ничего не отображает в Сафари

Есть тестовый скрипт, просто выводящий то, что он получил через POST. Одна из возможных задач - вывести js-галерею, к-рая опять же приходит через POST. И все казалось бы работает, за исключением одной пакости, Сафари ни под Виндой ни под Маком ничего не показывает, вообще, пустую страницу показывает, хотя код получает, при посмотре кода всё на месте. Если же скормить Сафари этот же самый HTML код, к-рый он не показывает, но сохраненный как html файл, то все нормально работает. Не хочет показывать только когда получает его от PHP.

Это скрипт
PHP код:
<!DOCTYPE html>
<html>
<head>
    <title>Preview</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Michroma|Terminal+Dosis+Light|Cabin+Sketch" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script type="text/javascript" src="galleria/galleria-1.2.2.js"></script>
</head>
<body>
<?php
if ( isset( $_POST ) )
    
$postArray = &$_POST ;            // 4.1.0 or later, use $_POST
else
    
$postArray = &$HTTP_POST_VARS ;    // prior to 4.1.0, use HTTP_POST_VARS
foreach ( $postArray as $sForm => $value ) { 
    if ( 
get_magic_quotes_gpc() )
        
$postedValue stripslashes$value );
    else
        
$postedValue $value ;
echo 
$postedValue
}
?>
</body>
</html>
Это результат работы скрипта
Код HTML:
<!DOCTYPE html>
<html>
<head>
	<title>Preview</title>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Michroma|Terminal+Dosis+Light|Cabin+Sketch" />
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
	<script type="text/javascript" src="galleria/galleria-1.2.2.js"></script>
</head>
<body>
	<div id="gallery">&nbsp;</div>
	<script type="text/javascript">
		var data = [
			{image:"images/1.jpg",title:"",description:"",link:""},
			{image:"images/3.jpg",title:"",description:"",link:""},
			{image:"images/2.jpg",title:"",description:"",link:""}
		];
		Galleria.loadTheme("galleria/themes/twelve/galleria.twelve.min.js");
		$("#gallery").galleria({width: 500,height: 300,data_source: data});
	</script>
</body>
</html>
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 07.04.2011, 14:40   #2
ZvEr_HaCkEr
VisualC++/DirectX
Форумчанин
 
Аватар для ZvEr_HaCkEr
 
Регистрация: 16.07.2010
Сообщений: 831
По умолчанию

А зачем работать через POST? Если хотите организовать галерею то легче "пробежаться" по директории и вывести картинки.
ZvEr_HaCkEr вне форума Ответить с цитированием
Старый 07.04.2011, 15:27   #3
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Вы сначала определитесь, вы HTML 5 используете или HTML 4

Цитата:
HTML 4.01:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
HTML5:
<meta charset="UTF-8">
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 07.04.2011, 22:08   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
А зачем работать через POST? Если хотите организовать галерею то легче "пробежаться" по директории и вывести картинки.
Это все встроено в wysiwyg html редактор, поэтому POST. Пока тестирую просто.

Цитата:
Вы сначала определитесь, вы HTML 5 используете или HTML 4
HTML 5. Исправил мету, но ничего не изменилось.

Вобщем, я сегодня поэкспериментировал, и выявил такой баг в работе Сафари. Javascript, к-рый получен из POST (в POST я посылаю точно такой же алёрт, как и другие, ничего больше), не срабатывает. При просмотре кода страницы в Сафари, Javascript код, к-рый получен из POST есть, и он без ошибок, но браузер его не выполняет. Все другие браузеры без проблем выполняют этот код.

PHP код:
<!DOCTYPE html>
<html>
<head>
    <title>Preview</title>
    <meta charset="UTF-8" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">alert("Это скрипт внутри body.");</script> <!-- этот срабатывает -->
<?php
if ( isset( $_POST ) )
    
$postArray = &$_POST ;            // 4.1.0 or later, use $_POST
else
    
$postArray = &$HTTP_POST_VARS ;    // prior to 4.1.0, use HTTP_POST_VARS
foreach ( $postArray as $sForm => $value ) { 
    if ( 
get_magic_quotes_gpc() )
        
$postedValue stripslashes$value );
    else
        
$postedValue $value ;
    echo 
$postedValue// этот не срабатывает, но только в Сафари
    
    
$testValue '<script type="text/javascript">alert("Это скрипт из php.");</script>';
    echo 
$testValue// а этот срабатывает
}
?>
</body>
</html>
Судя по тому, что последний скрипт работает, причина не срабатывания предыдущего как-то связана с POST, как-то Сафари отличает этот яваскрипт от других, и почему-то не выполняет его.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 07.04.2011 в 22:13.
mutabor вне форума Ответить с цитированием
Старый 08.04.2011, 14:45   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Точно барабашки. Вот я упростил предельно, все лишнее выкинул. Посылаю из формы с одним полем
Код HTML:
<form action="preview-test.php" method="post">
	<input type="text" name="firstname" style="width:300px;" value="" />
	<input type="submit" value="Submit" />
</form>
POST запрос в ниже приведенный PHP скрипт (HTML обертку я здесь опустил, она есть в постах выше в этой теме)
PHP код:
<?php
if ( isset( $_POST ) )
    
$postArray = &$_POST ;            // 4.1.0 or later, use $_POST
else
    
$postArray = &$HTTP_POST_VARS ;    // prior to 4.1.0, use HTTP_POST_VARS
foreach ( $postArray as $sForm => $value ) { 
    if ( 
get_magic_quotes_gpc() )
        
$postedValue stripslashes$value );
    else
        
$postedValue $value ;
    echo 
$postedValue;
}
?>
в поле формы вписываю следующий текст: <script type="text/javascript">alert('Script from POST!');</script> и нажимаю Submit. POST запрос уходит, PHP обрабатывает и возвращает страницу. Все браузеры мне показывают алёрт - "Это скрипт из POST!", Сафари мне показывает красивую белую страницу и всё. Скрипт, к-рый пришел через POST, не выполняется. Вот такие барабашки живут в браузере Сафари.

У кого есть Сафари попробуйте пожалуйста этот пример http://mutaborsoft.com/post.html, появится ли у вас алёрт при загрузке страницы-ответа.
Это скопируйте в поле:
<script type="text/javascript">alert('Script from POST!');</script>
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 08.04.2011, 14:52   #6
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

У меня в Сафири под виндой сработало.
Кстати может так попробовать стоит -
Код:
<script language="JavaScript" type="text/javascript">alert('Script from POST!');</script>
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 08.04.2011, 15:42   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

< deleted >
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 08.04.2011 в 15:57.
mutabor вне форума Ответить с цитированием
Старый 08.04.2011, 15:42   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
У меня в Сафири под виндой сработало.
Таак, уже интересно. А какая у вас версия? (у меня на винде 5.0.2, на маке(VMWare) 5.0.3 и в обоих не работает)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 08.04.2011 в 15:56.
mutabor вне форума Ответить с цитированием
Старый 08.04.2011, 16:15   #9
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Версия - 4.0.3(531.9.1)
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 08.04.2011, 17:02   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Версия - 4.0.3(531.9.1)
Блин, это ж надо. Действительно дело в версии, поставил щас себе четвертую, заработало! Спасибо большое за помощь!
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ничего не отображает :( Ksy JavaScript, Ajax 1 06.02.2011 23:40
Код написал код, но ответ постоянно один и тот же SkuLLL Помощь студентам 4 14.12.2010 19:25
DBGrid отображает не тот Float, что я ввел. Костя Мельников БД в Delphi 16 06.09.2009 00:23
ADOQuery ничего не отображает kopoba БД в Delphi 3 05.06.2009 10:40
Тот самый Pascal... Двумерные массивы... Сеня Помощь студентам 21 29.01.2009 00:36