|
|
|
| В общем, с помощью php подгружаю данные из БД:
<?php
$link = mysql_connect("localhost", $login_mysql, $passwd_mysql)
or die("Could not connect : " . mysql_error());
mysql_select_db("garantekb",$link) or die("Could not select database");
$query="select * from represent order by city";
$result = mysql_query($query,$link) or die("Query failed : " . mysql_error());
echo "<div id=norm>";
while ($row=mysql_fetch_array ($result)) {
echo "<li><a href=".chr(34)."javascript:show_info('".$row["id_represent"]."');".chr(34).">".$row["city"]." <br>(".$row["firm_name"].")</a><br>";
}
mysql_free_result ($result);
echo "</div>";
?>
|
где show_info:
<script>
// <!--
function show_info(id)
{
window.open('info.php?firm='+id, 'info', 'width=450,height=370,history=no,resizable=no,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no');
}
// -->
</script>
|
и вроде бы здесь нет проблем, но при выполнении функции show_info, info.php не отображается ссылаясь на внутреннюю ошибку, хотя там вроде тоже все в порядке, вот его код:
<?php
include ("/home/localhost/www/inc/main.init.ini");
include ("/home/localhost/www/inc/style.inc");
echo "<body bgColor=#f0f0f0 text=norm>";
$link = mysql_connect("localhost", $login_mysql, $passwd_mysql)
or die("Could not connect : " . mysql_error());
mysql_select_db("garantekb",$link) or die("Could not select database");
$query="select * from represent where id_represent=".$firm;
$result = mysql_query($query,$link) or die("Query failed : " . mysql_error());
$row=mysql_fetch_array ($result);
echo "<center><TABLE border=1 class=new cellspacing=0 cellpadding=8>";
//echo "<div id=norm>";
if ($row["firm_name"]<>'') {echo "<tr><td>Название представительства:</td><td> ".$row["firm_name"]."</td></tr>";}
if ($row["phone"]<>'') {echo "<tr><td>Телефон/Факс :</td><td> ".$row["phone"]."</td></tr>";}
if ($row["email"]<>'') {echo "<tr><td>email:</td><td> <a href=mailto:".$row["email"].">".$row["email"]."</a></td></tr>";}
if ($row["www"]<>'') {echo "<tr><td>www:</td><td> <a href=".$row["www"]." target=_blank>".$row["www"]."</a></td></tr>";}
if ($row["address"]<>'') {echo "<tr><td>Адрес:</td><td> ".$row["address"]."</td></tr>";}
if ($row["director"]<>'') {echo "<tr><td>ФИО директора:</td><td> ".$row["director"]."</td></tr>";}
if ($row["contact"]<>'') {echo "<tr><td>ФИО контактного лица:</td><td> ".$row["contact"]."</td></tr>";}
if ($row["city"]<>'') {echo "<tr><td>Город:</td><td> ".$row["city"]."</td></tr><br>";}
//echo "</div>";
echo "</table>";
mysql_free_result ($result);
echo "<br><div id=norm><a href='' onclick=".chr(39)."window.close();".chr(39).">Закрыть это окно</a></div></center>";
echo "</body>";
?>
|
Буду очень признателен за какой-нибудь совет | |
|
|
|
|
|
|
|
для: Mad_Max
(26.10.2004 в 11:35)
| | >'info.php?firm='+id
а зачем тут +?
скорее всего, Java-scripty не нравятся какие-нибудь спецсимволы, которые могут встретиться
в info.php, кавычки или переводы строк. у меня было такое, когда я скрипту давала инфу из
базы. | |
|
|
|
|
|
|
|
для: Mad_Max
(26.10.2004 в 11:35)
| | А какую ошибку пишет? Это ошибка JavaScript или PHP?
У меня Ваша функция JavaScript отработала отлично. Info.php тоже заработал после того, как я подставил свою базу данных и параметры ее подключения.
Может быть ошибка в подключаемых файлах?
//include ("/home/localhost/www/inc/main.init.ini");
//include ("/home/localhost/www/inc/style.inc");
|
Как эсперимент - попробуйте вставить код из этих файлов прямо в код info.php - и посмотреть что выйдет. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(26.10.2004 в 13:17)
| | Спасибо за советы, сейчас попробую | |
|
|
|
|
|
|
|
для: Mad_Max
(27.10.2004 в 10:45)
| | Спасибо за советы. На локальной машине все работает прекрасно. но дело все в том, что аналогичный код не работает на сервере сайта. Причем раньше он там работал, но после того как я у себя переустановил локальные web- и sql- сервера, именно, эти данные из таблицы не хотят подгружаться, хотя другие таблицы работают прекрасно.
А ошибка имеет следующий вид:
500. Внутренняя ошибка
Запрашиваемый документ /reg/info.php не может быть предоставлен в связи с внутренней ошибкой.
Попробуйте начать с заглавной страницы сайта или связаться с его вебмастером.
Вероятной причиной ошибки может быть одна из следующих:
Некорректный скрипт (ошибка компиляции)
Некорректный вывод скрипта (отсутствие заголовка Content-Type)
Права файла скрипта не допускают его выполнение
Некорректная директива в локальном файле конфигурации .htaccess | |
|
|
|
|
|
|
|
для: Mad_Max
(27.10.2004 в 14:23)
| | А вы действительно ничего в .htaccess не запрещали - 500 ошибка... мало вероятно, что на сервере кривое ПО, я её видел только если запрещал лишнего чего в директории .htaccess-ом, да на ASP-хостинге (ну Windows простительно)... | |
|
|
|
|
|
|
|
для: cheops
(27.10.2004 в 16:01)
| | У меня доступ настроен через FTP- клиента,а там скрытые файлы не отображаются. Спасибо за совет, попробую настроить SSH и посмотрю что там творится в этом .htaccess -е. | |
|
|
|
|
|
|
|
для: Mad_Max
(29.10.2004 в 09:15)
| | Странно, вообще большинство FTP-менеджеров скрытые файлы отображает. Если вы сами или другой человек работающий над сайтом не создавали .htaccess - его там скорее всего не будет... | |
|
|
|
|
|
|
|
для: cheops
(29.10.2004 в 09:54)
| | Скорее всего его действительно нет. Может вы могли бы подсказать как правильно настроить файл .htaccess, чтобы ошибка исчезла, тем более, что раньше этого файла тоже не было и все работало нормально. Буду очень благодарен | |
|
|
|
|
|
|
|
для: Mad_Max
(01.11.2004 в 12:36)
| | >Может вы могли бы подсказать как правильно настроить файл .htaccess
Если его нет(htaccess) то ошибка не в нем.
Вам нужно смотреть reg/info.php...
Попробуйте переписать этот файл с нуля. Сначала пусть выполняется пустой файл. Напишите в нем только вывод в браузер
echo "info.php - работает"
|
И постепенно добавлять блоки кода. Таким образом можно определить когда и где именно возникает 500-ая ошибка. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(01.11.2004 в 12:53)
| | Спасибо за совет. Даже при выполнении кода вывода в браузер
echo "info.php - работает";
|
появляется таже 500-ая ошибка.Если менять путь к нему, то ничего не меняется. Может ли быть, что на самом сервере стала недоступным функция для вывода нового окна? | |
|
|
|
|
|
|
|
для: Mad_Max
(01.11.2004 в 15:03)
| | Вот это здорово! :(
Т.е. если вы сами в строке браузера набираете http://server/reg/info.php
И в info.php находится только одна строчка
<?
echo "info.php - работает";
?>
То все равно выдается сообщение об ошибке?
А другие документы с расширением php работают нормально?
>Может ли быть, что на самом сервере стала недоступным функция для вывода нового окна?
Маловероятно, это практически невозможно отследить. Открытие нового окна выполняется ява-скриптом на клиенте и сервер про это ничего не знает. Да и зачем делать такой запрет... | |
|
|
|
|
|
|
|
для: Mad_Max
(01.11.2004 в 15:03)
| | Если ошибка только при открытии нового окна JavaScript-ом, то значит что то не то передается в качестве параметра.
Измените функцию show_info, что посмотреть с каким параметром идет обращение к странице info.php.
function show_info(id)
{
alert("window.open('info.php?firm='"+id+", 'info', 'width=450,height=370,history=no,resizable=no,status=no,scrollbars=yes,
toolbar=no,location=no,menubar=no')");
}
|
А еще попробуйте изменить скрипт вот так:
<script language="JavaScript1.1">
<!--
function show_info(id)
{
url="info.php?firm="+id;
window.open(url, 'info', 'width=450,height=370,history=no,resizable=no,status=no,
scrollbars=yes,toolbar=no,location=no,menubar=no');
}
-->
</script>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(01.11.2004 в 15:56)
| | Не понимаю, почему так происходит, но дело в том, что другие файлы с расширением php работают, но только те, которые там уже есть. То есть когда я передаю файл типа test.php3, который имеет точно такой же код, как файл уже имеющийся на сервере test1.php3 - он не работает (500-ая ошибка), а код файла test1.php3 работает прекрасно. Мой локальный сервер не поддерживает *.php3, но test.php работает. | |
|
|
|
|
|
|
|
для: Mad_Max
(02.11.2004 в 08:14)
| | >Мой локальный сервер не
>поддерживает *.php3, но test.php работает.
Кстати, включить поддержку расширения для PHP-файлов можно, зарегистрировав его расширение в конфигурационном файле apache - httpd.conf, добавив его к списку после директивы AddType application/x-httpd-php
AddType application/x-httpd-php phtml php php3
|
| |
|
|
|
|
|
|
|
для: Mad_Max
(02.11.2004 в 08:14)
| | > но дело в том, что другие файлы с расширением php работают, но только те, которые там уже есть
Раз так, то вполне вероятно, что права файла скрипта не допускают его выполнение. Т.е. те скрипты, что существуют имеют права на выполнение, а те что создаете Вы сами - не имеют оных.
Вам, наверное, нужно выяснить этот вопрос у админов хостинга.
>Мой локальный сервер не поддерживает *.php3, но test.php работает.
Имеется ввиду ваша локальная машина? Или хостинг?
Если речь идет о "домашней" машине, то это легко исправить. В файле настройки Apache httpd.conf нужно изменить строчку, отвечающую за расширения файлов php-скриптов:
AddType application/x-httpd-php phtml php php3
|
Нужные Вам раширения нужно перечислить через пробел. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(02.11.2004 в 10:39)
| | Хорошо, спасибо! | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(02.11.2004 в 10:39)
| | Спасибо большое за помощь! Проблема благополучно разрешилась. Необходимо было в атрибуте передаваемого файла поставить соответствующие параметры! | |
|
|
|
|
|
|
|
для: Mad_Max
(03.11.2004 в 11:59)
| | Права на исполнение, когда вы копируете файл на хостинг? | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(03.11.2004 в 12:46)
| | Да, после копирования файла на сервер, нужно в его атрибутах поставить галочки на право записи, чтения, исполнения (примерно так ххх х-х х-х) | |
|
|
|