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

usuwanie php

Cloud VPS
+1 głos
467 wizyt
pytanie zadane 18 maja 2021 w PHP przez domkub12 Początkujący (480 p.)
      $id = $_COOKIE['id'];
            $conn = new mysqli("localhost", "root", "", "serwiskomp");
            $del = $conn->query("DELETE FROM `sprzet` WHERE `id_sprzetu`='$id'");

niedziala mi ten fragment kodu , nie usuwa danych z bazy probowalem paru sposobow i rowniez nic niedziala ktos wie gdzie moze byc problem?

2 odpowiedzi

+2 głosów
odpowiedź 18 maja 2021 przez SzkolnyAdmin Szeryf (90,110 p.)

Zmienna id to liczba? Spróbuj tak:

$del = $conn->query("DELETE FROM sprzet WHERE id_sprzetu=$id");

lub też:

$del = $conn->query("DELETE FROM sprzet WHERE id_sprzetu=".$id);

 

komentarz 18 maja 2021 przez domkub12 Początkujący (480 p.)
dziekuje działa
0 głosów
odpowiedź 18 maja 2021 przez Bartek2210 Obywatel (1,310 p.)
edycja 18 maja 2021 przez Bartek2210

Spróbuj bez `

Powinno zadziałać w ten sposób, a jak nie to sprawdź jaki błąd dostajesz, czy połączenie z bazą działa poprawnie i ewentualnie czy masz nadane odpowiednie uprawniania do wykonania tego zapytania.

$del = $conn->query("DELETE FROM sprzet WHERE id_sprzetu='$id'");

Możesz też sprawdzić bezpośrednio w bazie danych wykonując tam zapytanie czy jest ono poprawne. Na tej podstawie stwierdzisz czy problem jest w tym kodzie czy w logice zapytania.

Oprócz tego powinieneś uważać na ten sposób wykonywania zapytań bo może on być podatny na sql injection jeżeli ktoś odpowiednio zmieni zawartość ciasteczka $_COOKIE['id'], co nie jest trudne. Zwłaszcza, że w zapytaniu robisz delete co tylko ułatwia sprawę w zrobieniu szkód.

Wystarczy, że w tej zmiennej znajdzie się

' OR 1=1--

i może być niefajnie :)

Poczytaj sobie o prepared statements

https://websitebeaver.com/prepared-statements-in-php-mysqli-to-prevent-sql-injection

Ewentualnie sprawdzaj przed wykonaniem zapytania czy zmienna zawiera odpowiednie znaki. W tym wypadku jest to id więc podejrzewam że powinna być tam liczba. Możesz więc to sprawdzać i w przypadku niepożądanej zawartości wyświetlić np. błąd.

 

komentarz 18 maja 2021 przez domkub12 Początkujący (480 p.)
dziekuje, ogolnie jest to jedynie projekt do szkoly wiec liczy sie tu dzialanie ale przyda sie na przyszlosc. a co do ` , probowale tez bez nich , w sql  zapytanie te samo dziala wiec nie wiem gdzie lezy problem.

Podobne pytania

0 głosów
1 odpowiedź 786 wizyt
pytanie zadane 27 lipca 2020 w PHP przez Samek2222 Początkujący (440 p.)
0 głosów
1 odpowiedź 798 wizyt
pytanie zadane 17 października 2016 w PHP przez niezalogowany
0 głosów
1 odpowiedź 2,264 wizyt
pytanie zadane 31 grudnia 2016 w PHP przez nielotweb Bywalec (2,240 p.)

93,454 zapytań

142,449 odpowiedzi

322,718 komentarzy

62,833 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

Kursy INF.02 i INF.03
...