Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / 500 Internal server error... / 7 сообщений из 7, страница 1 из 1
09.02.2005, 15:51
    #32908536
kanalex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
500 Internal server error...
Доброго времени суток знатокам!
Ситуевина такая:
PHP4 (4.2.3), Apache 2.0.43. Броузеры: IE6.0, Opera 6.0
Пишем некую страничку, содержащую такой вот JavaScript

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<SCRIPT LANGUAGE="JavaScript">
var windowW =  138  // wide
var windowH =  210  // high
s = "width="+windowW+",height="+windowH;
function openFrameless(par) {
      NFW = window.open(par,"popFrameless",","+s);
}
</script>
Скрипт вызывает всплывающее окно, в котором должен показать картинку, выдранную из базы
вызываем его так:
Код: plaintext
1.
<a href="javascript:openFrameless('photo2.php?par=<?php echo $str13?>&fio=<?php echo "$str7 $str8"?>')"><img src="pic/members_list.gif" border="0"></a>

Соответсвенно файл всплывающего окна (photo2.php) представляет собой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<html>
<head>
<title><?php echo $fio?></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
</body>
<?php
require("bin/blopclas.php");
	$db = new db();
	$db->open();

if(isset($par) != 0 )
{
	$sql = "select Ww, Hh from photos where idsotr = $par";
	$query = new query($db,$sql); 
	$query->getrow();
	$a = $query -> counting();
	if ($a <>  0 )
		{
		$Ww = $query->field('Ww');
		$Hh = $query->field('Hh');
		}
	else
	{
	?>
		<SCRIPT LANGUAGE="JavaScript">
			window.focus();
			window.resizeTo( 138 , 210 );
		</script>
	<?php	
	}
?>

<SCRIPT LANGUAGE="JavaScript">
	window.focus();
	window.resizeTo(<?php echo $Ww ?>,<?php echo $Hh?>);
</script>
<?php
}
?>
<img src="photo.php?par=<?php echo $par?>">
</html>

файл, выдирающий картинку из базы (photo.php):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<?php
header("Content-type: image/gif");
require("bin/blopclas.php");
	$db = new db();
	$db->open();

if(isset($par) != 0 )
{
	$sql = "select photo, Ww, Hh from photos where idsotr = $par";
	$query = new query($db,$sql); 
	$query->getrow();
	$a = $query -> counting();
	if ($a <>  0 )
		{
		$out = $query->field('photo');
		$Ww = $query->field('Ww');
		$Hh = $query->field('Hh');
		//echo strlen($out);
		if (strlen($out) <  10 )
			{
			readfile("pic/empty.gif");
			}
		else
			{
			echo $out;
			}
		}
	else
		{
		readfile("pic/empty.gif");
		}
}
else
{
	readfile("pic/empty.gif");
}
?>

Каждый файл по отдельности работает.
Вся эта конструкция локально работает (локально стоит IIS+PHP)
Вся эта конструкция залитая на сервер (PHP4 (4.2.3), Apache 2.0.43.) в Опере работает, а в IE выдаает subj

Вопрос: где грабли порылись?
...
Рейтинг: 0 / 0
09.02.2005, 15:55
    #32908547
kanalex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
500 Internal server error...
Да..., забыл привести лог апача:

[Wed Feb 09 15:55:23 2005] [error] [client 192.168.2.152] (22)Invalid argument: couldn't create child process: 22: php.exe
[Wed Feb 09 15:55:23 2005] [error] [client 192.168.2.152] (22)Invalid argument: couldn't spawn child process: D:/PHP/php.exe
...
Рейтинг: 0 / 0
09.02.2005, 17:28
    #32908766
kanalex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
500 Internal server error...
Проблема локализовалась до следующей:

В результате работы строки:

Код: plaintext
1.
<a href="javascript:openFrameless('photo2.php?par=<?php echo $str13?>&fio=<?php echo "$str7 $str8"?>')"><img src="pic/members_list.gif" border="0"></a>

формируется строка вызова:
Код: plaintext
1.
http:// 192 . 168 . 3 . 32 /telsprav/photo2.php?par= 225 &fio="по-русски"

Вопрос: как ее перекодировать в понятный серверу и броузеру вид???:
Код: plaintext
1.
http:// 192 . 168 . 3 . 32 /telsprav/photo2.php?par= 225 &fio=% 22 %EF%EE-%F0%F3%F1%F1%EA%E8% 22  

Таким образом, проблема была в русских значениях параметров передаваемых по GET
...
Рейтинг: 0 / 0
09.02.2005, 17:45
    #32908796
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
500 Internal server error...
...
Рейтинг: 0 / 0
09.02.2005, 18:31
    #32908900
kanalex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
500 Internal server error...
DocAl urlencode
Спасибо. Отчасти это решает проблему, т.е. сервер больше не выдает ошибку.

Но вот ссылка получается нечитаемая:(

Код: plaintext
1.
javascript:openFrameless('photo2.php?par=225&fio=Eiiaan Nayoineaa Aeaaeie?iae?')

как полуичть ее в виде:???

Код: plaintext
1.
javascript:openFrameless('photo2.php?par=225&fio=%CB%EE%EC%E1%E0%F1+%D1%E2%FF%F2%EE%F1%EB%E0%E2+%C2%EB%E0%E4%E8%EC%E8%F0%EE%E2%E8%F7')

С таким URL-ом все работает правильно...
...
Рейтинг: 0 / 0
09.02.2005, 19:04
    #32908975
kanalex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
500 Internal server error...
Заметил еще одну интересную вещь...
Опера сама перекодирует URL к правильному виду внезависимости от использования urlencode(), а вот IE этого не делает.
Вот почему у меня все работало в Опере, и не работало в IE...

Ну это так... лирическое отступление:)
Последний заданный вопрос остается открытым.
...
Рейтинг: 0 / 0
09.02.2005, 20:05
    #32909046
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
500 Internal server error...
DocAl urlencode Следует заметить, что rawurlencode , наверно, будет более правильным. По крайней мере, лично для меня это решило проблему с файлами, содержащими пробел в своём имени.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / 500 Internal server error... / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]