Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт не хочет работать со скрытой переменной, или я не знаю как ему это объяснить 
:(
    Опции темы
Alinabagi
Дата 12.12.2005, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 2.9.2004

Репутация: нет
Всего: нет



Здравствуйте, я только-только начинаю учиться PHP. Учусь с помощью уроков с сайта http://kurepin.ru/. Дело в том, что на их форум я почему-то не могу попасть, поэтому задаю свой вопрос вам.

по нажатию на ссылку меню "добавить" у меня открывается скрипт add.php, где в строку ввода нужно ввести название новой рубрики и добавить по нажатию на кнопку. Ниже я приведу его код. Насколько я понимаю, задается скрытая переменная post, в которой хранится информация о нажатие или ненажатии кнопки. В моем случае при запуске скрипта выводится ошибка
"Notice: Undefined variable: post in z:\home\ersteprobe.ru\www\admin\cat\add.php on line 7"
Не могу понять, почему же она не определяется. Если в классе-предке прописать эту переменную, то сообщение все равно выводится.

Код

<?
  require("/home/ersteprobe.ru/req/in.class");

  $my=new class_in;
  $my->sql_connect();

  if($post=="Y")
  {
   $my->in_cat_name=$cat_name;
   $err=$my->in_cat_add();
   if($err) 
   {
    $my->error=$my->err_to_html($err);
   }else
   {
    $my->error=$my->ok_to_html("рубрика '".$my->in_cat_name."' успешно добавлена");
    unset($cat_name);
   }
  }

  include($my->PATH_INC."/top.inc");
  include($my->PATH_INC."/adv_top.inc");
  include($my->PATH_INC."/navigator.inc");
  flush();

?>

<table width="100%" cellspacing="0" cellpadding="3">
<tr>
    <td valign=top>
        <b>Добавление новой рубрики</b><br>
        <br>
        <form action=<? $PHP_SELF; ?> method="post">
        <input type=HIDDEN name="post" value="Y">
        <input type=TEXT name="cat_name" value=<? echo $my->cat_name; ?>>
                  <input type="submit" value="добавить">
        </form>
    </td>

    <td width=200 bgcolor=#eeeeee valign=top>
        <b>администратор</b><br>
        <br>
        <? include($my->PATH_INC."/menu_admin.inc");?><br>
        <br>
        <b>главное меню</b><br>
        <b><? include($my->PATH_INC."/main_menu.inc");?></b><br>
        <br>
    </td>

</tr>
</table>



Помогите, пожалуйста!
PM MAIL   Вверх
Mal Hack
Дата 12.12.2005, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Alinabagi @ 12.12.2005, 17:36)
Если в классе-предке прописать эту переменную, то сообщение все равно выводится.

В классе, значит обращение должно быть $object -> post, а не просто $post
PM ICQ   Вверх
Alinabagi
Дата 12.12.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 2.9.2004

Репутация: нет
Всего: нет



Хорошо. Если я прописываю в предке эту post, а в скрипте потом пишу $my->post, то сообщение об ошибке уходит. Но разве в этом случае скрипт поймет, что эта post и есть та самая скрытая переменная?

В моем случае теперь ничего не происходит. Нажимаю ли я "добавить" или не нажимаю. Ничего не добавляется. Возможно, потому что эта самая post и cat_name прописаны в классе-предке? и браузер не заносит значение в cat_name?

А ф-ции добавления у меня следующие: (в предке находятся)
Код

function in_cat_add_check() 
{
 $this->in_cat_name=AddSlashes($this->in_cat_name);
 if(strlen($this->in_cat_name)==0) return(21);
 if(strlen($this->in_cat_name)>50) return(22);

 $this->sql_res="select c_id from tbl_cats where c_name='".$this->in_cat_name."'"; 
 $this->sql_execute();
 if($this->sql_err) return(11);
 if(mysql_num_rows($this->sql_res)) return(23);

 return(0);
}

function in_cat_add()
{
 $err=$this->in_cat_add_check();
 if($err) return($err);

 $this->sql_query="insert into tbl_cats(c_name) values('".$this->in_cat_name."')";
 $this->sql_execute();
 if($this->sql_err) return(11);

 return(0);
} 

PM MAIL   Вверх
Alinabagi
Дата 12.12.2005, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 2.9.2004

Репутация: нет
Всего: нет



Смотрите, если я хочу описать переменную, например, $cat_name (или post) в этом скрипте, то я опять-таки получаю ошибку
Код

 <?
  require("/home/ersteprobe.ru/req/in.class");
  
  global $PHP_SELF;
 
  var $cat_name;
  
  $my=new class_in;
  $my->sql_connect();



Parse error: parse error, unexpected T_VAR in z:\home\ersteprobe.ru\www\admin\cat\add.php on line 6

Почему?
PM MAIL   Вверх
Mal Hack
Дата 12.12.2005, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Alinabagi прочитай внимательно про синтаксис использования объектов.
http://ru.php.net/manual/ru/language.oop.php
http://ru.php.net/manual/ru/language.oop5.php
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.