Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak ustawić wartość zmiennej wyższą od 0
Forum PHP.pl > Forum > Przedszkole
ryzyk93
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. ?>
viking
  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.
trueblue
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.
ryzyk93
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?
nospor
  1. if(!empty($_POST['kasa']) && $_POST['kasa'] > 0 && $_POST['kasa'] <= $kasaKtoraPosiada){
trueblue
I również, już na poziomie pola input możesz ograniczyć tą wartość, dopasowując odpowiednio atrybut min.
nospor
@trueblue no w tym drugim przypadku to chyba atrybut max wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.