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

Blokowanie dodawania już istniejących rekordów do bazy danych

VPS Starter Arubacloud
0 głosów
411 wizyt
pytanie zadane 17 stycznia 2020 w Egzaminy zawodowe przez Gamin Użytkownik (720 p.)
    <?php
    //skrypt połączenia z bazą danych//
    $polaczenie = new mysqli("localhost","root","","dane");
    if ($polaczenie->connect_error)
      echo("Błąd połączenia: ".$polaczenie->connect_error);
    else {

	$tytul = $_POST['tytul'];
	$gatunki_id = $_POST['gatunki_id'];
	$rok = $_POST['rok'];
	$ocena = $_POST['ocena'];
 
	$zapytanie = "INSERT INTO filmy (tytul, gatunki_id, rok, ocena) 
        VALUES ('$tytul','$gatunki_id','$rok','$ocena')";
  
	$wynik = $polaczenie->query($zapytanie);

	if ($wynik) {
		echo 'Film'.' ' .$_POST['tytul'].' '. 'został dodany do bazy.';	
	}
    	mysqli_close($polaczenie);
    }
    ?>

Napisałem prosty skrypt do egzaminu E14-01-19.01, dodający tytuł, gatunek, rok i ocenę filmu do bazy danych. O dziwo wszystko działa, jednak interesuje mnie inna rzecz. Zanim znalazłem błąd (niedomknięta '}' ) kilka razy odświeżyłem stronę, po czym po rozwiązaniu problemu wszystkie wpisane dane naraz zapisały się w bazie (9 wierszy, jeden pod drugim, z tymi samymi wartościami). Znacie jakiś sposób, żeby dane już raz umieszczone w bazie nie mogły być ponownie dodane?

1 odpowiedź

+2 głosów
odpowiedź 18 stycznia 2020 przez SzkolnyAdmin Szeryf (86,280 p.)

Wielokrotne dodanie danych do bazy po odświeżeniu (F5) to efekt zapamiętania danych z formularza przez przeglądarkę. Po odświeżeniu dane już są i skrypt jest wykonywany. W twoim przypadku najprostszym sposobem jest umieszczenie po wysłaniu danych i zamknięciu połączenia z serwerem bazodanowym instrukcji

header("Location: tu_adres_strony")

Powoduje to przeładowanie strony i wpisane dane "znikają".

Podobne pytania

0 głosów
5 odpowiedzi 564 wizyt
0 głosów
1 odpowiedź 306 wizyt
0 głosów
2 odpowiedzi 283 wizyt
pytanie zadane 31 sierpnia 2018 w Sieci komputerowe, internet przez MrxCI Dyskutant (8,260 p.)

92,453 zapytań

141,262 odpowiedzi

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

...