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 :: Помогите с if else

 PHP.SU

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


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

> Без описания
Alex59
Отправлено: 06 Июня, 2016 - 18:39:05
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2016  


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




Пытаюсь вывести мета тег, если он не прописан на странице.
Если его нет выводится. Проблема в том, что когда есть - тоже выводится.

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php if (!empty($meta_description)): ?>
  2. <meta name="description" content="<?php echo htmlspecialchars($meta_description, ENT_QUOTES) ?>">
  3.     <?php else: ?>
  4.     <?php $meta_description= Альтернативное описание; ?>
  5. <meta name="description" content="<?php echo htmlspecialchars($meta_description, ENT_QUOTES) ?>">
  6. <?php endif; ?>
 
 Top
kotyara1979
Отправлено: 07 Июня, 2016 - 03:04:56
Post Id


Частый гость


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


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




Конструкция за исключением кавычек в else написана правильно.
А значит вопрос только в данных. Отвечают ли они введенным условиям. По всей видимости нет.
Точно ли meta_description существует в области видимости, где выводится html-код?


-----
Сделать можно все. Главное одеть каску.
 
 Top
Alex59
Отправлено: 07 Июня, 2016 - 08:25:37
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2016  


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




Напишите где поставить кавычки, я проверю.

meta_description существует и выводится, с этим проблем нет.

Проблема, что выводится 2 раза, вместо 1 после else.
 
 Top
kuller
Отправлено: 07 Июня, 2016 - 10:14:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


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




здесь кавычек нет

PHP:
скопировать код в буфер обмена
  1. <?PHP $meta_description= Альтернативное описание; ?>


я бы код так оформил бы... читается проще

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $meta_description = 'Альтернативное описание';
  4.  
  5. if(empty($meta_description))
  6. {
  7.         $meta_description = 'описание';
  8. }
  9.  
  10. $meta_description =  htmlspecialchars($meta_description, ENT_QUOTES);
  11. ?>
  12.  
  13. <meta name="description" content="<?=$meta_description;?>">
  14.  

(Отредактировано автором: 07 Июня, 2016 - 10:17:24)

 
 Top
Alex59
Отправлено: 07 Июня, 2016 - 10:58:02
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2016  


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




kuller пишет:
здесь кавычек нет

PHP:
скопировать код в буфер обмена
  1. <?PHP $meta_description= Альтернативное описание; ?>


я бы код так оформил бы... читается проще

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $meta_description = 'Альтернативное описание';
  4.  
  5. if(empty($meta_description))
  6. {
  7.         $meta_description = 'описание';
  8. }
  9.  
  10. $meta_description =  htmlspecialchars($meta_description, ENT_QUOTES);
  11. ?>
  12.  
  13. <meta name="description" content="<?=$meta_description;?>">
  14.  


Так не работает. Мы сразу присвоили переменной значение, а потом проверяем не пустая ли она.
if не будет отрабатывать
 
 Top
kuller
Отправлено: 07 Июня, 2016 - 11:24:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


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




Alex59 пишет:
Так не работает. Мы сразу присвоили переменной значение, а потом проверяем не пустая ли она.
if не будет отрабатывать


$meta_description присваивается не просто так для красоты, а для каких та определенных условий... например на каждой странице должен быть свой meta тег. Вот для это мы и пишем условие с определением на какой странице находится пользователь.

А переменная $meta_description будет меняться а если на странице не написан meta тогда и сработает вот это

PHP:
скопировать код в буфер обмена
  1.  
  2. if(empty($meta_description))
  3. {
  4.         $meta_description = 'описание';
  5. }
  6.  


для каких целей вам это надо, не написали... вот и выкладывается пример для ознакомления.

тогда в идеале вообще получается так

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. //$mod - переменная содержит информацию на какой странице находится пользователь
  5.  
  6. switch($mod)
  7. {
  8.         case 'blog':
  9.                 $meta_description = 'блог';
  10.         break;
  11.                
  12.         case 'news':
  13.                 $meta_description = 'новости';
  14.         break;
  15.                
  16.         case 'gallery':
  17.                 $meta_description = 'галерея';
  18.         break;
  19.        
  20.        default:
  21.              $meta_description = 'описание'; // если $mod не под одно условие не попал
  22. }
  23. ?>
  24.  

CODE (html):
скопировать код в буфер обмена
  1. <meta name="description" content="<?=$meta_description;?>">

(Отредактировано автором: 07 Июня, 2016 - 11:40:23)

 
 Top
Alex59
Отправлено: 07 Июня, 2016 - 11:33:30
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2016  


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




Цель: если нет метатега прописанного на странице, то присвоить ему сгенерированный.
По вашему алгоритму
$meta_description = 'Альтернативное описание';
будет выводится всегда

Спасибо за switch($mod) - почитаю, попробую

(Отредактировано автором: 07 Июня, 2016 - 11:39:51)

 
 Top
kuller
Отправлено: 07 Июня, 2016 - 11:38:53
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


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




Alex59 пишет:
Цель: если нет метатега прописанного на странице, то присвоить ему сгенерированный.
По вашему алгоритму
$meta_description = 'Альтернативное описание';
будет выводится всегда


перечитайте верхний пост отредактированный.

meta должен присвоен в любом случае, а вот на пустоту $meta_description надо проверять.
 
 Top
Alex59
Отправлено: 07 Июня, 2016 - 12:15:43
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2016  


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




kuller пишет:
//$mod - переменная содержит информацию на какой странице находится пользователь


вот пример страницы http://auto-bel[dot]org/car/bmw-1-reihe-f20-2012/

попробовал вывести переменную $mod на странице, она оказалась пустая.

(Отредактировано автором: 07 Июня, 2016 - 12:16:52)

 
 Top
kuller
Отправлено: 07 Июня, 2016 - 15:59:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


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




Alex59 пишет:
попробовал вывести переменную $mod на странице, она оказалась пустая.


вид ссылки без чпу такой ?mod=car&action=bmw-1-reihe-f20-2012 т.е. переменную $mod заменяете на свою.
(Добавление)
вот рабочий пример

PHP:
скопировать код в буфер обмена
  1.  
  2. <a href="?mod=blog">блог</a>
  3. <a href="?mod=news">новости</a>
  4. <a href="?mod=gallery">галерея</a>
  5. <a href="index.php">еще чета</a>
  6.  
  7. <?PHP
  8. switch($_GET['mod'])
  9. {
  10.         case 'blog':
  11.                 $meta_description = 'блог';
  12.         break;
  13.                    
  14.         case 'news':
  15.                 $meta_description = 'новости';
  16.         break;
  17.                    
  18.         case 'gallery':
  19.                 $meta_description = 'галерея';
  20.         break;
  21.    
  22.    default:
  23.                 $meta_description = 'описание';
  24. }
  25.  
  26. ?>
  27.  
  28. meta name="description" content="<?=$meta_description;?>"
  29.  


запусти пример... понятно станет
 
 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