Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод информации в зависимоти от адресной строки
 
 автор: TetRiska   (31.07.2009 в 17:58)   письмо автору
 
 

Ребят помогите найти ошибку, чего я не вижу такого, из-за чего не выводится информация!

Когда перехожу по ссылке - DOMEN/catalog должно вывести "1", когда дописываю цифру -
DOMEN/catalog/1 должно вывести "2".

Вот мой реврайт:

RewriteRule ^catalog$ index.php?page=catalog
RewriteRule ^catalog/([0-9]+)$ index.php?page=catalog&id=$1[L]


А вот код главного индекса:

case "catalog":
include("modules/catalog/index.php");
include("tpl/tpl_catalog/index.html");
break;


index.php

<?php
if(!empty($_GET['catalog']))
{
ob_start();    
    echo 
"1";
$catalog ob_get_contents();  
ob_end_clean();
}
elseif(!empty(
$_GET['catalog']) && !empty($_GET['id']))
{
ob_start();    
    echo 
"2";
$catalog ob_get_contents();  
ob_end_clean();
}
?>


index.html

<tr>
  <td valign="top" colspan="3"><div style="margin-top:10px"><?php echo $catalog ?></div></td>


Не выводит не то и не то :(...где натупил?

  Ответить  
 
 автор: TetRiska   (31.07.2009 в 19:28)   письмо автору
 
   для: TetRiska   (31.07.2009 в 17:58)
 

никто не поможет ? :(

  Ответить  
 
 автор: Trianon   (31.07.2009 в 19:57)   письмо автору
 
   для: TetRiska   (31.07.2009 в 17:58)
 

>Ребят помогите найти ошибку, чего я не вижу такого, из-за чего не выводится информация!

Как Вы вообще хоть что-нибудь умудряетесь видеть в этом спагетти...

>Когда перехожу по ссылке - DOMEN/catalog должно вывести "1", когда дописываю цифру -
>DOMEN/catalog/1 должно вывести "2".

>Вот мой реврайт:
>RewriteRule ^catalog$ index.php?page=catalog
>RewriteRule ^catalog/([0-9]+)$ index.php?page=catalog&id=$1[L]

То есть должен вызываться index.php

смотрим
>index.php
>
><?php
>if(!empty($_GET['catalog']))
>{
>ob_start();
> echo "1";
>$catalog = ob_get_contents();
>ob_end_clean();
>}
>elseif(!empty($_GET['catalog']) && !empty($_GET['id']))
>{
>ob_start();
> echo "2";
>$catalog = ob_get_contents();
>ob_end_clean();
>}
>?>
и видим, что этот index.php вообще не может ничего вывести - неважно, что там ошибка в логике - ob_end_clean будет стирать весь вывод.

остальные файлы можно не смотреть.

>А вот код главного индекса:
>
>case "catalog":
>include("modules/catalog/index.php");
>include("tpl/tpl_catalog/index.html");
>break;
>

>
>index.html
>
><tr>
> <td valign="top" colspan="3"><div style="margin-top:10px"><?php echo $catalog ?></div></td>
>
>Не выводит не то и не то :(...где натупил?

Зачем так сложно?
Зачем вообще использовать навороты, которые не знаешь как работают?!

  Ответить  
 
 автор: TetRiska   (31.07.2009 в 20:19)   письмо автору
 
   для: Trianon   (31.07.2009 в 19:57)
 

>и видим, что этот index.php вообще не может ничего вывести - неважно, что там ошибка в логике - ob_end_clean будет стирать весь вывод.

не подскажете конкретно, что за ошибка в логике?
сделаем для начала так:
<?php
if(!empty($_GET['catalog']))
{
   
    echo 
"1";

}
elseif(!empty(
$_GET['catalog']) && !empty($_GET['id']))
{
   
    echo 
"2";

}
?>

При образовании такой адресной строки: IP/catalog чтобы вывело "1", а
при - IP/catalog/1 чтобы вывело "2"

  Ответить  
 
 автор: Trianon   (31.07.2009 в 20:31)   письмо автору
 
   для: TetRiska   (31.07.2009 в 20:19)
 

и как - работает?
Может сперва посмотреть, что вообще в $_GET лежит?

  Ответить  
 
 автор: Николай2357   (31.07.2009 в 21:16)   письмо автору
 
   для: TetRiska   (31.07.2009 в 20:19)
 

Переменные совсем не те проверяются.
Вообще если ты так решил делать, почитай это, там подробнее все.

  Ответить  
 
 автор: Николай2357   (31.07.2009 в 21:16)   письмо автору
 
   для: Trianon   (31.07.2009 в 19:57)
 

и видим, что этот index.php вообще не может ничего вывести - неважно, что там ошибка в логике - ob_end_clean будет стирать весь вывод.
остальные файлы можно не смотреть.

Зря. Вывод дальше у него, вот тут:
<td valign="top" colspan="3"><div style="margin-top:10px"><?php echo $catalog ?></div></td>

А зачем так сложно, это я виноват)))

  Ответить  
 
 автор: Trianon   (01.08.2009 в 00:41)   письмо автору
 
   для: Николай2357   (31.07.2009 в 21:16)
 

>и видим, что этот index.php вообще не может ничего вывести - неважно, что там ошибка в логике - ob_end_clean будет стирать весь вывод.
>остальные файлы можно не смотреть.



>Зря. Вывод дальше у него, вот тут:
Еще раз. Остальные файлы можно не смотреть, поскольку к ним нет обращений.
Как минимум в приведенном контексте.

>
<td valign="top" colspan="3"><div style="margin-top:10px"><?php echo $catalog ?></div></td>

>А зачем так сложно, это я виноват)))

Бывает.

  Ответить  
 
 автор: Николай2357   (01.08.2009 в 01:05)   письмо автору
 
   для: Trianon   (01.08.2009 в 00:41)
 

Еще раз. Остальные файлы можно не смотреть, поскольку к ним нет обращений.
Конечно, если смотреть с точки зрения ответа на вопрос, то разумеется можно и не смотреть. Но если все таки глянуть краем глаза, хотябы руководствуясь логикой, то именно в приведенном контексте есть вывод.
Это разумеется не оправдывает топикастера, он задал вопрос некорректно. Но.

>и видим, что этот index.php вообще не может ничего вывести - неважно, что там ошибка в логике - ob_end_clean будет стирать весь вывод.
>остальные файлы можно не смотреть.


нет там никакой ошибки. Пусть стирает, это и правильно. Но присвоение то было. Значит переменная где то дальше используется... Почему же не смотреть то?

  Ответить  
 
 автор: Trianon   (01.08.2009 в 01:21)   письмо автору
 
   для: Николай2357   (01.08.2009 в 01:05)
 

>Еще раз. Остальные файлы можно не смотреть, поскольку к ним нет обращений.
>Конечно, если смотреть с точки зрения ответа на вопрос, то разумеется можно и не смотреть. Но если все таки глянуть краем глаза, хотябы руководствуясь логикой,
то именно в приведенном контексте есть вывод.

Это попытка руководствоваться не логикой, а ассоциацией - то есть то, что я в программировании пытаюсь изживать всеми силами.


>Это разумеется не оправдывает топикастера, он задал вопрос некорректно. Но.
Собственно я могу оставить тред в покое. Разбирайтесь сами.


>>и видим, что этот index.php вообще не может ничего вывести - неважно, что там ошибка в логике - ob_end_clean будет стирать весь вывод.
>>остальные файлы можно не смотреть.

>
> нет там никакой ошибки.

Не в том ошибка. if ... elseif там кривой. Ну да найдете сами.

>Пусть стирает, это и правильно. Но присвоение то было. Значит переменная где то дальше используется...

Не значит.

>Почему же не смотреть то?

Потому что.
Потому что впереди паровоза бежать вредно.

Вот когда станет видно, что что-то там вызывается явно приведенным кодом - тогда да.
А пока это не видно здесь - 100% это не видно и топикстартеру. А значит любая попытка вытянуть проблему провальна в самой своей сути.

  Ответить  
 
 автор: Николай2357   (01.08.2009 в 01:27)   письмо автору
 
   для: Trianon   (01.08.2009 в 01:21)
 

>Потому что. Потому что впереди паровоза бежать вредно.
Ну, как говориться: тады ой. Не стану.
А что касается ассоциаций, может и так.
Просто разбирая чужие скрипты без этого никуда не денешься. Особенно если это ООП. Там вообще никакой логики, одни ассоциации.

  Ответить  
 
 автор: Trianon   (01.08.2009 в 01:51)   письмо автору
 
   для: Николай2357   (01.08.2009 в 01:27)
 

я там дописал чуть.

  Ответить  
 
 автор: Николай2357   (01.08.2009 в 02:21)   письмо автору
 
   для: Trianon   (01.08.2009 в 01:51)
 

С этим не смею не согласиться.

  Ответить  
 
 автор: TetRiska   (01.08.2009 в 16:01)   письмо автору
 
   для: Николай2357   (01.08.2009 в 02:21)
 

благодарю всем за помощь. ошибка была рядом :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования