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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод в зависимости от URL, Не могу понять в чем ошибка 
V
    Опции темы
клоп
Дата 18.10.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

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



Доброго дня!
На сайте есть раздел неких галерей. URL входа в галереи выглядит следующим образом:

http://www.site_name.ru?do=gallery
http://www.site_name.ru?do=gallery_1
http://www.site_name.ru?do=gallery_2
..........................................
..........................................
http://www.site_name.ru?do=gallery_N

Количество галерей в разделе не известно.
Не могу понять, почему не работает кусок кода  представленный ниже?
Суть его, определить что в URL есть кусок =gallery= и вывести соответствующее сообщение.

Код

<?
$url_do  = $_GET['do'];
$str = "gallery";
$pos = strpos($url_do, $str);
if ($pos === TRUE) { echo "Вы в разделе ГАЛЕРЕЙ";}
else {echo "Вы не в разделе ГАЛЕРЕЙ";}
?>

--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
Burrr
Дата 18.10.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

$url_do  = $_GET['do'];
$str = "gallery";
$pos = strpos($url_do, $str);
if (is_integer($pos)) { echo "Вы в разделе ГАЛЕРЕЙ";}
else {echo "Вы не в разделе ГАЛЕРЕЙ";}



--------------------
PM MAIL ICQ   Вверх
Gold Dragon
Дата 18.10.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



по моему функция strpos возвращает позицию первого вхождения если находит или FALSE если не находит.

может так тогда
Код

if ($pos === FALSE) { echo "Вы не в разделе ГАЛЕРЕЙ";}
else {echo "Вы в разделе ГАЛЕРЕЙ";}



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
клоп
Дата 18.10.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

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



Burrr все заработало!!! СПАСИБО!!!
Правда не могу найти описание функции is_integer. На http://ru.php.net её нет.

Gold Dragon также СПАСИБО!!!, тож рабочая версия
Как то я и не подумал об этом.

Теперь не знаю что лучше и выбрать из предложенных вариантов.


--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
Opik
Дата 18.10.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



клоп
Gold Dragon
Burrr
А я бы проверял регуляркой, тем более ему все равно номер галереи вытаскивать нужно.
PM MAIL Skype   Вверх
Opik
Дата 18.10.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Например так:
Код

$url = 'gallery_1';
if(preg_match("/^gallery(_([0-9]+))?$/", $url, $tmp))
{
    print_r($tmp);
}
else
{
    die('no');
}

PM MAIL Skype   Вверх
Nicholas_S
Дата 18.10.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Зачем огород, попробуй так:

http://www.site_name.ru?do=gallery&ind=N

Код

  if (isset($_GET['gallery']))
  {
      // определяем номер галлереи
      $ind = isset($_GET['ind']) ? (int) $_GET['ind'] : 0;
      // ...
  }
  else
      // не галлерея...



--------------------
...все в мире относительно
PM   Вверх
Gold Dragon
Дата 18.10.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



абсолютно согласен с Nicholas_S, я так и делаю (или почти так)... 

хотя вопрос задан по другому smile  а вдруг так и недо..


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Opik
Дата 18.10.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Nicholas_S
Регуляркой огорода нет.
Ну и упрощение УРЛ smile)
PM MAIL Skype   Вверх
Nicholas_S
Дата 18.10.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если задача состоит именно в том, чтобы распарсить URL только в таком виде и его изменение не допустимо - ничего не имею против решения от Opik, учитывая что операция будет выполняться 1 раз. smile Но зацикливаться на регулярках в каждом подобном случае не стоит, все-таки  "дорогая" операция.


--------------------
...все в мире относительно
PM   Вверх
клоп
Дата 19.10.2006, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

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



Спасибо всем! Сделал как предложил Burrr, - не меняя сильно свой код, а добавив лишь is_integer (кстати, так и не нашел нигде описание этой функции, мож есть у кого?).

Номера галерей мне не нужно отслеживать, главное знать что юзер в разделе галерей , и если это так, то показать ему соответствующий кусок кода. Если нет то показывать баннер, приглашающий посетить его эти галереи (см. www.severstalbasket.ru).

URL без подчеркиваний:
Код

http://www.site_name.ru?do=gallery
http://www.site_name.ru?do=gallery_1
http://www.site_name.ru?do=gallery_2




--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
RasierKlinge
Дата 19.10.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(клоп @  19.10.2006,  07:42 Найти цитируемый пост)
 (кстати, так и не нашел нигде описание этой функции, мож есть у кого?).

http://ru.php.net/manual/ru/function.is-integer.php
 
PM MAIL   Вверх
клоп
Дата 19.10.2006, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

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



RasierKlinge, - читали. 

is_integer
(PHP 3, PHP 4, PHP 5)

is_integer -- Alias of is_int()
Описание
This function is an alias of: is_int(). 


--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
Nicholas_S
Дата 19.10.2006, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



клоп, понятие рекурсии знакомо? is_integer() -> s_int() - см. is_int()   smile 


--------------------
...все в мире относительно
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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