За последние 24 часа нас посетили 17339 программистов и 1721 робот. Сейчас ищут 1490 программистов ...

Вот оцените - исходники моей админки

Тема в разделе "Вопросы от блондинок", создана пользователем Ruzzz, 17 фев 2008.

  1. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    А последние 8 сообщений по куску кода как раз из page-delete.php )
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    красиво как раз на шаблонах...
    =)

    исче на классах с __autoload(), паттернах, ЧПУ, nginx кешированием, мемкешем, пивом, травой, ой, ой, ой!
     
  3. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    [vs] Ну вообще да ) Я это, имел ввиду то как я организовал работу с POST GET запросами для подтверждения удаления, чота мне не сильно нравится :)
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    сборщику страниц глубоко наплевать на полезность содержимого. его дело все это собрать и показать, а думать ему не положено.
     
  5. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    с __autoload() - не знаю
    паттернах - не знаю
    ЧПУ - чота слышал
    nginx кешированием - не знаю
    мемкешем - не знаю
    пивом - знаю
    травой - скажу: чота слышал )))
    так что ой-ой-ой :(

    учить, учить и еще раз учить :)
     
  6. Anonymous

    Anonymous Guest

    меня spl_autoload_* ваааще вставили.
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    440Hz
    __autoload() - че это такое что даже ZDE его не знает? о_0
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ну с базовыми вещами у тебя все в порядке. остально дело времени...
     
  9. Anonymous

    Anonymous Guest

    [vs], что бы знать, нужен мозг, а не наебуренные IDE. Вот поэтому то вы все и знаете ровно столько кода, сколько знают ваши среды разработки.
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а то...
     
  11. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    достаточно обычного редактора с подсветкой синтаксиса.

    [​IMG]
     
  12. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Чтобы знать нужно в большинстве случаев как минимум откуда-то это узнать :)
    Основная часть вопроса была - "что это такое".
     
  13. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    RTFM
     
  14. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    Вот такие фрагменты у меня получились:
    PHP:
    1.  
    2. <?
    3. // Берем переданный массив номеров страниц для удаления
    4. $pages = $_POST['pages'];
    5. // Проходим по массиву
    6. for ($i = 0; $i < count($pages); $i++) {
    7.   // Вместо чисел формируем элементы ID=число, заодно для безопасности приводим к целому
    8.   $pages[$i] = 'ID='.(int)$pages[$i];
    9. };
    10. // Создаем строку для sql-запроса
    11. $pages_for_query = implode(' OR ', $pages); // ID=число OR ID=число OR ID=число и т.д.
    12. InitDB();
    13. $query = 'DELETE FROM pages WHERE ('.$pages_for_query.')';
    14. ?>
    15.  
    PHP:
    1.  
    2. <?
    3. $pages = $_POST['pages'];
    4. $pages_for_form = '';                  
    5. for ($i = 0; $i < count($pages); $i++) {
    6.   $pages[$i] = (int)$pages[$i];
    7.   $pages_for_form .= '<input type="hidden" name="pages[]" value="'.$pages[$i].'" />';
    8. };
    9. $pages_str = implode(', ', $pages);
    10. // Выводим форму
    11. $body = '<p>Уверенны что хотите удалить страницы с номерами: '.$pages_str.'?</p>';
    12. ?>
    13.  
     
  15. Anonymous

    Anonymous Guest

    PHP:
    1. <?
    2. $sql = 'delete from pages where id in ('.$pages.')';
     
  16. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    Горбунов Олег Спасибо!
     
  17. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    Вот так изменил удаление нескольких страниц:
    PHP:
    1.  
    2. <?
    3.     } elseif (isset($_POST['pages'])) {
    4.         $pages = $_POST['pages'];
    5.         for ($i = 0; $i < count($pages); $i++) {
    6.             $pages[$i] = (int)$pages[$i];
    7.         };
    8.         $pages_str = implode(', ', $pages);
    9.         // Выводим форму
    10.         // Тут можна вставить проверку - есть ли страницы с таким ID
    11.         $body = '<p>Уверенны что хотите удалить страницы с номерами: '.$pages_str.'?</p>';
    12.         $body .= '<form action="page-delete.php" method="post">';
    13.         $body .= '<input type="hidden" name="confirm" value="yes" />';
    14.         $body .= '<input type="hidden" name="deletepages" value="'.$pages_str.'" />';
    15.         $body .= '<input type="submit" value="Удалить" style="width:150px;" />';    
    16.         $body .= '&nbsp;';
    17.         $body .= '<input type="button" value="Отмена" style="width:150px;" onClick="self.location.href=\'index.php\';"/>';
    18.         $body .= '</form>';
    19.         $body .= '</body>';
    20.         $body .= '</html>';
    21.         MessagePage('Удалить страницы', $body);         
    22.     // Иначе, если это POST и передали deletepages, значит подтвердили удаление несколько страниц
    23.     } elseif (isset($_POST['deletepages'])) {      
    24.         $pages = explode(', ', $_POST['deletepages']); // Насколько безопасна explode???
    25.         for ($i = 0; $i < count($pages); $i++) {           
    26.             $pages[$i] = (int)$pages[$i]; // Для безопасности приводим к целому
    27.         };
    28.         InitDB();
    29.         $query = 'DELETE FROM pages WHERE ID IN ('.implode(',', $pages).')';
    30.         if (mysql_query($query)) {
    31.             OperationOKPage('');       
    32.         } else {
    33.             DBErrorPage('Ошибка при удалении страниц.');
    34.         };     
    35.     }
    36. ?>
    37.  
     
  18. Ruzzz

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

    С нами с:
    11 фев 2008
    Сообщения:
    148
    Симпатии:
    1
    Даже так:

    PHP:
    1.  
    2. <?
    3. function ArrayToInt($array_of_int) {
    4.     unset($result);
    5.     for ($i = 0; $i < count($array_of_int); $i++) {
    6.         $result[$i] = (int)$array_of_int[$i];
    7.     }; 
    8.     return $result;
    9. }
    10. // ...
    11. } elseif (isset($_POST['pages'])) {
    12.     $pages_str = implode(', ', ArrayToInt($_POST['pages']));
    13.     $body = '<p>Уверенны что хотите удалить страницы с номерами: '.$pages_str.'?</p>';
    14.     // ...
    15.     $body .= '<input type="hidden" name="deletepages" value="'.$pages_str.'" />';
    16.     // ...
    17.     MessagePage('Удалить страницы', $body);         
    18. // Иначе, если это POST и передали deletepages, значит подтвердили удаление несколько страниц
    19. } elseif (isset($_POST['deletepages'])) {      
    20.     InitDB();
    21.     $query = 'DELETE FROM pages WHERE ID IN ('.implode(',', ArrayToInt(explode(', ', $_POST['deletepages']))).')';
    22.     if (mysql_query($query)) {
    23.         OperationOKPage('');       
    24.     } else {
    25.         DBErrorPage('Ошибка при удалении страниц.');
    26.     }; 
    27. ?>
    28.  
     
  19. Anonymous

    Anonymous Guest

    PHP:
    1. <?
    2. function ArrayToInt($array)
    3. {
    4. foreach ($array as $key => $value) $result[$key] = (int)$value;
    5. return $result;
    6. }
    7.  
    1. unset не нужен, так как внутри функции своя область видимости переменных, и ее подменить невозможно.
    2.1 Твоя функция не работает с ассоциативными массивами
    2.2 Твоя функция не работает с разрывами в последовательности ключей
     
  20. sword dancer

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

    С нами с:
    17 фев 2008
    Сообщения:
    295
    Симпатии:
    0
    точно также можно сказать, что "отступы не нужны, ибо прорамма всё-равно отработает правильно" :)
    однако, нет ничего зазорного в том, чтобы явно указать, что данная переменная более не представлет интереса.
     
  21. Anonymous

    Anonymous Guest

    Где? В первой строке фунции? Незачем освобождать то, чего нет и не может быть ни при каких условиях. Советую сначала ознакомится с темой вопроса, а потом говорить по существу.
     
  22. sword dancer

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

    С нами с:
    17 фев 2008
    Сообщения:
    295
    Симпатии:
    0
    очищать переменную перед использованием - хорошая привычка. не надо за неё бить по рукам. нет никакой гарантии, что эта функция не разрастётся и перед этим кодом не появятся ещё инструкции, которые "по счастливой случайности" будут использовать ту же переменную.
     
  23. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    как можно очистить то, чего нет?
    где траву берешь?
    =)
     
  24. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    если через жопу все делать, то конечно...
    предлагаю вообще $_GLOBALS очищать.
    для безопасности...

    гыгыгы
     
  25. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Ruzzz
    PHP:
    1. <?php
    2. function ArrayToInt($array_of_int) {
    3.      unset($result);
    4.      for ($i = 0; $i < count($array_of_int); $i++) {
    5.          $result[$i] = (int)$array_of_int[$i];
    6.      };    
    7.      return $result;
    8. }
    o_O

    PHP:
    1. <?php $array=array_map("intval",$array);