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 всегда выполняется хотя не должен

 PHP.SU

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


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

> Без описания
borus
Отправлено: 06 Января, 2013 - 14:58:02
Post Id



Новичок


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


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




Здравствуйте.

Вот часть кода файла index.php джумловского шаблона:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.           echo("<pre>");
  4.           var_dump($this->req["view"]);
  5.           var_dump($this->req["id"]);
  6.           echo("</pre>");
  7.         if ($this->req["view"]="category" && $this->req["id"]="85"){?>
  8.         <div class='right'>
  9.             <div class="block Auth">
  10.              
  11.               <?php if ($user->guest){?>
  12.                 <h4>Войти на сайт</h4>
  13.                   <table width="100%">
  14.                                           <tr><form action="/index.php" method="post">
  15.                                                 <input type="hidden" name="option" value="com_users">
  16.                                                 <input type="hidden" name="task" value="user.login">    
  17.                                                 <input type="hidden" name="return" value="aW5kZXgucGhwP0l0ZW1pZD00MzU=">                  
  18.                                                 <?php echo(JHtml::_('form.token')); ?>
  19.                                                   <td>Логин</td>
  20.                                           </tr>
  21.                                                 <tr>
  22.                                                   <td><input type="text" name='username'></td>
  23.                                                 </tr>
  24.                                                 <tr>
  25.                                                   <td>Пароль</td>
  26.                                                 </tr>
  27.                                                 <tr>
  28.                           <td><input type='password' name='password'></td>
  29.                       </tr>
  30.                       <tr>
  31.                           <td><input class="but" type="submit" value="Войти"></td>
  32.                       </tr></form>
  33.                       <tr>
  34.                           <td><a class='but' href='/index.php/using-joomla/extensions/components/users-component/registration-form?view=registration'>Зарегистрироваться</a></td>
  35.                       </tr>
  36.                   </table>
  37.                
  38.               <?php }else{ ?>
  39.                 <h4>Здравствуйте, <?php echo($user->name) ?></h4>                  
  40.                 <form action="/index.php" method="post">
  41.                   <input type="hidden" name="option" value="com_users">
  42.                   <input type="hidden" name="task" value="user.logout">
  43.                   <input type="hidden" name="return" value="index.php">
  44.                   <input type="hidden" name="return" value="aW5kZXgucGhwP0l0ZW1pZD00MzU=">
  45.                   <?php echo(JHtml::_('form.token')); ?>
  46.                   <input class="but" type="submit" value="Выйти">
  47.                   </form>
  48.               <?php } ?>
  49.            
  50.                
  51.             </div>
  52.            
  53.           <div class="h-wrap"></div>                    
  54.         </div>
  55. <?php
  56.                 }
  57. ?>
  58.  

призванная ограничить показ правого блока с формой логинизации и пр.блоками на всех страницах кроме этой: http://******.ru/index.php?option=com_content&view=category&id=85. На странице кстати справа виден вывод переменных $this->req["view"] и $this->req["id"].

Почему же на других страницах, у которых $this->req["view"] и $this->req["id"] не равны соответственно "category" и "85" происходит вывод блока div с class="right"? Кликните например на пункт меню Новости, правый блок выводится.

Благодарю.


Отредактировано модератором: DeepVarvar, 06 Января, 2013 - 15:10:24
Вставлять ссылки на действующий сайт не рекомендуется. Вот если бы у вас была ссылка на вашу временную тестовую площадку, на которой вы занимаетесь разработкой этого и других проектов, то другое дело.
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Января, 2013 - 15:12:09
Post Id



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


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


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




А что говорит вам

???
Скорее всего из-за приведения типов такие вот траблы. И вам всего-то нужно поправить проверку в условии.
 
 Top
Мелкий Супермодератор
Отправлено: 06 Января, 2013 - 17:00:57
Post Id



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


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


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




borus пишет:
if ($this->req["view"]="category" && $this->req["id"]="85"){?>

Именно потому интересна идея писать условие наоборот "category"==$this->req["view"], тогда parse error быстро вправит мозг.


-----
PostgreSQL DBA
 
 Top
borus
Отправлено: 07 Января, 2013 - 09:32:21
Post Id



Новичок


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


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




DeepVarvar пишет:
var_dump($user->guest);

выдает int(1) если не залогинешься и int(0) - если залогиненный.
Вроде же все верно - var_dump показывал, что переменные являются строками, поэтому со строками и производится сравнение...
 
 Top
KingStar
Отправлено: 07 Января, 2013 - 10:20:07
Post Id



Участник


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


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




$this->req["view"] == "category" && $this->req["id"] == "85"

нужно не присваивать значение, а сравнивать (двойное равно "==")


-----
То что программа работает, не означает что она написана правильно!
 
 Top
borus
Отправлено: 07 Января, 2013 - 10:22:04
Post Id



Новичок


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


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




KingStar пишет:
$this->req["view"] == "category" && $this->req["id"] == "85"

нужно не присваивать значение, а сравнивать (двойное равно "==")

точно. простите Улыбка
 
 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