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

Problem z SQL i PHP

VPS Starter Arubacloud
0 głosów
132 wizyt
pytanie zadane 11 lutego 2019 w SQL, bazy danych przez zerakot Obywatel (1,870 p.)

Witam,

W moim kodzie:

<?php
	if(isset($_POST['tekst']))
	{
		$tekst = $_POST['tekst'];
		$do = $_POST['do'];	
		$od = $_SESSION['login'];
		$tekst = $_SESSION['tekst'];
		echo $tekst;
		
		if(isset($tekst))
		{
		$connect = mysqli_connect('localhost', 'root', '', 'www');
		$zapytanie = 'insert into wiadomosci value("'.$od.'", "'.$do.'", "'.$tekst.'")';
		$wynik = mysqli_query($connect, $zapytanie);
	}	}
	?>

Po wysłaniu do bazy wszystkie zmienne poza $tresc zachowują się normalnie, ale $tresc jest takie samo jak po wpisaniu pierwszy raz do input name="tresc"(np.: test1) i jak odświeżę stronę i wpiszę coś innego do input name="tresc"(np,: test2) to w bazie danych na dobrym miejscu pokazuje się test1, a nie test2. Dodam też, że wszystkie zmienne są dobrze zinterpretowane.

1 odpowiedź

0 głosów
odpowiedź 11 lutego 2019 przez Arkadiusz Waluk Ekspert (287,550 p.)
wybrane 11 lutego 2019 przez zerakot
 
Najlepsza
Wybacz, ale zupełnie nic nie zrozumiałem.

W linii 4 wyciągasz do $tekst wartość z $_POST. Po czym w linii 7 nadpisujesz tą wartość daną z sesji - odczytanie w linii 4 nie ma więc sensu, bo nic z tą wartością nie robisz. W linii 10 wykonujesz warunek który zawsze będzie prawdziwy. Wstawiając w taki sposób dane do zapytania możliwe jest wykonanie ataku sql injection. A w treści pytania piszesz o inpucie "tresc", gdzie nigdzie w kodzie nie pada taka nazwa.
komentarz 11 lutego 2019 przez zerakot Obywatel (1,870 p.)
Nie zauważyłem tego nadpisania ;) A na jakiej lini jest to "zapytanie"?

Bo jak naciskam Ctrl+F to mi nie wyszukuje "tresc"
komentarz 11 lutego 2019 przez Arkadiusz Waluk Ekspert (287,550 p.)
No wiele ich tu nie masz, zapytanie przygotowujesz przecież w linii 13 i wykonujesz w linii 14. Rozumiesz w ogóle kod który napisałeś/pobrałeś?

No właśnie, sam napisałeś w poście że masz input tresc, a w kodzie PHP nigdzie takiej wartości nie obsługujesz. Dlatego napisałem że nic kompletnie nie rozumiem.
komentarz 11 lutego 2019 przez zerakot Obywatel (1,870 p.)
Ale ok, działa. Dziękuję za poświęcony czas i pomoc.
komentarz 11 lutego 2019 przez zerakot Obywatel (1,870 p.)

@Arkadiusz Waluk,
 Bo nigdzie w pliku nie mam wyrazu "tresc", więc nie mogę mieć go w zapytaniu. A kod sam napisałem, więc szukałem czemu nie działa to co napisałem, ponieważ nie jestem profesjonalnym programistą

 

Ok wiem, gdzie błąd zrobiłem, przepraszam złe info w opisie podałem, bo tam input type="tekst" jest, ale źle przepisałem

komentarz 11 lutego 2019 przez Arkadiusz Waluk Ekspert (287,550 p.)

Do tego cały czas dążę. Sam napisałeś w pytaniu, że w kodzie (jak rozumiem z kontekstu HTML) masz input o nazwie tresc, tak?

ale $tresc jest takie samo jak po wpisaniu pierwszy raz do input name="tresc"

Napisałeś nawet, że dla zmiennej $tresc jest takie samo. Takiej zmiennej nie ma i nigdzie w kodzie PHP, ani w momencie odczytywania wartości, zapytaniu, ani nigdzie, nie ma wartości tresc. Stąd nie zrozumiałem o co chodzi i co tak naprawdę chcesz uzyskać.

Edit: ok, teraz już lepiej, zaczynam coś rozumieć, ale dalej nie do końca wiem jaki jest/był problem.

1
komentarz 11 lutego 2019 przez zerakot Obywatel (1,870 p.)
W sumie problemem było podwójne zinterpretowanie zmiennej tekst, a to z "treść" to mój błąd w pisaniu pytania. Dziękuję

Podobne pytania

0 głosów
0 odpowiedzi 130 wizyt
pytanie zadane 20 lutego 2019 w SQL, bazy danych przez zerakot Obywatel (1,870 p.)
0 głosów
1 odpowiedź 255 wizyt
pytanie zadane 22 lutego 2019 w SQL, bazy danych przez zerakot Obywatel (1,870 p.)
0 głosów
1 odpowiedź 187 wizyt
pytanie zadane 21 lutego 2019 w SQL, bazy danych przez zerakot Obywatel (1,870 p.)

92,452 zapytań

141,262 odpowiedzi

319,079 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!

...