ФорумПрограммированиеPHP для идиотов → PHP-пагинатор

PHP-пагинатор

  • Kikky

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

    Spritz 30 сентября 2010 г. 4:45, спустя 5 минут 56 секунд

    Спасибо.
    Вот до чего я дошёл…
    Всё работает отлично до тех пор, пока я не листаю до третьей страницы, то есть при $_GET['page'] = 2. Браузер просто зависает и не хочет ничего слышать))
    Это происходит при нажатии на ссылку с параметром
    href=http://localhost/AYURVEDA/view_ayurveda.php?id=1"and"page=2"and"i=17

    Не знаю как быть.
    Как это всё выглядит:
    http://pastebin.mozilla-russia.org/107121

  • Kikky

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

    Spritz 30 сентября 2010 г. 4:58, спустя 13 минут 13 секунд

  • VaseninM

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

    Spritz 30 сентября 2010 г. 9:32, спустя 4 часа 34 минуты 5 секунд

    Kikky, какой то из циклов получается бесконечным.
  • Kikky

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

    Spritz 30 сентября 2010 г. 13:47, спустя 4 часа 14 минут 6 секунд

    и так и сяк вертел этот цикл, и ещё один делал…нисилён(
  • VaseninM

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

    Spritz 1 октября 2010 г. 0:26, спустя 10 часов 39 минут 52 секунды


    do {
    echo " $sent[$i].";
    $len_of_page = $len_of_page + strlen($sent[$i]);
    $i++;
    }
    while ($len_of_page < $chars_per_page);

    угу. А на третьей странице символов не хватает. И он берет прбавляет пустой элмент массива. Потом еще элемент (он опять пустой). Потом еще. А колличество символов то не увеличвается. И все. Бесконечный цикл.
    Спустя 68 сек.
    Да у тя там с отступами бардак. Мог и не понять что то.
  • Givi

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

    Spritz 1 октября 2010 г. 1:26, спустя 59 минут 20 секунд

    Kikky, на будущее:
    такая конструкция
    $len_of_page = $len_of_page + strlen($sent[$i]);

    заменяется на такую
    $len_of_page += strlen($sent[$i]);

    и читается намного легче, когда такого много + когда имена у переменных такие длинные как у тебя
  • Kikky

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

    Spritz 1 октября 2010 г. 5:16, спустя 3 часа 49 минут 54 секунды

    ВСЕМ БОЛЬШОЕ СПАСИБО, разобрался с циклом, подправил ссылки, навёл порядок с отступами и применил сокращённые конструкции.

    вот ссылка на код рабочего пагинатора: http://pastebin.mozilla-russia.org/107142 .
  • VaseninM

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

    Spritz 1 октября 2010 г. 6:47, спустя 1 час 31 минуту 27 секунд

    Ну коли у тебя запал не спал, то вот тебе еще задачка.
    query = mysql_query("select text from ayurveda where id='$id' ");

    index.php?id=+AND+1=1
    Что будет?
  • Kikky

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

    Spritz 1 октября 2010 г. 7:12, спустя 25 минут 13 секунд

    Этот url не выведет нужную информацию из бд..

    Ты имеешь ввиду, чтобы всё лишнее в запросе кроме "1" вырезалось*?
  • VaseninM

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

    Spritz 1 октября 2010 г. 7:18, спустя 5 минут 54 секунды

    Kikky, при желании он может вывести не статьи, а юзеров к примеру.
    Спустя 19 сек.
    Тебе нужно почитать про sql inj
  • adw0rd

    Сообщения: 22943 Репутация: N Группа: в ухо

    Spritz 1 октября 2010 г. 7:21, спустя 3 минуты 18 секунд


    Ну коли у тебя запал не спал, то вот тебе еще задачка.
    query = mysql_query("select text from ayurveda where id='$id' ");

    index.php?id=+AND+1=1
    Что будет?
    и в правду, что будет SpartakuS?))
    Спустя 61 сек.
    select text from ayurveda where id=' AND 1=1'
    а вот что… это sql inj?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • VaseninM

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

    Spritz 1 октября 2010 г. 7:25, спустя 3 минуты 59 секунд

    сцуко) Ну суть он уловил. Навернное.
    index.php?id=1' AND 1=1
  • adw0rd

    Сообщения: 22943 Репутация: N Группа: в ухо

    Spritz 1 октября 2010 г. 7:37, спустя 11 минут 26 секунд

    Ага =)
    Спустя 194 сек.
    index.php?id='+UNION+SELECT+password+FROM+users+WHERE+id=1/*
    Спустя 205 сек.
    это будет

    SELECT text FROM ayurveda WHERE id='' UNION SELECT password FROM users WHERE id=1/*'
    Спустя 25 сек.
    и результатом будет пароль первого пользователя
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Kikky

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

    Spritz 1 октября 2010 г. 7:50, спустя 12 минут 49 секунд

    ага, я понял)…буду читать в тему)
  • onzone

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

    Spritz 1 октября 2010 г. 8:03, спустя 13 минут 5 секунд

    Kikky, можешь поюзать SmartyPaginate (если смарти стоит то норм штука, всё быстро настраиваеться, и занимает немного кода, + можно пользоваться в связке с ADODB или PEAR)

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