Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jak ustawić wartość zmiennej wyższą od 0
ryzyk93
post 9.08.2017, 12:16:09
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.06.2016

Ostrzeżenie: (0%)
-----


Witam,
Chciałbym ustawić żeby wartość zmiennej $_POST['kasa'] w zaprezentowanym poniżej skrypcie mogła być wyłącznie większa od zera (niemożliwość wstawienia liczby ujemnej). Co mam dopisać do poniższego kodu? Z góry dziękuję za pomoc.

  1. <?php
  2. if(empty($_GET['id'])){
  3. echo "<font color='red'>Nie wybrano gracza.</font>";
  4. } else {
  5.  
  6. $_GET['id'] = (int)$_GET['id'];
  7. if(!empty($_POST['kasa'])){
  8. $_POST['kasa'] = (int)$_POST['kasa'];
  9. mysql_query("update gracze set kasa = kasa + ".$_POST['kasa']." where gracz = ".$_GET['id']);
  10. mysql_query("update gracze set kasa = kasa - ".$_POST['kasa']." where gracz = ".$gracz['gracz']);
  11. echo "<font color='red'>Nie udało się przelać kasy.</font><br>";
  12. else
  13. echo "<font color='blue'>Przelano ".$_POST['kasa']." PTW.</font><br>";
  14. }
  15.  
  16. $dane = mysql_fetch_array(mysql_query("select * from gracze where gracz = ".$_GET['id']));
  17. if(empty($dane)){
  18. echo "<font color='red'>Nie ma takiego gracza.</font><br>";
  19. } else {
  20. echo "
  21. Gracz: <b>".$dane['imie']." ".$dane['nazwisko']."</b>
  22. <form action='?a=palac&act=wb&id=".$_GET['id']."' method='post'>
  23. Ilość Monet: <input type='text' name='kasa' class='input2'/>
  24. <input type='submit' class='submit' value='Wyślij'/><br>
  25. </form>";
  26. }
  27. }
  28. ?>
Go to the top of the page
+Quote Post
viking
post 9.08.2017, 12:27:03
Post #2





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


  1. if(!empty($_POST['kasa']) && $_POST['kasa'] > 0){

Funkcje których używasz zostały usunięte z PHP. Kod jest podatny na sql injection.


--------------------
Go to the top of the page
+Quote Post
trueblue
post 9.08.2017, 12:28:48
Post #3





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Dodajesz do pola w formularzu atrybut min="1", a przy zapisie sprawdzasz czy wartość jest większa od 0.

P.S. Typ number, nie text.

Ten post edytował trueblue 9.08.2017, 12:29:26


--------------------
Go to the top of the page
+Quote Post
ryzyk93
post 10.08.2017, 11:59:43
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.06.2016

Ostrzeżenie: (0%)
-----


Dziękuję za odpowiedź. Mam jeszcze jedno pytanie - co należy dopisać, aby gracz nie mógł wpisać jako wysokość przelewu większej kwoty niż sam posiada?
Go to the top of the page
+Quote Post
nospor
post 10.08.2017, 12:03:38
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. if(!empty($_POST['kasa']) && $_POST['kasa'] > 0 && $_POST['kasa'] <= $kasaKtoraPosiada){


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trueblue
post 10.08.2017, 12:27:36
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


I również, już na poziomie pola input możesz ograniczyć tą wartość, dopasowując odpowiednio atrybut min.


--------------------
Go to the top of the page
+Quote Post
nospor
post 10.08.2017, 13:00:47
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@trueblue no w tym drugim przypadku to chyba atrybut max wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 05:01