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

Problem z SQL i PHP

Object Storage Arubacloud
0 głosów
138 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,950 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,950 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,950 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 140 wizyt
pytanie zadane 20 lutego 2019 w SQL, bazy danych przez zerakot Obywatel (1,870 p.)
0 głosów
1 odpowiedź 280 wizyt
pytanie zadane 22 lutego 2019 w SQL, bazy danych przez zerakot Obywatel (1,870 p.)
0 głosów
1 odpowiedź 191 wizyt
pytanie zadane 21 lutego 2019 w SQL, bazy danych przez zerakot Obywatel (1,870 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

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

...