Page 149 - 4636
P. 149

2. Встановити з'єднання з необхідною базою даних.
              3. Виконати запит до бази даних.
              4. Отримати результати.
              5. Представити результати користувачу.
              1 Перевірка і фільтрація вхідних даних.
              Насамперед,  необхідно  видалити  всі  зайві  пробільні  символи,  які  користувач  міг  випадково
        ввести  до  або  після  критерію  пошуку.  Це  робиться  з  допомогою  функція  trim  (),  яка
        застосовується до значення $searchterm під час створення коротких імен:
              $searchterm - trim($_POST[ 'searchterm' ]) ;
              Наступний етап - перевірка того, що користувач вказав критерій пошуку і вибрав тип пошуку.
        Зверніть увагу, що вона виконується лише після видалення зайвих пробілів по краях критерію пошуку.
        Якщо поміняти ці дії місцями, може виникнути ситуація, коли критерій не був порожнім  і тому не
        вивів повідомлення про помилку, але при цьому містить лише пропуски, які повністю видаляються
        функцією trim() :
              if (!$searchtype II !$searchterm) {echo “ Ви не ввели параметри
        пошуку. Поверніться” .' на попередню сторінку та повторіть введення.’;
              exit;}
              Тут же була виконана перевірка змінної $searchtype, незважаючи на те, що в даному випадку
        вона  надходить  з  HTML-дескриптора  SELECT.  Може  виникнути  питання,  навіщо  треба  перевіряти
        вхідні дані, які  не можуть  бути порожніми. Не забувайте, що з базою даних може бути пов'язаний
        далеко  не  один  інтерфейс.  Наприклад,  компанія  Amazon  керує  великою  кількістю  філій,  які
        використовують свої пошукові інтерфейси. Крім того, важливо захистити дані на випадок виникнення
        будь-яких  проблем  безпеки,  пов'язаних  з  тим,  що  користувачі  можуть  заходити  з  різних  робочих
        станцій.  Якщо  передбачається  введення  користувачем  даних,  важливо  виключити  з  них  будь-які
        керуючі  символи.  Як  ви,  напевно,  пам'ятаєте,  раніше  говорилосяпро  функції  addslashes(),
        stripslashes()  і  get_magic_quotes_gpc(). Необхідно літерилізувати керуючі символи в
        даних, введених користувачем, перед зберіганням їх в базі. У нашому випадку здійснюється перевірка
        значення,  що  повертається  функцією  get_magic_quotes_gpc().  Це  значення  виконує
        автоматичне  взяття  в  лапки.  Якщо  це  не  так,  то  керуючі  символи  литерализуются  за  допомогою
        функції
              addslashes ():if (!get_magic_quotes_gpc()) {$searchtype =
        addslashes($searchtype);$searchterm = addslashes ($searchterm) ;}
              А при вибірці даних з бази знадобиться функція stripslashes().Якщо лапки включені, то
        після  вибірки  з  бази  даних  можуть  містити  зайві  слеші,  і  їх  необхідно  прибрати.Функція
        htmlspecialchars() використовується для кодування символів, які мають спеціальне значення в
        HTML.  Наші тестові дані не містять символу амперсанда (&), знаків “менше” (<), “більше” (>) або
        подвійних лапок ("), однак амперсанд може бути в назвах багатьох книг. Використання цієї функції
        допоможе уникнути помилок у майбутньому.
              Встановлення з'єднання
              У РНР є бібліотека для підключення до MySQL, яка називається mysqli (i означає “improved”-
        “поліпшена”). При її використанні в РНР можна задіяти або об'єктно-орієнтований, або процедурний
        синтаксис.Для з'єднання з сервером MySQL служить наступний рядок сценарію:
              @ $db = newmysqli('localhost', 'bookorama', 'bookoramal23','books');
              У  цьому  рядку  створюється  екземпляр  класу  mysqli  і  робиться  спроба  з'єднання  з
        хостом'localhost'від  імені  користувача  bookorama  і  паролем  bookoramal23.  З'єднання  буде
        використовувати базу даних  books.Згідно з об'єктно-орієнтованим підходом тепер можна викликати
        методи  отриманого  об'єкта  для  доступу  до  бази  даних.  Якщо  ви  віддаєте  перевагу  процедурному
        підходу, mysqli допускає і його. У цьому випадку підключення буде виглядати таким чином:
                                                            146
   144   145   146   147   148   149   150   151   152   153   154