• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodawanie do MySQL rekordu przez PHP zawierającego kod HTML.

VPS Starter Arubacloud
–1 głos
383 wizyt
pytanie zadane 12 kwietnia 2020 w PHP przez ellonardo Nowicjusz (120 p.)

Witam, mam taki problem.
Chcę na swojej stronie aby administratorzy mogli dodawać "posty", które są tworzone poprzez textarea, w którym wpisują kod HTML. Wszystko jest przekazywane do odpowiedniego pliku, który zbiera te dane (POST) i próbuje dodać rekord do bazy MySQL i tu pojawia się problem.
W jaki sposób mogę stworzyć instrukcję SQL, która pozwoliłaby mi utworzyć nowy rekord, gdzie w zmiennej mam takie znaki jak np. " ' [ { } ] <> ! . itp.

Plik testowy, w którym utworzyłem skrypt.

<?php
require_once("../cfg.php");

$title="Test";
$nameuser="";
$post = "<b>Pogrubienie</b> <i>kursywa</i> <u>podkreślenie</u> 'apostrofy' cudzysłowy";
$aimg="img/1.png";
$badge="Test";
$date=date("Y-d-m H:i:s");
$country="Test";
$photo="Test";

$sql='INSERT INTO updates
VALUES (NULL,"'.$title.'","'.$post.'","'.$photo.'","'.$aimg.'","'.$country.'","'.$date.'","'.$badge.'","'.$nameuser.'")';

$conn->query($sql);
?>

$conn jest już w cfg, a strona po wykonaniu tego skryptu po prostu nie wyrzuca żadnego błędu ni nic.

2 odpowiedzi

+1 głos
odpowiedź 12 kwietnia 2020 przez adrian17 Ekspert (344,100 p.)
Żeby poprawnie obsłużyć zapytania z kompletnie dowolnymi stringami, powinieneś użyć prepared statement. Ogólnie nigdy nie powinieneś sklejać ręcznie zapytań łącząc stringi :(
–2 głosów
odpowiedź 12 kwietnia 2020 przez Bartx Bywalec (2,120 p.)
Jeśli chcesz wstawić wartości do tabeli to musisz określić nazwę kolumn w zapytaniu, tj. np. "INSERT INTO artykuly (`tytul`, `tresc`, `kategoria`) VALUES ('Tytuł', 'Treść', 'Ważne');
komentarz 12 kwietnia 2020 przez ellonardo Nowicjusz (120 p.)
Ja rozumiem, ale
Mi chodzi w jaki sposób mogę zapisać w formie zmiennych PHP kod HTML, abym mógł go instrukcją INSERT INTO dodać do bazy danych np. taki artykuł:

To jest moja "testowa" wiadomość ('do was') <b>pogrubienie</b><i>kursywa</i>

Jak mogę taki kod w/w zapisać aby cała linijka z instrukcją INSERT INTO się nie posypała, bo instrukcja zapisana w apostrofach wywala się gdy w artykule będą apostrofy, a gdy użyje cudzysłowia to jest to samo, dla cudzysłowów.
komentarz 12 kwietnia 2020 przez Bartx Bywalec (2,120 p.)
Mógłbym ci pomóc dalej, ale jak widzę jak ktoś popełnia podstawowe błędy i za życzliwe zwrócenie na to uwagi "odwdzięcza się" ujemną oceną to tak jakby sam z tej pomocy rezygnował.
komentarz 12 kwietnia 2020 przez ellonardo Nowicjusz (120 p.)
Bo mi nie chodziło o to, czy mam ten nawias z kolejnymi kolumnami w tabeli tylko w jaki sposób mogę zapisać tamtą zmienną, aby nie wywalało mi instrukcji. Instrukcja działała bez tego nawiasu, bo miałem po kolei ustawione wartości tak jak w tabeli. Nie używając " i ' w zmiennej instrukcja działała...

Podobne pytania

0 głosów
1 odpowiedź 211 wizyt
0 głosów
1 odpowiedź 458 wizyt
0 głosów
2 odpowiedzi 13,333 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...