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]   

> Без описания
Forsakenrox
Отправлено: 12 Марта, 2015 - 22:38:02
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2015  


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




Здравствуйте!
Незнаю, сталкивались вы с таким или нет, но мне необходимо давать странице имя в соответствии с открытой страницей. Вот код:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. echo $pageinfo;
  5.  
  6. $section = secure_string($_GET['section']);
  7. switch($section)
  8. {
  9.         case "tarifs":
  10.         {
  11.             $pageinfo = "Тарифы"
  12.         } exit;
  13. }
  14. ?>
  15.  

и так далее.
Дело в том, что $pageinfo выдаёт пустое значение т.к. он ещё не успел быть объявленным, но в html коде непременно требуется выводить название выше самого кейса. Как быть ?

(Отредактировано автором: 12 Марта, 2015 - 22:40:03)

 
 Top
Ts.Saltan
Отправлено: 12 Марта, 2015 - 22:42:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


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




Так а что мешает перенести определение переменной $pageinfo до вывода html?
 
 Top
Forsakenrox
Отправлено: 12 Марта, 2015 - 22:43:35
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2015  


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




Мешает то, что сам case находится в теле страницы, и выведи я его выше $pageinfo весь контент начнёт отображаться гораздо выше предназначеной для этого области

(Отредактировано автором: 12 Марта, 2015 - 22:44:02)

 
 Top
Ts.Saltan
Отправлено: 12 Марта, 2015 - 22:52:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


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




Ну так до вывода html поставьте case, рапихайте результат по переменным а в html уже выводите эти переменные

(Отредактировано автором: 12 Марта, 2015 - 22:53:05)

 
 Top
GoDr
Отправлено: 13 Марта, 2015 - 09:44:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


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




Не совсем понятно... зачем сначала выводить HTML, а потом уже делать все преобразование в PHP , Т.е. я сначала поехал на машине, а потом колёса прикрутил Радость

тебе всего то нужно перенести


PHP:
скопировать код в буфер обмена
  1. $section = secure_string($_GET['section']);
  2.  
  3. switch ($section) {
  4.     case "tarifs": {
  5.         $pageinfo = "Тарифы";
  6.         break;
  7.     }
  8. }
  9. echo $pageinfo;


-----
Система управления веб-содержимым Lotos CMS
 
 Top
DelphinPRO
Отправлено: 13 Марта, 2015 - 11:47:04
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




Forsakenrox пишет:
Мешает то, что сам case находится в теле страницы, и выведи я его выше $pageinfo весь контент начнёт отображаться гораздо выше предназначеной для этого области


Сначала обрабатывайте данные, потом их выводите
Особенности написания кода новичками


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Forsakenrox
Отправлено: 13 Марта, 2015 - 19:46:34
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2015  


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




Спасибо, помогли. Реализовать такое возможно было только функцией с последующим к ней обращением.
 
 Top
GoDr
Отправлено: 14 Марта, 2015 - 06:48:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


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




Forsakenrox пишет:
Спасибо, помогли. Реализовать такое возможно было только функцией с последующим к ней обращением.
Мне прям очень хочется посмотреть на этот код, который имеет только это решение Хорошо


-----
Система управления веб-содержимым Lotos CMS
 
 Top
lastdays
Отправлено: 14 Марта, 2015 - 19:55:25
Post Id



Частый гость


Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013  


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




Зачем городить switch case ?

PHP:
скопировать код в буфер обмена
  1.  
  2. //- Начало документа
  3. $index = array (
  4.    'index'=>' Главная' ,
  5.    'services'=>'Сервисы',
  6.    'contact'=>'Контакты'
  7. );
  8.  
  9. $action = isset ($_GET["action"]) ? trim($_GET["action"]) : 'index';
  10.  
  11. // в том случае, если в массиве нет совпадений
  12. if ( !isset($index[$action]) )  $action = 'index';
  13.  
  14.  
  15. /*
  16. * Какой то код
  17. * Какой то код
  18. * Какой то код
  19. * Какой то код
  20. * Какой то код
  21. */
  22.  
  23. print_r($index[$action]);
  24.  
  25.  

(Отредактировано автором: 14 Марта, 2015 - 19:56:36)

 
 Top
GoDr
Отправлено: 15 Марта, 2015 - 10:20:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


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




lastdays пишет:
Зачем городить switch case ?
Не совсем верно. Наверное в switch формируется не только заголовок, а идёт обработка в зависимости от страницы. А title это всего лишь часть.. По крайней мере так должно быть.

lastdays, а в твоём варианте мы имеем избыточный код. Мало того что сама переменная превратилась из короткой строки в массив из строк, но ещё и проверку этого массива..


-----
Система управления веб-содержимым Lotos CMS
 
 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