Близько години я провозився з проблемою в PHP: проєкт, над яким працював кілька днів, раптом перестав показувати результат. На сторінці не було ані даних, ані видимого повідомлення про помилку. Спочатку підозрював незакриті дужки, але зрештою пов’язав збій зі значенням із лапками, яке вставив до бази даних.
Чому addslashes не є загальним рішенням для SQL
У початковій нотатці як загальне рішення пропонувалася addslashes(). Цю пораду потрібно уточнити: функція додає зворотні скісні риски перед певними символами, але не є універсальним екрануванням SQL і не слугує належною заміною параметризованим запитам.
Окремі правила для SQL і HTML
Для значень у SQL використовуйте підготовлені вирази та параметри відповідного драйвера, наприклад PDO. Для виведення звичайного тексту в HTML потрібна окрема обробка, зокрема htmlspecialchars(); правила одного контексту не можна автоматично переносити в інший.
Спочатку встановіть причину помилки
Порожня сторінка також сама по собі не доводить помилку з лапками: причину потрібно встановлювати за діагностикою. Довідка: addslashes, PDO::prepare, htmlspecialchars.
Немає коментарів:
Дописати коментар