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

przesłanie formularza

Object Storage Arubacloud
0 głosów
212 wizyt
pytanie zadane 7 czerwca 2017 w PHP przez Tabaluga Początkujący (280 p.)

Witam, 

otóż mam pewien problem z formularzem oto kod:

<form  method="post">
    <input type="number" name="liczba1" placeholder="wpisz poprawną liczbe" /> 
    <input type="number" name="liczba2" placeholder="wpisz poprawną liczbe" /> 
    <input type="number" name="liczba3" placeholder="wpisz poprawną liczbe" /> 
    <input type="submit" value="wyślij" />
</form>


<?php

if (isset($_POST['liczba1'])) {
    
    $number1 = $_POST["liczba1"];
    $number2 = $_POST["liczba2"];
    $number3 = $_POST["liczba3"];
    if($number1 == 8 && $number2 == 7 && $number3 == 6){
        echo "gratulację podałeś poprawne liczby i zostało dodane 10 punktow do Twojego konta";
        $zapytanie = 'UPDATE uzytkownicy SET punkty = punkty +10 WHERE id='.$id.';';
        $query = mysqli_query($connect, $zapytanie); 
    } else {
        echo "przykro mi, podane liczby nie są prawidłowe";
    }
}
?>

chodzi tutaj o to że użytkownik musi podać poprawne liczby aby do jego konta dodały się punkty i elegancko wszystko działa otóż sprawdza czy liczby się zgadzają i jak tak to dodaje się 10 punktów do bazy danych ale mam z tym taki problem, a mianowicie chciałbym aby można było te punkty dodać tylko raz, aby po ponownym wypełnieniu pól i przesłaniu już mu się nie dopisywały te punkty tylko wyświetlał się np taki napis: "punkty do twojego konta zostały już dopisane" czy coś w tym stylu, pomoże ktoś jak to zrobić?

komentarz 7 czerwca 2017 przez Tabaluga Początkujący (280 p.)

zrobiłem tak jak mówicie sprawdzam czy istnieje już rekord w bazie oto kod:

<?php

if (isset($_POST['liczba1'])) {
    
    $punkty = trim($_SESSION['punkty']);
    $punktuj='SELECT punkty FROM uzytkownicy WHERE id='.$id.';';
    $rekordy = mysqli_query($connect, $punktuj);
    if(mysqli_num_rows($rekordy)==0)
    {
        $number1 = $_POST["liczba1"];
        $number2 = $_POST["liczba2"];
        $number3 = $_POST["liczba3"];
        if($number1 == 8 && $number2 == 7 && $number3 == 6){
            echo "gratulację podałeś poprawne liczby i zostało dodane 10 punktow do Twojego konta";
            $zapytanie = 'UPDATE uzytkownicy SET punkty = punkty +10 WHERE id='.$id.';';
            $query = mysqli_query($connect, $zapytanie); 
        } else {
            echo "przykro mi, podane liczby nie są prawidłowe";
        }
    } else {
        echo "punkty do Twojego konta zostaly już dopisane";
    }

}

?>

lecz teraz od razu wypisuje ze "punkty do Twojego konta zostaly już dopisane" nawet jesli robię to po raz pierwszy, zły jest kod czy o co chodzi?

2 odpowiedzi

0 głosów
odpowiedź 7 czerwca 2017 przez Chess Szeryf (76,710 p.)
Dodaj do warunku empty lub isset lub załóż klucz UNIQUE w bazie. Albo sprawdź czy dla danego ID record istnieje, jeśli istnieje to nie pozwól dodać recordu.
0 głosów
odpowiedź 7 czerwca 2017 przez dervil Gaduła (3,030 p.)
do walidacji dodaj sprawdzanie czy istnieje już rekord w bazie

Podobne pytania

0 głosów
1 odpowiedź 2,551 wizyt
pytanie zadane 1 lutego 2016 w PHP przez McShadow Obywatel (1,050 p.)
0 głosów
1 odpowiedź 736 wizyt
pytanie zadane 6 maja 2017 w JavaScript przez Bakr Mądrala (6,850 p.)
0 głosów
1 odpowiedź 434 wizyt
pytanie zadane 5 września 2017 w JavaScript przez chmod96 Obywatel (1,380 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

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

...