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]   

> Без описания
Dnr
Отправлено: 26 Ноября, 2012 - 21:50:12
Post Id


Новичок


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


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




Народ посоветуйте, как сделать ссылку (методом "ЧПУ").
Через Switch у меня они сделаны, но это не то. В интернете море информации, но оформили её на столько "кострубато", что начинающему "программеру" становится страшно!

И еще одно. Я вывел даные из таблицы MySQL но как бы каждая "новость" к предыдущей присоеденина, а хочу сделать, чтобы хоть какой-то разделитель между ними был.
Кроме такого - придумать ничего не смог. Подскажите что, да как.

<?
$query = mysql_query('SELECT * FROM dnr_news_mc');
while ($row = mysql_fetch_array($query )) {
echo "<tr>" . $row['news_name'] . "</tr>" . "<br />";
echo "<tr>" . $row['text'] . "<br />" . "</tr>" . "<hr>";
}
?>
 
 Top
DelphinPRO
Отправлено: 26 Ноября, 2012 - 21:56:30
Post Id



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


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


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




Dnr пишет:
echo "<tr>" . $row['news_name'] . "</tr>" . "<br />";
echo "<tr>" . $row['text'] . "<br />" . "</tr>" . "<hr>";

вам бы html сначала подтянуть


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Dnr
Отправлено: 26 Ноября, 2012 - 22:00:30
Post Id


Новичок


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


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




DelphinPRO пишет:
Dnr пишет:
echo "<tr>" . $row['news_name'] . "</tr>" . "<br />";
echo "<tr>" . $row['text'] . "<br />" . "</tr>" . "<hr>";

вам бы html сначала подтянуть


Ну html это одно дело, его исправлю по ходу дела, а вот интересует другой вопрос.
(Добавление)
вопрос
(Добавление)
вопрос
 
 Top
DelphinPRO
Отправлено: 26 Ноября, 2012 - 23:10:08
Post Id



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


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


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




Dnr пишет:
Народ посоветуйте, как сделать ссылку (методом "ЧПУ").
Через Switch у меня они сделаны, но это не то.

что конкретно нужно. без воды. Что есть, что нужно, что не получается.

зы. еще раз повторюсь - без воды, только суть и как можно точнее.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Dnr
Отправлено: 27 Ноября, 2012 - 00:45:53
Post Id


Новичок


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


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




DelphinPRO пишет:
Dnr пишет:
Народ посоветуйте, как сделать ссылку (методом "ЧПУ").
Через Switch у меня они сделаны, но это не то.

что конкретно нужно. без воды. Что есть, что нужно, что не получается.

зы. еще раз повторюсь - без воды, только суть и как можно точнее.


Ну без воды, так без воды.

1.

Ссылки, какие у меня есть:
localhost/mysite.ru/index.php?page=main
Ссылки, какие я хочу:
localhost/mysite.ru/main/news/тр а-ля-ля-ля/ (типо такого).

В даный момент использую такое:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. if(!isset($_GET['page'])){
  4.    $page = 'main';
  5. }
  6. else{
  7.    $page = addslashes($_GET['page']);
  8. }
  9. switch ($page){
  10.    case 'main':
  11.        $title = 'qwe';
  12.    break;
  13.    case 'qwe':
  14.        $title = 'qwe';
  15.    break;
  16.    case 'qwe':
  17.        $title = 'qwe';
  18.    break;
  19.    case 'qwe':
  20.        $title = 'qwe';
  21.    break;
  22.    case 'qwe':
  23.        $title = 'qwe';
  24.    break;
  25.         case 'qwe':
  26.        $title = 'qwe';
  27.    break;
  28. }
  29. ?>
  30. </head>
  31.  
  32. <body>
  33. <?php
  34. include ('pages/'.$page.'.php');
  35. ?>
  36.  
  37. //Пример моей ссылки:
  38.  
  39. <a href="<?php echo $_SERVER['PHP_SELF']; ?>?page=main"><span data-title="Основное">Главная</span></a>
  40.  


Какое должно быть - прошу у Вас мне рассказать(и/или) показать.

Читал, что надо делать через .htaccess

2.
Как есть(вывод новости на главной странице):

Первая новость
Все, что смог только придумать.
-------------------------------- -----------
Вторая новость
Не более чем первое!
-------------------------------- -----------

Как надо:

_______________
|Первая новость|
---------------------

____________________________
|Все, что смог только придумать.|
-------------------------------- --------

Для вывода новостей использую такой код:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $q = mysql_query('SELECT * FROM dnr_news_mc');
  4. while ($row = mysql_fetch_array($q)) {
  5.    echo "<tr>" . $row['news_name'] . "</tr>" . "<br />";
  6.    echo "<tr>" . $row['text'] . "<br />" . "</tr>" . "<hr>";
  7. }
  8. ?>
  9.  

(Отредактировано автором: 27 Ноября, 2012 - 01:08:01)

 
 Top
DelphinPRO
Отправлено: 27 Ноября, 2012 - 12:47:36
Post Id



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


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


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




самый простой вариант это направить все запросы на индексный файл
CODE (htaccess):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_FILENAME} !-d
  3. RewriteRule ^(.*)\.(php|html?)$ index.php [L]

в скрипте считывать переменнную и разбирать ее.
например,
разбить по символу «/» и первый элемент будет названием страницы, а второй - доп параметр

PHP:
скопировать код в буфер обмена
  1. $url = '/news/2123'; // $_SERVER['REQUEST_URI']
  2. $segments = explode('/', $url);
  3. if ($segments[0] == 'news') {
  4.   echo getNews($segments[1]); // в функцию передаете ид новости из адресной строки
  5. } elseif (){
  6. } else {
  7.   echo '404 Error';
  8. }


в общих чертах


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Dnr
Отправлено: 27 Ноября, 2012 - 12:54:29
Post Id


Новичок


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


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




DelphinPRO пишет:
самый простой вариант это направить все запросы на индексный файл
CODE (htaccess):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_FILENAME} !-d
  3. RewriteRule ^(.*)\.(php|html?)$ index.php [L]

в скрипте считывать переменнную
и разбирать ее.
например,
разбить по символу «/» и первый элемент будет названием страницы, а второй - доп параметр

PHP:
скопировать код в буфер обмена
  1. $url = '/news/2123'; // $_SERVER['REQUEST_URI']
  2. $segments = explode('/', $url);
  3. if ($segments[0] == 'news') {
  4.   echo getNews($segments[1]); // в функцию передаете ид новости из адресной строки
  5. } elseif (){
  6. } else {
  7.   echo '404 Error';
  8. }


в общих чертах


Как я понял - всё таки с использованием Switch, но просто заменить формирование ссылки с помощью
$url = '/news/2123'; // $_SERVER['REQUEST_URI']
$segments = explode('/', $url);
Правельно ведь?
 
 Top
esterio
Отправлено: 27 Ноября, 2012 - 19:09:33
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




В гугле полно ссилок
Например одна из них
http://www[dot]yaap[dot]info/page/chpu-svoimi-rukami-php
 
 Top
Dnr
Отправлено: 27 Ноября, 2012 - 19:42:44
Post Id


Новичок


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


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




esterio пишет:
В гугле полно ссилок
Например одна из них
http://www.yaap.info/page/chpu-svoimi-rukami-php


Да, не спорю. Но как я вверху топа написал - большенство инфы либо страшно написанна, либо тупо не понятная для начинающего программиста.

Вот например, как я научился использовать MySQL запросы? Нашел готовый исходник, который расковырял и изучил по мелочах.(НО там уже было все в купе написано)
А то, как в интернете есть(особенно в гугле) - сделай так, сделай сяк, то туда, то сюда.
А если собрать в купу - в большинстве случаев не получается.
 
 Top
DelphinPRO
Отправлено: 27 Ноября, 2012 - 19:55:06
Post Id



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


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


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




Dnr пишет:
Как я понял - всё таки с использованием Switch


необязательно switch

если для каждого вда контента существует свой контроллер, то первый параметр в url будет например имя этого контроллера, а второй - имя метода контроллера

PHP:
скопировать код в буфер обмена
  1. class News {
  2.   function display(){
  3.     // выводим список новостей
  4.   }
  5.   function topic($id_news){
  6.     // выводим одну новость с идентификатором $id_news
  7.   }
  8. }
  9.  
  10. $segments = explode('/', $url);
  11.  
  12. $ctrl_name = $segments[0];
  13. if (isset($segments[1])) {
  14.   $action = 'topic';
  15.   $id_news = (int)$segments[1];
  16. } else {
  17.   $action = 'display';
  18.   $id_news = 0;
  19. }
  20.  
  21. $controller = new $ctrl_name();
  22. $controller->$action($id_news);


тогда ссылка site.ru/news будет вести на список новостей, а
site.ru/news/2356 на новость №2356


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
esterio
Отправлено: 27 Ноября, 2012 - 19:56:05
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Ок поясню

Лично я предпочитаю через mod_rewrite так как писал DelphinPRO, хотя существують другие методы.
.htaccess
Спойлер (Отобразить)


Тут:
запрещаеться исполнение php скриптов кроме index.php
Стандартная кодировка utf-8
Запрещаеться переход по папкам
Если существует файл то он сразу отдается
Если нет то запрос перенаправляется на index.php с get парамером "route"


Далее в index.php
Спойлер (Отобразить)


Переменная $request содержит массив

Далее с массивом можно делать что тебе нужно.
Можно по switch..case перебор делать
Можно как я сделать полноценный роутер который разпознает еще и переменный в строце запроса
тут дело вашей фантазии
 
 Top
Dnr
Отправлено: 29 Ноября, 2012 - 15:33:23
Post Id


Новичок


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


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




esterio пишет:
Ок поясню

Лично я предпочитаю через mod_rewrite так как писал DelphinPRO, хотя существують другие методы.
.htaccess
Спойлер (Отобразить)


Тут:
запрещаеться исполнение php скриптов кроме index.php
Стандартная кодировка utf-8
Запрещаеться переход по папкам
Если существует файл то он сразу отдается
Если нет то запрос перенаправляется на index.php с get парамером "route"


Далее в index.php
Спойлер (Отобразить)


Переменная $request содержит массив

Далее с массивом можно делать что тебе нужно.
Можно по switch..case перебор делать
Можно как я сделать полноценный роутер который разпознает еще и переменный в строце запроса
тут дело вашей фантазии



А можно по подробнее о полноценном роутере?
Просто кроме свитча не пользовался никогда ни чем подобным.
 
 Top
esterio
Отправлено: 29 Ноября, 2012 - 15:36:23
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Ну во-первых ето отдельная тема, а во-вторых я не буду расписивать весь сфой роутер(щас будет масса критики). Думаю немного поразмислив Вы сами дойдете до конретноо решения. Просто обдумайте что Вам нужно и что Вы хотите от него. У Вас должно все получиться))
 
 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