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

Insert do mysql - PHP

Object Storage Arubacloud
0 głosów
274 wizyt
pytanie zadane 20 maja 2019 w PHP przez Moras Obywatel (1,620 p.)
edycja 20 maja 2019 przez Moras

Chcę dodać coś do bazy danych poprzez formularz, ale coś nie idzie. Połączenie z bazą mysql działa, ale chyba błąd jest w poleceniu sql, próbowałem już na różne sposoby, ale dalej nic.

	<div class="container mt-5">
		<form action="obsluga_dodaj_wpis.php" method="post">
			<div class="form-group">
				
				<input name="tytul" type="text" class="form-control" id="inputTytul" aria-describedby="emailHelp" placeholder="Tytuł">
				<textarea name="opis" class="form-control mt-3" id="exampleFormControlTextarea1" rows="3" placeholder="Krótki opis"></textarea>
				
				<div class="text-center mt-3">
					<button type="submit" class="btn btn-success">Dodaj</button>
				</div>
			</div>
		</form>
	</div>
<?php
	SESSION_START();
	require_once "connect.php";
	
	$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
	$link = mysqli_connect($host, $db_user, $db_password, $db_name);
	
	$polaczenie -> query ('SET NAMES utf8');
	$polaczenie -> query ('SET CHARACTER_SET utf8_polish_ci');
		
	if($polaczenie->connect_errno)
	{
		
		die('Error: '.$polaczenie->connect_errno);
	}
	else{
		
		
		$sql = 'INSERT INTO wpisy (id, tytul, opis, id_user) VALUES (NULL,'.$_POST['tytul'].','.$_POST['opis'].','.$_SESSION['id'].')';
		
		if($polaczenie->query($sql)){
			
			$polaczenie->free_result();
		}
		else{
			echo "ERROR";
			
			echo $_POST['tytul']." ".$_POST['opis']." ".$_SESSION['id'];
		}
		
	}
	
?>

Jak na razie nie chcę wprowadzać nic do kolumny 'tresc', i 'image', a kolumna 'id' ma ustawioną auto inkrementację. Bardzo proszę o pomoc.

1 odpowiedź

+1 głos
odpowiedź 20 maja 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 20 maja 2019 przez Moras
 
Najlepsza
Jak rozumiem wartości $_POST['tytul'] i $_POST['opis'] to stringi, a więc dodając je w zapytaniu należy wziąć je w apostrofy/cudzysłowy.

Inna rzecz, że takie wstawianie wartości do zapytania jest niebezpieczne, naraża na atak SQL injection. Nie widzę abyś jakkolwiek sprawdzał te wartości, ani nawet kontrolował czy istnieją. Wszystko wstawiane do zapytania należy bindować, wtedy zapytanie idzie do bazy osobno, wartości osobno i nie ma opcji wykonania ataku.
komentarz 20 maja 2019 przez Moras Obywatel (1,620 p.)
Zdaje sobie sprawę, że stronka jest podatna na SQL injection, ale na początek chciałem zrobić, żeby działało. Zabezpieczeniami się zajmę później
1
komentarz 20 maja 2019 przez Moras Obywatel (1,620 p.)

Już działa. Dzięki

$sql = "INSERT INTO wpisy(id, tytul, opis, tresc, id_user) VALUES ('NULL','".$_POST["tytul"]."','".$_POST["opis"]."', ' ','".$_SESSION['id']."')";

 

Podobne pytania

0 głosów
2 odpowiedzi 638 wizyt
pytanie zadane 3 stycznia 2018 w PHP przez kacz.ma2 Nowicjusz (180 p.)
0 głosów
1 odpowiedź 682 wizyt
pytanie zadane 2 kwietnia 2017 w SQL, bazy danych przez MrSanten Nowicjusz (120 p.)
0 głosów
1 odpowiedź 446 wizyt
pytanie zadane 17 grudnia 2017 w SQL, bazy danych przez seam3 Początkujący (450 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...