За последние 24 часа нас посетили 18866 программистов и 1635 роботов. Сейчас ищут 1874 программиста ...

Очередной нивичок !

Тема в разделе "PHP для новичков", создана пользователем ErvinR., 8 сен 2006.

  1. ErvinR.

    ErvinR. Активный пользователь

    С нами с:
    8 сен 2006
    Сообщения:
    10
    Симпатии:
    0
    Есть такая проблема:
    Динамический сайт. Верхняя шапка, нижняя, левое меню и середина где будет отображаться вся информация. В левой менюшке есть несколько ссылок все они ведут на "середину", т.е. нажимаем на одну ссылку появляется один контент, нажимаем на другую соответсвенно другой. Но есть одно но... Допустим я нажал на первую ссылку вывелась информация, при нажатии второй ссылки, тоже выводится информация, но она почему то добавляется к первой инфе а не обновляет ее. Подскажите кто нибудь в чем проблема ?
     
  2. vlad-net

    vlad-net Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    42
    Симпатии:
    0
    Адрес:
    Москва
    Проблема только в том, что она существует :)
    Чтобы кто нибудь смог тебе помочь надо посмотреть, какой код выполняется у тебя при нажатии на ссылку.
     
  3. vb

    vb Активный пользователь

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    ErvinR., нужно обнулять переменные :).
    Для получения подробностей, код в студию.
     
  4. ErvinR.

    ErvinR. Активный пользователь

    С нами с:
    8 сен 2006
    Сообщения:
    10
    Симпатии:
    0
    index.php


    <html>
    <body>
    <p>&nbsp;</p>
    <div>Основной контент !!! <?php
    if (isset($_GET['page'])) {
    include($_GET['page'].'.php');
    }
    ?>
    </div>
    Menu: <a href="?page=home">Home</a> <a href="?page=about">About Me</a>
    </body>
    </html>


    Home.php

    <p>home</p>

    about.php
    <p>about me</p>

    Здесь эта тема рассматривалась, но такой конкретно проблемы там не было, в принципе коды взяты оттуда. Нужно сделать так что бы "основной контент!" (div) обновлялся, а он почему то просто добавляет ссылки. [/code]
     
  5. Anonymous

    Anonymous Guest

    Вполне возможно у тебя идет кэширование

    Добавь к каждому файлу
    PHP:
    1. <?php
    2. if(!headers_sent()){
    3. header( 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' );
    4. header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
    5. header( 'Cache-Control: no-store, no-cache, must-revalidate' );
    6. header( 'Cache-Control: post-check=0, pre-check=0', false );
    7. header( 'Pragma: no-cache' );
    8. }
    9. ?>
    И обнови каждую страницу
     
  6. vlad-net

    vlad-net Активный пользователь

    С нами с:
    28 июл 2006
    Сообщения:
    42
    Симпатии:
    0
    Адрес:
    Москва
    Слушай, у меня все работает. :?

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

    index.php


    <html>
    <body>
    <p> </p>
    <div> <?php
    if (isset($_GET['page'])) {
    include($_GET['page'].'.php');
    }
    else {
    echo "Основной контент !!!";
    }

    ?>
    </div>
    Menu: <a href="?page=home">Home</a> <a href="?page=about">About Me</a>
    </body>
    </html>

    :D
     
  7. Anonymous

    Anonymous Guest

    Один в один скопировал, все работает правильно.
    Да и не могло по другому в принципе.
     
  8. D.Lans

    D.Lans Активный пользователь

    С нами с:
    31 июл 2006
    Сообщения:
    345
    Симпатии:
    0
    небезопасно
     
  9. ErvinR.

    ErvinR. Активный пользователь

    С нами с:
    8 сен 2006
    Сообщения:
    10
    Симпатии:
    0
    Спаисбо работает !
     
  10. ErvinR.

    ErvinR. Активный пользователь

    С нами с:
    8 сен 2006
    Сообщения:
    10
    Симпатии:
    0
    В чем опасность, не очень разбераюсь :D
     
  11. Anonymous

    Anonymous Guest

    Странно – это у тебя работает а то нет :)
     
  12. ErvinR.

    ErvinR. Активный пользователь

    С нами с:
    8 сен 2006
    Сообщения:
    10
    Симпатии:
    0
    Тот код что ты прислал, он за что отвечает ? как я понял он обнуляет страничку, правильно ?
     
  13. Anonymous

    Anonymous Guest

    Понимаешь - разницы между твоим кодом и новым практически нет.

    И мне это не понятно почему у тебя все заработало.



    Когда ты создавал index.php, home.php, about.php.php – мало ли что ты там до этого написал. Поэтому и требовалось обновление страниц вручную.

    А это код нужен чтобы обновление происходило автоматом (не кэшировалось)
     
  14. D.Lans

    D.Lans Активный пользователь

    С нами с:
    31 июл 2006
    Сообщения:
    345
    Симпатии:
    0
    ErvinR.
    в том, что этот скрипт будет инклудить все что ему скажут.
    Можно сделать так чтобы он заинклудил что-нибудь нехорошее.
    Так что передавать имена PHP файлов ГЕТом - не лучшая идея.
     
  15. Sh0t

    Sh0t Активный пользователь

    С нами с:
    14 июл 2006
    Сообщения:
    21
    Симпатии:
    0
    ErvinR., безопасностью совсем не занимаетесь

    Эта часть кода должна выглядить по крайней мере так:
    PHP:
    1.  
    2. <?
    3. if (isset($_GET['page']))
    4.     {
    5.     $page = str_replace('/','',$_GET['page']).'.php';
    6.     if (file_exists($page))
    7.         {
    8.         include($page);
    9.         }
    10.     else
    11.         {
    12.         $log = fopen("hackattempts.txt","a+");  /*В файле hackattempts.txt будут записаны все попытки нехороших инклудов*/
    13.         fwrite($log, $_SERVER['REMOTE_ADDR'].' - '.date('d.m.y H:i:s')."\r\n");
    14.         fclose($log);
    15.         die ('Обнаружена попытка взлома, ваш IP отправлен администратору');
    16.         }
    17.     }
    18. ?>
    19.  
     
  16. ErvinR.

    ErvinR. Активный пользователь

    С нами с:
    8 сен 2006
    Сообщения:
    10
    Симпатии:
    0
    То есть этот код надо размещать на каждой страничке, я правильно понимаю ? а возможно сделать так что бы , его не писать везде а разместить код на заглавной страничке или это не реально. Пордон если вопрос звучит глупо, но все мы были новичками :)
     
  17. ErvinR.

    ErvinR. Активный пользователь

    С нами с:
    8 сен 2006
    Сообщения:
    10
    Симпатии:
    0
    Где можно об этом поподробней почитать ? у меня книга "PHP5 самоучитель" от Колисниченко Д.Н., но там об этом мало говориться и направлена на профессионалов, может что то есть для чайников ?
     
  18. Anonymous

    Anonymous Guest

    Если у тебя доступ к файлам будет происходить только через index.php то достаточно только на главном разместить.

    Но если к этим файлам будут обращаться непосредственно через адресную строку браузера то этот код нужен на всех файлах.
     
  19. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Обсуждалось это уже, и причём давно :)
    http://php.ru/forum/viewtopic.php?t=8

    Sh0t
    У тебя велосипед какой-то с квадратными колёсами...
     
  20. Sh0t

    Sh0t Активный пользователь

    С нами с:
    14 июл 2006
    Сообщения:
    21
    Симпатии:
    0
    Что не так?
    Если про http://php.ru/forum/viewtopic.php?t=8 то извиняй, не заметил...
     
  21. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Я про
    (Это не часть кода, это велосипед с квадратными колёсами)
     
  22. Anonymous

    Anonymous Guest

    Если ErvinR. Выбрал такой метод работы с файлами думаю то что предложил Sh0t вполне хватит для ErvinR.

    Единственное я не понял этого - для чего он
    Код (Text):
    1. $page = str_replace('/','',$_GET['page']).'.php';
     
  23. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Наоборот надо с самого начала выбирать правильный путь

    (для начала можно выбирать пути по проще, но нельзя выбирать рабочие но неправильные пути, если привыкнеш будет трудно отвыкнуть)
     
  24. Sh0t

    Sh0t Активный пользователь

    С нами с:
    14 июл 2006
    Сообщения:
    21
    Симпатии:
    0
    Пример index.php?page=../../../../../../../../etc/passwd
    Надеюсь понятно

    Прошу вас указать недостатки в предложенном мною коде прежде чем делать такие заявления
     
  25. Anonymous

    Anonymous Guest

    Пусть тогда сразу отвыкает от своего метода обращения к файла.