Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблемы с каталогом продукции!
 
 автор: sitkar   (21.12.2007 в 15:44)   письмо автору
 
 

Всем добрый день! Скачал с Вашего сайта каталого продукции, поставил. Вроде все нормально. но когда посмотреть даный из базы. то выводить нормально только первый раз. Когда выбираешь другую категорию или подкатегорию, выдает ошибку:

Notice: Undefined variable: categ_id in d:\project\www\catalog\categ.php on line 20

Notice: Undefined variable: sub_id in d:\project\www\catalog\categ.php on line 34

Notice: Undefined variable: sub_id in d:\project\www\catalog\categ.php on line 42

вроде бы там все нормально, никак не могу найти причину. Помогите.
Сам каталог есть в довноадсах

   
 
 автор: antf   (21.12.2007 в 16:31)   письмо автору
 
   для: sitkar   (21.12.2007 в 15:44)
 

Заглушите notic'ы

error_reporting(E_ALL & ~E_NOTICE);

Это просто советы по написанию кода.

   
 
 автор: Unkind   (21.12.2007 в 16:35)   письмо автору
 
   для: antf   (21.12.2007 в 16:31)
 

Заглушать ничего не надо. Надо исправлять.

   
 
 автор: sitkar   (21.12.2007 в 16:38)   письмо автору
 
   для: Unkind   (21.12.2007 в 16:35)
 

Я не вижу что там исправлять. Там вроде все нормально. Идет стандартный запрос к базе. Ичего серйозного. Если есть предложение что и где исправить с удовольствием выслушаю

   
 
 автор: Unkind   (21.12.2007 в 16:48)   письмо автору
 
   для: sitkar   (21.12.2007 в 16:38)
 

Лень лезть в downloads, искать тот каталог и нужный файл. Выложите тут часть кода.

   
 
 автор: sitkar   (21.12.2007 в 17:20)   письмо автору
 
   для: Unkind   (21.12.2007 в 16:48)
 

[поправлено модератором: объемные файлы лучше прикреплять в виде архива]

   
 
 автор: Unkind   (21.12.2007 в 17:40)   письмо автору
 
   для: sitkar   (21.12.2007 в 17:20)
 

Грязный код...
Я бы посоветовал не использовать скрипт, в противном случае переписывать.
Автор позволяет делать такие небрежности, как "while ($category[]=mysql_fetch_array($result, MYSQL_ASSOC)){}", где $category - неопределенная переменная. И это при том, что код написан для register_globals = on. Тут где-нибудь таким образом может нарисоваться уязвимость.

Переписывается примерно так:
<?php
$id 
= isset( $_GET['id'] ) ? (int) $_GET['id'] : 0;

$query "SELECT * FROM `categ` WHERE `id` = " $id ";"

if( !(
$result mysql_query($query$aDBLink)) )
{
    die( 
'Failure: ' mysql_error() . ', File: ' __FILE__ ', Line: ' __LINE__ );
}

if( 
mysql_num_rows($result) < )
{
    
// Тут можно поставить переадресацию в корень каталога
    
die( 'Section does not exist' );
}

$category = array();
while( 
$category[] = mysql_fetch_assoc($result) )
{
    
// ...
}

// И так далее
?>

   
 
 автор: sim5   (21.12.2007 в 17:42)   письмо автору
 
   для: sitkar   (21.12.2007 в 17:20)
 

Здесь:

if (@!$_GET['categ_id']) //заглушен вывод предупрежедния, если нет запроса 
    { 
    .....
    //переменная $categ_id будет инициализирована только тогда,
    //когда придет соответствующий запрос из меню   
    $categ_id=$aRow["categ_id"]; 
    }
    //но далее вне условия проверки, идет обращение к этой переменной
    $query = "SELECT * FROM subcat WHERE categ_id='$categ_id'";

Аналогично и далее.

   
 
 автор: Unkind   (21.12.2007 в 17:48)   письмо автору
 
   для: sim5   (21.12.2007 в 17:42)
 

Но ведь это уязвимость. Если уж код и написан для RG = on, то и работать надо только с одними и теме же переменными. Нужно приводить $categ_id получать из $_GET['categ_id'] и приводить к integer. Собственно, Вы забыли это сказать.

   
 
 автор: sim5   (21.12.2007 в 18:07)   письмо автору
 
   для: Unkind   (21.12.2007 в 17:48)
 

Да нет, просто и не хотел говорить, а единственно указать то место - "почему". Просто меня "бесит", когда советуют просто подавить эти предупреждения и забыть о них, а что за этой "безобидностью" может скрываться... Хотя нет, не бесит, на форуме это как "философия", пусть будет так. :)

   
 
 автор: sitkar   (21.12.2007 в 19:03)   письмо автору
 
   для: sim5   (21.12.2007 в 17:42)
 

И что можно придумать что бы выправлять пришлось поменьше. Вариант Unkind сейчас разбираю и пробую переписать скрипт. Но еще советы будут полезны.

   
 
 автор: sim5   (21.12.2007 в 20:03)   письмо автору
 
   для: sitkar   (21.12.2007 в 19:03)
 

Ну чтобы "выправлять" поменьше, примите конечно этот вариант - error_reporting(E_ALL & ~E_NOTICE), править вообще ничего не надо.
Либо вы будете задумываться над скриптом (ищите на форуме темы о защите кода) в ущерб времени, либо примите все как есть, экономя время, - выбирать вам.

   
 
 автор: sitkar   (21.12.2007 в 22:23)   письмо автору
 
   для: sim5   (21.12.2007 в 20:03)
 

Спасибо за совет! Я так и сделаю! Лучше один раз хорошо разобратся с етим всем чем потом мучится!

   
 
 автор: sim5   (21.12.2007 в 16:53)   письмо автору
 
   для: Unkind   (21.12.2007 в 16:35)
 

Согласен, с вами. Мало того, что РНР "небрежен", так еще советовать тому кто не понимает о чем предупрждение и почему, подавить все, забыть и не думать об этом.

   
 
 автор: Faraon   (21.12.2007 в 21:01)   письмо автору
 
   для: antf   (21.12.2007 в 16:31)
 

Интересно! antf Вы же вроде разработчик CMS, которая представлена на сайте Softtime.
И Вы говорите о подавлении ошибок, которые действительно надо исправлять и думать почему эта ошибка возникла.

P.S. Вы наверно не сталкивались с компилируемыми языками :)

   
 
 автор: antf   (21.12.2007 в 21:30)   письмо автору
 
   для: Faraon   (21.12.2007 в 21:01)
 

Я учился на скриптах Softtime, а они советуют подавлять эти ошибки. В общем я это тоже перенял.

Не понимаю, откуда такая любовь к notic'ам. Это же просто советы. В общем зависит от стиля разработчика. Хотя я всегда пишу под register globals = off

PS Сталкивался, только довольно давно.

   
 
 автор: Faraon   (21.12.2007 в 21:40)   письмо автору
 
   для: antf   (21.12.2007 в 21:30)
 

>PS Сталкивался, только довольно давно.
Вот и зря, там компилятор поблажек Вам не даст :)
И еще раз их надо исправлять, а не подавлять

   
 
 автор: Unkind   (21.12.2007 в 22:53)   письмо автору
 
   для: antf   (21.12.2007 в 21:30)
 

> Я учился на скриптах Softtime, а они советуют подавлять эти ошибки
Программисты, достигшие уровня SoftTime'овцев, могут позволить себе подавлять Notice - там они могут появится только в случае неопределенных переменных, значения которых всё же далее проверяется. Если что-то не так - работа скрипта останавливается, либо это никак не мешает работе скрипта в дальнейшем.
Ко всему прочему, они выкладывают скрипты, готовые к установке на любой сайт без дополнительной отладки. Там действительно можно (и даже нужно) отключать ошибки вообще, не говоря от Notice.

> Это же просто советы
Не слушать советы бывает очень опасно.

> В общем зависит от стиля разработчика
Да, стили бывают неважные и нормальные.

   
 
 автор: antf   (21.12.2007 в 23:21)   письмо автору
 
   для: Unkind   (21.12.2007 в 22:53)
 

>>Не слушать советы бывает очень опасно.

Хорошо, пойдем по другому пути. Каким образом Notice "Undefined variable" может сказаться на работоспособности и безопасности скрипта при условии, что он заглушен?

Посмотрите третье сообщение cheops'а в теме:

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=45985

   
 
 автор: Unkind   (21.12.2007 в 23:38)   письмо автору
 
   для: antf   (21.12.2007 в 23:21)
 

Не сам Notice может стать причиной появление уязвимости. А его игнорирование. Особенно нехорошо это советовать новичкам. И не надо тыкать пальцем в cheops'а. Я могу спокойно в этом с ним не согласиться. Он же не фараон :)

На примере этого безобразного скрипта:

<?php
// ...
if (@!$_GET['categ_id']) //заглушен вывод предупрежедния, если нет запроса  
    
{  
    ..... 
    
//переменная $categ_id будет инициализирована только тогда, 
    //когда придет соответствующий запрос из меню    
    
$categ_id=$aRow["categ_id"];  
    } 
    
//но далее вне условия проверки, идет обращение к этой переменной 
    
$query "SELECT * FROM subcat WHERE categ_id='$categ_id'";
// ...
?>


Что-то вроде

POST /script.php?categ_id=1 HTTP/1.0
Host: example.com
Content-type: Content-Type: application/x-www-form-urlencoded
Content-Length: 80

categ_id=0+UNION+SELECT+user_id%2Cusername%2Cpassword%2C0%2C...+FROM+%60users%60

   
 
 автор: antf   (22.12.2007 в 00:07)   письмо автору
 
   для: Unkind   (21.12.2007 в 23:38)
 

В свое время я принял это мнение как авторитетное (под свою ответственность). Иногда имеет смысл сделать это, чем копаться в противоречивых мнениях на этот счет. При условии, что игнорирование notic'ов не приведет к неработоспособности моих приложений.

   
 
 автор: Trianon   (22.12.2007 в 00:35)   письмо автору
 
   для: antf   (22.12.2007 в 00:07)
 

> При условии, что игнорирование notic'ов не приведет к неработоспособности моих приложений.

Лишь до тех пор, пока они остаются исключительно Вашими.
Но Вы же их как open source позиционируете?

   
 
 автор: antf   (22.12.2007 в 00:53)   письмо автору
 
   для: Trianon   (22.12.2007 в 00:35)
 

Да, но и в чем вопрос? Все зависит от конкретного разработчика.

   
 
 автор: antf   (22.12.2007 в 00:57)   письмо автору
 
   для: antf   (22.12.2007 в 00:53)
 

Даже создатели php не столь категоричны на этот счет. Из мануала:

Enabling E_NOTICE during development has some benefits. For debugging purposes:
NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.

   
 
 автор: antf   (22.12.2007 в 01:20)   письмо автору
 
   для: antf   (22.12.2007 в 00:57)
 

Поясню еще раз смысл цитаты из мануала. Я имею в виду ее тон: это рекомендация, а не требование.

   
 
 автор: antf   (22.12.2007 в 01:36)   письмо автору
 
   для: antf   (22.12.2007 в 01:20)
 

Насчет новичков Unkind может быть и прав. Хотя я не знаю насколько велика роль notic'ов в предотвращении глюков и дыр.

   
 
 автор: cheops   (22.12.2007 в 13:46)   письмо автору
 
   для: Unkind   (21.12.2007 в 22:53)
 

>> Это же просто советы
>Не слушать советы бывает очень опасно.
Разработчики PHP вместо того, чтобы давать советы, как обходить возможные дыры, которые они сами провоцируют - лучше бы язык проектировали более тщательно, чтобы таких моментов не возникало.

Лично я не собираюсь, усложнять и снижать читабельность кода проверками isset() и @ только ради того, чтобы подавить вывод совета - если об снижении дыроопасности не позаботились разработчики PHP, я позабочусь об этом самостоятельно - но и советовать мне после этого ничего не следует. Вы можете открыть phpMyAdmin или любой другой свободно-распространяемый продукт и увидите в начале строку
<?php
  Error_Reporting
(E_ALL & ~E_NOTICE);
?>

Я сейчас поступаю точно также - это строка позволяет спокойно работать и знать, что советы не вылезут, даже если полоумный администратор включит их отображение. Отмечу, что так поступают подавляющее большинство разработчиков свободно-распространяемых программ. Вы не увидите в phpMyAdmin Notice не потому, что нет мест, где бы они могли возникнуть - их там полно - просто вывод подавляется.

   
 
 автор: Unkind   (22.12.2007 в 14:25)   письмо автору
 
   для: cheops   (22.12.2007 в 13:46)
 

Опять же phpMyAdmin - проверенный, отлаженный скрипт. Я сам после написания скрипта отключаю показ всех ошибок - и не только Notice. Но советовать новичкам делать тоже самое по моему мнению ошибочно. Новички - они же не пишут еще скриптов на уровне phpMyAdmin.
Им просто прописано работать в debug режиме. Если они ошибутся где-то в написании имени переменной или что-нибудь в этом духе - потом будут ломать голову над тем что не так.

   
 
 автор: cheops   (23.12.2007 в 00:21)   письмо автору
 
   для: Unkind   (22.12.2007 в 14:25)
 

Так никто и не советует - программист сам выбирает режим своей работы, удобно ему включать режим отображения замечаний и подгонять под него - код наздоровье, уверен он, что самостоятельно защитит код от дырок, можно отключить сразу - чтобы замечания не мешали работать.

   
 
 автор: Unkind   (23.12.2007 в 00:52)   письмо автору
 
   для: cheops   (23.12.2007 в 00:21)
 

> Так никто и не советует

Конкретно в этой теме:
sitkar: "... никак не могу найти причину. Помогите"
antf: "Заглушите notic'ы ..."

Именно советуют сразу отрубить Notice'ы и не вникать в то, чем они вызваны. Будет писать свой скрипт - отрубит Notice и застрянет. Лично когда пишу код я, то примерно 60% ошибок - Notice. Хотя я пишу код так, чтобы их не было. То есть это какие-то опечатки при написании имени константы/переменной, неверный алгоритм кодирования, при котором идет обращение к несуществующим элементам массива и прочее, прочее, прочее.

   
 
 автор: antf   (23.12.2007 в 13:00)   письмо автору
 
   для: Unkind   (23.12.2007 в 00:52)
 

Если человек сам не научиться защищать свой код, ничего ему не поможет. Для это есть специальные статьи, а не notic'ы. К слову в php4 (с которого я начинал и работал с ним долгое время) они были по умолчанию отключены.

PS По-моему человек просто хотел установить каталог или я ошибаюсь?

   
 
 автор: antf   (23.12.2007 в 13:05)   письмо автору
 
   для: antf   (23.12.2007 в 13:00)
 

>>Будет писать свой скрипт - отрубит Notice и застрянет.

Что-то мне подсказывает, что как раз с ними-то он и застрянет...

   
 
 автор: sim5   (23.12.2007 в 13:22)   письмо автору
 
   для: antf   (23.12.2007 в 13:00)
 

Не согласен с вами. Разговор ведь не идет о вас, знающим суть проблемы, а о человеке, который этого не понимает. В конкретном случае скрипт нельзя назвать безупречным, а посоветовать закрыть глаза на предупреждения, значит заведомо не обратить внимания на куда более серьезные проблемы, которые могут быть. Значит надо севетовать такому человеку читать что-то, а не блокировать вывод, причем даже не разъясняя почему.

   
 
 автор: sitkar   (24.12.2007 в 14:25)   письмо автору
 
   для: sim5   (23.12.2007 в 13:22)
 

Всем добрый день! Ребята проблема не в том что бы заглушить или не заглушить нотисы (хотя и в этом тоже), а в том что этот каталог работает неправильно! Если заглушить нотисы то вместо информации которая выводится из БД , выводится пустое место!
Мне так кажеться что надо бы исправить этот скрипт и заменить существующий вариант каталога. Пока мне этот еще не удалось сделат. поскольку я новичок в ПХП и не могу очень быстро разбирать чужие коды.

   
 
 автор: sitkar   (28.12.2007 в 12:39)   письмо автору
 
   для: sitkar   (24.12.2007 в 14:25)
 

Всем добрый день. Теперь есть другая проблема с этим каталогом: в админке вообще не возможно что то сделать, просто оно не работает и выдает:
Notice: Undefined variable: PHP_SELF in d:\project\www\admin\catalog\catalog.php on line 43

Notice: Undefined variable: PHP_SELF in d:\project\www\admin\catalog\catalog.php on line 49

Notice: Undefined variable: PHP_SELF in d:\project\www\admin\catalog\catalog.php on line 51



<?
  
///////////////////////////////////////////////////
  // Блок "Каталог"
  // 2005 (C) Выскорко М.С. (aspid02@ngs.ru)
  ///////////////////////////////////////////////////
print    "<div align=right valign=top>
            <img src=../images/admin/q.gif align=absmiddle>&nbsp;<a class=menu href='#' onClick=window.open('../admin/help/cat_admin.html','','resizable=yes,scrollbars=yes,width=600')>Как администрировать каталог</a>&nbsp;&nbsp;
        </div>"
;

?>
<table width="100%">
<tr>
    <td valign="top">
    <a href="<?print $PHP_SELF;?>?p=catalog&act=creat_cat" class="menu"><img src="../images/admin/new2.gif" align="absmiddle" border="0">&nbsp;Создать новый каталог</a>&nbsp;&nbsp;&nbsp;
    <a href="<?print $PHP_SELF;?>?p=catalog&act=import" class="menu"><img src="../images/admin/import.gif" align="absmiddle" border="0">&nbsp;Импорт каталога</a>
    </td>
</tr>
</table>

<?

$query 
"SELECT * FROM cat";
$result=mysql_query$query,  $aDBLink);
while (
$catalog[]=mysql_fetch_array($resultMYSQL_ASSOC)){}

print    
"<table align=center width='600'>
            <tr>
                <td colspan=6 align=center>
                <h3 class='bor_bot'>Каталоги:</h3>
                </td>
            </tr>"
;
$width=490-$w_pic;
$width2=430-$w_pic;
for(
$i=0;$i<count($catalog)-1;$i++)
    {
    print    
"    <tr>

                    <td rowspan=2 valign=top>
                    <img src='../images/info/catalog/"
.$catalog[$i]["img"]."' height=\"$h_pic\" width=\"$w_pic\" class=bor>
                    </td>

                    <td width=\"
$width\" colspan=2 class=\"bor_bot\" valign=\"bottom\">
                    <a href='
$PHP_SELF?p=catalog&act=category&id=".$catalog[$i]["id"]."' class='calendar'><b>
                    "
.$catalog[$i]["catalog"]."
                    </b></a>
                    </td>

                    <td rowspan=2 valign=\"middle\" width='110'>
                    <a href=\"
$PHP_SELF?p=catalog&act=edit_info&id=".$catalog[$i]["id"]."\" class='calendar'>
                    <img src=\"../images/admin/edit.gif\" height=\"16\" width=\"16\" border=\"0\" alt=\"сменить название, описание, картинку\"> редактировать</a><br>
                    <a href=\"
$PHP_SELF?p=catalog&act=add_new_catalog&act2=del&id=".$catalog[$i]["id"]."\" class='calendar'>
                    <img src=\"../images/admin/del.gif\" height=\"16\" width=\"16\" border=\"0\" alt=\"удалить\" > удалить</a>
                    </td>


                </tr>
                <tr>

                    <td width='60' align=right valign=top>описание:</td>

                    <td style='color: #666699' width=\"
$width2\" valign=\"top\">
                    "
.$catalog[$i]["description"]."
                    </td>

                </tr>"
;
    }
print    
"</table>";

?>

   
 
 автор: sim5   (28.12.2007 в 12:43)   письмо автору
 
   для: sitkar   (28.12.2007 в 12:39)
 

Замените на - $_SERVER['PHP_SELF']

   
 
 автор: sitkar   (28.12.2007 в 13:02)   письмо автору
 
   для: sim5   (28.12.2007 в 12:43)
 

Попробовал заменить только эти три строчки, а потом все где встречался PHP_SELF. В итоге выдает такую ошибку:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in d:\project\www\admin\catalog\catalog.php on line 43

   
 
 автор: Faraon   (28.12.2007 в 13:17)   письмо автору
 
   для: sitkar   (28.12.2007 в 13:02)
 

Ваша 43 -я строка должна выглядить так

<a href='".$_SERVER['PHP_SELF']."?p=catalog&act=category&id=".$catalog[$i]["id"]."' class='calendar'><b>     

И другие аналогичные тоже.

   
 
 автор: sitkar   (28.12.2007 в 13:25)   письмо автору
 
   для: Faraon   (28.12.2007 в 13:17)
 

Одну точку пропустил, сейчас у меня так и выглядит, но теперь ошибка с ?:
Parse error: parse error, unexpected '?' in d:\project\www\admin\catalog\catalog.php on line 43

<?
  
///////////////////////////////////////////////////
  // Блок "Каталог"
  // 2005 (C) Выскорко М.С. (aspid02@ngs.ru)
  ///////////////////////////////////////////////////
print    "<div align=right valign=top>
            <img src=../images/admin/q.gif align=absmiddle>&nbsp;<a class=menu href='#' onClick=window.open('../admin/help/cat_admin.html','','resizable=yes,scrollbars=yes,width=600')>Как администрировать каталог</a>&nbsp;&nbsp;
        </div>"
;

?>
<table width="100%">
<tr>
    <td valign="top">
    <a href="<?print $PHP_SELF;?>?p=catalog&act=creat_cat" class="menu"><img src="../images/admin/new2.gif" align="absmiddle" border="0">&nbsp;Создать новый каталог</a>&nbsp;&nbsp;&nbsp;
    <a href="<?print $PHP_SELF;?>?p=catalog&act=import" class="menu"><img src="../images/admin/import.gif" align="absmiddle" border="0">&nbsp;Импорт каталога</a>
    </td>
</tr>
</table>

<?

$query 
"SELECT * FROM cat";
$result=mysql_query$query,  $aDBLink);
while (
$catalog[]=mysql_fetch_array($resultMYSQL_ASSOC)){}

print    
"<table align=center width='600'>
            <tr>
                <td colspan=6 align=center>
                <h3 class='bor_bot'>Каталоги:</h3>
                </td>
            </tr>"
;
$width=490-$w_pic;
$width2=430-$w_pic;
for(
$i=0;$i<count($catalog)-1;$i++)
    {
    print    
"    <tr>

                    <td rowspan=2 valign=top>
                    <img src='../images/info/catalog/"
.$catalog[$i]["img"]."' height=\"$h_pic\" width=\"$w_pic\" class=bor>
                    </td>

                    <td width=\"
$width\" colspan=2 class=\"bor_bot\" valign=\"bottom\">
                    <a href='"
.$_SERVER['PHP_SELF'].?p=catalog&act=category&id=".$catalog[$i]["id"]."' class='calendar'><b>
                    ".$catalog[$i]["catalog"]."
                    </b></a>
                    </td>

                    <td rowspan=2 valign=\"middle\" width='
110'>
                    <a href=\".$_SERVER['
PHP_SELF'].?p=catalog&act=edit_info&id=".$catalog[$i]["id"]."\" class='calendar'>
                    <img src=\"../images/admin/edit.gif\" height=\"16\" width=\"16\" border=\"0\" alt=\"сменить название, описание, картинку\"> редактировать</a><br>
                    <a href=\".$_SERVER['
PHP_SELF'].?p=catalog&act=add_new_catalog&act2=del&id=".$catalog[$i]["id"]."\" class='calendar'>
                    <img src=\"../images/admin/del.gif\" height=\"16\" width=\"16\" border=\"0\" alt=\"удалить\" > удалить</a>
                    </td>


                </tr>
                <tr>

                    <td width='
60' align=right valign=top>описание:</td>

                    <td style='
color#666699' width=\"$width2\" valign=\"top\">
                    
".$catalog[$i]["description"]."
                    
</td>

                </
tr>";
    }
print    "
</table>";

?>

   
 
 автор: Unkind   (28.12.2007 в 13:44)   письмо автору
 
   для: sitkar   (28.12.2007 в 13:25)
 

<a href='".$_SERVER['PHP_SELF']. "?p=catalog&act=category&id=".$catalog[$i]["id"]."' class='calendar'><b>

   
 
 автор: sitkar   (28.12.2007 в 13:56)   письмо автору
 
   для: Unkind   (28.12.2007 в 13:44)
 

Спасибо помогло, но толку с этого мало. Там вообще тупо написано. Одним словом надо все переделывать. Теперь не выдает ошибок но и ничего не делает. Надо просматривать все остальные файлы. :((

   
 
 автор: sitkar   (28.12.2007 в 17:56)   письмо автору
 
   для: sitkar   (28.12.2007 в 13:56)
 

Насколько я понял то эта строка должна переадресовать меня на страницу для создания каталога. Но вопрос почему это не делается?
<a href="<?print $PHP_SELF;?>?p=catalog&act=creat_cat" class="menu"><img src="../images/admin/new2.gif" align="absmiddle" border="0">&nbsp;Создать новый каталог</a>&nbsp;&nbsp;&nbsp;

   
 
 автор: sim5   (28.12.2007 в 18:18)   письмо автору
 
   для: sitkar   (28.12.2007 в 17:56)
 

Во-первых $_SERVER["PHP_SELF"], во-вторых print $_SERVER["PHP_SELF"] поместит имя текущего скрипта в url, а у вас имя скрипта создающего каталог какое?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования