ФорумПрограммированиеPHP для идиотов → Ссылки на сайте

Ссылки на сайте

  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 9 апреля 2010 г. 23:29, спустя 7 часов 57 минут 25 секунд


    Sergius, в любом случае это сильно сложно будет для ТСа.

    smv, почитай что такое пыхапе, что такое ссылка, что такое $_GET.
    А передать параметры (кстати, тебе именно это нужно - передать нужные тебе параметры по ссылке) можно как через $_GET так и через $_POST или $_SESSION или распарсить адресную сроку и вытащить нужные тебе данные. Возможно ещё какие-то извращения, пох. Главное не пытаться делать как ты, через жопу - сначала делаем, потом думаем что нам нужно.


    Есть в БД таблица page:

    id | name_link | content
    1 | О компании | У нас супер компания, не то что сайт
    2 | Контакты | Наши магазины на каждом углу

    Есть страничка index.php. Собственно на этой странички и должны быть ссылки. Так вот… Делаю запрос в БД и выдергиваю оттуда ссылки (колонка name_link).
    Ссылка выглядит следующим образом: < a href="page=$row['id']">О компании</a>. $row['id'] это переменная из запроса к БД, т.е. id записи в таблице.

    Дальше я отображаю контент.
    делаю так


    if($_SERVER['QUERY_STRING'] == NULL){ // Если в адресной строке нет дополнительных параметро (Переменных $_GET) то выводим функцию page_show() со значением по умолчанию… т.е. отображается главная страница со своим контентом
    page_show();
    }
    else{ //Если переменные в адресной строке есть, то запускаем функцию с нужным нам параметром - переменная $page , т.е. выврдим контент с нужным нам id
    page_show($page);
    }


    Вот так как я сделал это так как надо? Точнее проходит хоть какие то минимальные нормы…? Если нет подскажите пожалуйста какие ошибки сделал…
    Спустя 216 сек.
    Вообщем результата который хотел увидеть я добился… собственно о чем мне говорили раньше… делать как надо только не хвалиться ))) По сравнению с обычным инклудом автоматизацию почувствовал(ну так как у меня теперь функция работает), вплане добавления новых страниц через админку…
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 9 апреля 2010 г. 23:38, спустя 8 минут 24 секунды

    smv, в будущем будут проблемы с ЧПУ
    сделай такую таблицу:
    id, url, title, content
    и в url записывай линк типа /about/company
    потом берите это значение из $_SERVER[REQUEST_URI] и сравнивайте с базой. Вы палучаете ЧПУ линки, и в дальнейшем вы можете уже распарсивать этот реквест_юри и на модули/экшены и прочее…
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 10 апреля 2010 г. 0:06, спустя 28 минут 3 секунды


    smv, в будущем будут проблемы с ЧПУ
    сделай такую таблицу:
    id, url, title, content
    и в url записывай линк типа /about/company
    потом берите это значение из $_SERVER[REQUEST_URI] и сравнивайте с базой. Вы палучаете ЧПУ линки, и в дальнейшем вы можете уже распарсивать этот реквест_юри и на модули/экшены и прочее…

    Хм… да интересно… спасибо за совет…
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 10 апреля 2010 г. 0:55, спустя 48 минут 47 секунд

    А не могли бы разъяснитьь немножко….

    Вот например есть такая страница:

    id | url | title | content
    1 |/about |О компании | информация о компании
    2 |/contacts | Контакты | Контактная информация


    потом берите это значение из $_SERVER[REQUEST_URI] и сравнивайте с базой.


    Тут имеется ввиду что ссылки на моей странице должн именть вид : <a href="/about"></a> и <a href="/contacts"></a> а при нажатии на ссылку мы смотрим в базе имеющиеся url и если он есть то выводим контент а если такого урла нет, то например, перенаправляем на страницу 404 ошибки?

    Так?
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 10 апреля 2010 г. 1:03, спустя 8 минут 13 секунд

    smv, да. Но перед этим погугли по $_SERVER[REQUEST_URI]. Чтобы знать что это.
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 10 апреля 2010 г. 1:21, спустя 18 минут 37 секунд

    про $_SERVER[REQUEST_URI] знаю
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 10 апреля 2010 г. 1:37, спустя 15 минут 25 секунд


    smv, да. Но перед этим погугли по $_SERVER[REQUEST_URI]. Чтобы знать что это.
    спартакус, а что там гуглить? Я не совсем понимаю? Или ты имешь ввиду экранировать спец символы? )
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 10 апреля 2010 г. 1:43, спустя 6 минут 42 секунды

    так кое что у меня получилось… Щас покажу пример а вы скажите пожалуйста что и как…


    значит тут из БД вывожу ссылки

    include ("connect_bd.php");
    $link_select="SELECT id, title, url FROM page";
    $result_link_select=mysql_query($link_select, $db);
    while ($row_link_select = mysql_fetch_array($result_link_select)) {
    echo "<td title='".$row_link_select["title"]."'>"."<a href='".$row_link_select["url"]."' class='c1'>".$row_link_select["title"]."</a>"."</td><td width='25' align='center'></td>";


    соответсвенно ссылки получаются как и договаривались )))) <a href="/about"></a>

    Потмо сделал элементарную провекру

    	if (isset($_SERVER["REQUEST_URI"])){
    echo $_SERVER["REQUEST_URI"];
    }


    Чтоб когда жму на ссылку, соответсвенно появлялся адрес вида www.site.ru/about
    Соответственно проверяется условие что если есть в адресе "/about", то его и выводим на сраницу.

    Но… при нажатии на ссылку сразу же возникала ошибка 404 так как такого каталога нет… А ясвдел файл .htaccess где прописал ErrorDocument 404 /index.php

    Я все правильно сделал?

  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 10 апреля 2010 г. 1:52, спустя 8 минут 9 секунд

    smv, ах да я замыл, вам нужно все запросы редиректить на index.php, если апач то
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php [NC,L]

    если nginx, то
    http://pyhapyha.ru/blog/sys_ad/67.html#comment358
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 10 апреля 2010 г. 2:09, спустя 17 минут 8 секунд

    %{REQUEST_FILENAME} — это уже название того файла, который сервер отдал бы пользователю, с учетом всех DOCUMENT_ROOT'ов


    REQUEST_FILENAME
    Полный путь в файловой системе сервера к файлу или скрипту соответствующим этому запросу.


    Это имеется ввиду корневой каталог? типа www.site.ru/index.php ?

    Подскажите на "пальцах" для большего понимания….

    а то у меня ошибка при таком .htaccess

    You don't have permission to access / on this server.


  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 10 апреля 2010 г. 2:11, спустя 2 минуты 18 секунд


    You don't have permission to access / on this server.

    Вы не имеете доступа / на этом сервере.
    К сожалению у тебя нету доступа к редактирования htaccess на сколько я понимаю
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 10 апреля 2010 г. 2:17, спустя 6 минут 9 секунд

    mario, ну нахер ты его ЧПУшкой грузишь, пусть поначалу поймет что за чем работает и вообще что такое ГЕТ, ПОСТ, СЕССИИ и, главное - массивы, бо без них как без одного яйца - вродь и работает, но не комильфо :)
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 10 апреля 2010 г. 2:20, спустя 3 минуты 5 секунд


    mario, ну нахер ты его ЧПУшкой грузишь, пусть поначалу поймет что за чем работает и вообще что такое ГЕТ, ПОСТ, СЕССИИ и, главное - массивы, бо без них как без одного яйца - вродь и работает, но не комильфо :)


    не такой уж я и тупой… что такой гет пост и сессии знаю.. и массивы кстати тоже..


    smv, да. Но перед этим погугли по $_SERVER[REQUEST_URI]. Чтобы знать что это.


    и кстати что это тоже знаю как бы удивительно это не звучало
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 10 апреля 2010 г. 2:23, спустя 2 минуты 35 секунд


    mario, ну нахер ты его ЧПУшкой грузишь, пусть поначалу поймет что за чем работает и вообще что такое ГЕТ, ПОСТ, СЕССИИ и, главное - массивы, бо без них как без одного яйца - вродь и работает, но не комильфо :)
    ну хз… не знаю :)
    smv, не агрись как агронуб… принимай как есть, и будет все окей :)
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 10 апреля 2010 г. 2:26, спустя 2 минуты 54 секунды

    может у меня не доступа нет к редактирования htaccess, а httpd.conf как то криво настроен? документ руты там всякие?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!