przekazanie znaku ' z fomularza do bazy

przekazanie znaku ' z fomularza do bazy
B1
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 6 lat
  • Postów:70
0

Cześć, miałem problem z dodawaniem pewnego tekstu do bazy danych i krok po kroku doszedłem czemu nie chce się dodawać lecz nie mam pomysłu na rozwiązanie.
W panelu zarządzania jest formularz do dodawania NEWSów - plik dodajAktualnosc.php

Kopiuj
<form class="form-style-7" method="post" action="DATABASE_dodajAktualnosc.php">
				<ul>
				<li>
					<label for="tytulArtykulu">Tytul artykułu</label>
					<input type="text" name="tytulArtykulu" maxlength="100">
					<span>Tutaj wpisz tytuł artykułu</span>
				</li>
				<li>
					<label for="autorArtykulu">Autor artykułu</label>
					<input type="text" name="autorArtykulu" maxlength="100">
					<span>Tutaj wpisz autora artykułu</span>
				</li>
				<li>
					<label for="trescArtykulu">Treść artykułu</label>
					<textarea name="trescArtykulu" onkeyup="adjust_textarea(this)"></textarea>
					<span>Tutaj wpisz treść artykułu</span>
				</li>
				<li>
					<input type="submit"  value="Dodaj artykuł" >
				</li>
				</ul>
			</form>

W DATABASE_dodajAktualnosc chce dodac ten tekst przekazany z textarea

Kopiuj
 
MKS Stal Poniatowa w meczu 9 kolejki Lubelskiej Klasy  Okręgowej podejmowała drużynę Lubelskiego Sygnału. Pierwsza połowa to zdecydowana przewaga Stali  w kreowaniu sytuacji strzeleckich jednak  nie przełożyło się to na gola i na przerwę gracze obu zespołów schodzili przy wyniku 0:0. Doskonałe okazje zmarnowali Damian Miazga, Konrad Gąsiorowski i Sylwester Parada , który w sytuacji sam na sam  z bramkarzem uderzył w słupek bramki gości. W drugiej części  spotkania na boisku pojawili się Michał Czarnecki i Jarosław Wyroślak co spowodowało , że przewaga gospodarzy była jeszcze bardziej widoczna.   W jednej z sytuacji  tuż przed polem karnym Michał Czarnecki  wyłożył piłkę Konradowi Gąsiorowskiemu , który  strzelił pierwszego gola dla Stali. Kolejne minuty to dominacja zawodników Stalówki , którzy raz po raz zagrażali bramce gości . Pomimo kilkunastu stworzonych sytuacji przez gospodarzy wynik na tablicy nie zmieniał się aż do 90 minuty kiedy sędzia dopatrzył się zagrania ręką w polu karnym jednego z obrońców Stali , dyktując rzut karny. Zawodnik gości płaskim strzałem w dolny róg doprowadził do remisu co było szokiem dla kibiców zgromadzonych na stadionie, gdyż wcześniej gospodarze mieli kilkanaście szans na podwyższenie prowadzenia. Na szczęście zaraz po wznowieniu gry w ostatniej minucie spotkania Paweł Pikuła efektownie minął dwóch zawodników gości na lewym skrzydle  ,wpadł w pole karne, dograł do Michała Czarneckiego , który plasowanym strzałem umieścił piłkę w siatce i zapewnił pierwsze trzy punkty Stali na swoim obiekcie. 

Stal:
Rybarczyk , Charmast ,Węgorowski, Pyda, Pikuła, Parada (80' Nowak)Radziejewski , Wawer (60' Wyroślak ) , Miazga , Kucharczyk (55' Czarnecki ), Gąsiorowski

lecz w ostatnich linijkach znajdują się 80',60' i 55' ktore stwarzają problem tekst bez apostrofow zostaje dodany do bazy

Kopiuj
<?php
$tytulArtykulu = $_POST["tytulArtykulu"];
$trescArtykulu = $_POST["trescArtykulu"];
$autorArtykulu = $_POST["autorArtykulu"];

echo $tytulArtykulu . "<br/>";
echo $autorArtykulu . "<br/>";
echo $trescArtykulu . "<br/>";

$mysqli = new mysqli("host","user","pass", "database");

if (mysqli_connect_errno())
{
	echo "Wystąpił błąd połączenia z bazą";	
}
$mysqli->set_charset("utf8");
$sqlQuery= "INSERT INTO `aktualnosci`
			VALUES ('','$tytulArtykulu','$trescArtykulu','NOW()','$autorArtykulu')";

$wynik = mysqli_query($mysqli,$sqlQuery);
	
if ($wynik === TRUE) 
{
	echo "<script type= 'text/javascript'>alert('New record created successfully');</script>";
} 
else 
{
	echo "<script type= 'text/javascript'>alert('Error: " . $sql . "<br>" . $conn->error."');</script>";
}

?>

dodany tekst jest Od razu widoczny jest jako nowa aktualność.

Jak rozwiązac problem z apostrofem ?

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Poczytaj o PDO.


PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 7 godzin
  • Postów:3866
0

Ja myślę, ze poza PDO warto poczytać o sql injection.

Możesz użyć funkcji: mysqli_real_escape_string (http://php.net/manual/en/mysqli.real-escape-string.php)

Lub:

Kopiuj
<?php
$tytulArtykulu = $_POST["tytulArtykulu"];
$trescArtykulu = $_POST["trescArtykulu"];
$autorArtykulu = $_POST["autorArtykulu"];
 
echo $tytulArtykulu . "<br/>";
echo $autorArtykulu . "<br/>";
echo $trescArtykulu . "<br/>";
 
$mysqli = new mysqli("host","user","pass", "database");
 
if (mysqli_connect_errno())
{
    echo "Wystąpił błąd połączenia z bazą";    
}
$mysqli->set_charset("utf8");
$stmt = $mysqli->prepare("INSERT INTO `aktualnosci` VALUES ('',?,?,NOW(),?)");
$stmt->bind_param('sss', $tytulArtykulu,$trescArtykulu,$autorArtykulu);

$stmt->execute();

if ($stmt->affected_rows > 0) 
{
    echo "<script type= 'text/javascript'>alert('New record created successfully');</script>";
} 
else 
{
    echo "<script type= 'text/javascript'>alert('Error: " . $sql . "<br>" . $conn->error."');</script>";
}
$stmt->close();
?>

Mogą być błędy, tu masz manuala: http://php.net/manual/en/mysqli-stmt.bind-param.php

edytowany 1x, ostatnio: Panczo
KA
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Lokalizacja:Zawiercie, Polska
  • Postów:7
0

Tak jak wyżej, poczytaj o injection, napisz sobie funkcje która używa real_escape_string z htmlentities i powinno działać, przynajmniej u mnie tak jest.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)