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

Insert do mysql - PHP

VPS Starter Arubacloud
0 głosów
260 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,550 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 613 wizyt
pytanie zadane 3 stycznia 2018 w PHP przez kacz.ma2 Nowicjusz (180 p.)
0 głosów
1 odpowiedź 675 wizyt
pytanie zadane 2 kwietnia 2017 w SQL, bazy danych przez MrSanten Nowicjusz (120 p.)
0 głosów
1 odpowiedź 441 wizyt
pytanie zadane 17 grudnia 2017 w SQL, bazy danych przez seam3 Początkujący (450 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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!

...