Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Передача в переменной имени переменной и ее значение

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Varan
Отправлено: 20 Августа, 2012 - 19:34:22
Post Id



Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Нояб. 2011  
Откуда: Украина г.Краматорск


Помог: 1 раз(а)




Возможно название темы звучит некорректно, попробую объяснить что именно нужно.
Делаю функцию которая отвечает за вывод сообщения об ошибке, переменная ошибки передается в $_SESSION. Сейчас использую код типа
PHP:
скопировать код в буфер обмена
  1.  
  2. function error_forms($text_error)
  3. {
  4. echo "<div id = 'errorsforms'><img src='img_pattern/Error.png' alt='Error.png, 46kB' title='Error' height='50' width='50'><p> $text_error </p></div> ";
  5. }
  6.  
  7. if (isset($_SESSION[error_title])){
  8.     error_forms($_SESSION[error_title]);
  9.     unset ($_SESSION[error_title]);}
  10.  

тоесть если переменная об ошибке в сессии присутствует , то функция выведет сообщение об ошибке, а затем уничтожится переменная сессии. Но как-то это все сильно получается закручено и хотелось бы упростить код таким образом чтобы все это делала 1 функция и код бы в файле имел вид
PHP:
скопировать код в буфер обмена
  1.  
  2. error_forms($_SESSION[error_title]);
  3.  


тоесть функция примет примерный вид
PHP:
скопировать код в буфер обмена
  1.  
  2. function error_forms($var)
  3. {
  4.     if (isset($var))
  5.     {
  6.      echo "<div id = 'errorsforms'><img src='img_pattern/Error.png' alt='Error.png, 46kB' title='Error' height='50' width='50'><p> $var </p></div> ";
  7.    unset ($var);
  8.     }
  9. }
  10.  


короче загвоздка в unset ($var); мне то необходимо будет уничтожить не переданное значение, а именно $_SESSION[error_title] ну или другую подобную переменную сессии .

надеюсь вопрос понятно написал, всем заранее спасибо за любую помощь.

(Отредактировано автором: 20 Августа, 2012 - 19:36:19)

 
 Top
KingStar
Отправлено: 20 Августа, 2012 - 20:08:41
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




а


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Varan
Отправлено: 20 Августа, 2012 - 20:23:38
Post Id



Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Нояб. 2011  
Откуда: Украина г.Краматорск


Помог: 1 раз(а)




KingStar пишет: а

именно так и нужно, но каким образом мне передать в функцию именно имя переменной которую передали в функцию
тоесть в функцию я могу передать $_SESSION[error_title] или скажем $_SESSION[fignia]
каким образом внутри функции мне получить имя переданной переменной ?
блин незнаю как объяснит , короче
нужно что-то типо (конечно полный бред, но думаю так будет понятнее что я хочу)

чтобы в итоге получить
unset($_SESSION[error_title]); и уничтожить именно ту переменную сессии, которую передал в функцию
 
 Top
KingStar
Отправлено: 20 Августа, 2012 - 20:29:14
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




а что мешает просто
???

(Отредактировано автором: 20 Августа, 2012 - 20:32:31)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
Varan
Отправлено: 20 Августа, 2012 - 20:35:44
Post Id



Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Нояб. 2011  
Откуда: Украина г.Краматорск


Помог: 1 раз(а)




KingStar пишет:
а что мешает просто
???


убить всю сессию ??? нет, в сессии достаточно много переменных которые трогать ненужно
убить в данном случае нужно только ту переменную с которой отработала функция
 
 Top
KingStar
Отправлено: 20 Августа, 2012 - 20:41:36
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




ну тогда тебе нужно определится с названием (или названиями) и удалять в цикле именно по названию, внутри функции ты не получишь имя переданной переменной


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Мелкий Супермодератор
Отправлено: 20 Августа, 2012 - 20:46:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Передавайте в функцию имя ключа массива сессии.


-----
PostgreSQL DBA
 
 Top
Varan
Отправлено: 20 Августа, 2012 - 20:50:29
Post Id



Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Нояб. 2011  
Откуда: Украина г.Краматорск


Помог: 1 раз(а)




кое что придумал, но опять же не то, что изначально хотел, хотя упростить все таки получилось.
вместо переменной в функцию передаю имя переменной в строковом виде
PHP:
скопировать код в буфер обмена
  1.  
  2. function error_forms1($var)// подумать над передачей названия переменной
  3. {
  4. if (isset($_SESSION[$var]))
  5.     {
  6.     echo "<div id = 'errorsforms'><img src='img_pattern/Error.png' alt='Error.png, 46kB' title='Error' height='50' width='50'><p>$_SESSION[$var] </p></div> ";
  7.         unset ($_SESSION[$var]);
  8.     }
  9. }
  10.  
  11. // вызов функции получил вид
  12. error_forms1('error_title');
  13.  

(Добавление)
Мелкий пишет:
Передавайте в функцию имя ключа массива сессии.

спасибо!! именно так и поступил

(Отредактировано автором: 20 Августа, 2012 - 20:51:52)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB