{ $_GET['stronab'] = (int)$_GET['stronab']; $_POST['pointsb'] = (int)$_POST['pointsb']; if($_POST['pointsb'] < 1) $error[1] = "nieprawidłowa wartość punktów"; else { if($_POST['pointsb'] >= (10*($User['points']))) $error[1] = "nie masz tyle punktów"; else { mysql_query("update surf_ptc set punkty = punkty + ".$_POST['pointsb']." where idbaner = ".$_GET['stronab']." and user = ".$User['user']." limit 1"); else { mysql_query("update surf_users set points = points - (10*(".$_POST['pointsb'].")) where user = ".$User['user']." limit 1"); $error[2] = "dodano punkty";echo"<script type='text/javascript'> document.location.href = 'konto.php';</script> "; } } } }
kto znajdzie błąd?
powinno wyświetlić "nie masz tyle punktów" , obecnie punkty odejmuje userowi poniżej zera.
Kod
if($_POST['pointsb'] >= (10*($User['points'])))
z tym cos musi być nie tak, tylko co?
Znalazłem rozwiązanie, ale według mnie to nielogiczne troche,
{ $_GET['stronab'] = (int)$_GET['stronab']; $_POST['pointsb'] = (int)$_POST['pointsb']; if($_POST['pointsb'] < 1) {$error[1] = "nieprawidłowa wartość punktów";} else {$iles = $_POST['pointsb'] * 10; if($iles > $User['points']) {$error[1] = "nie masz tyle punktów";} else { mysql_query("update surf_ptc set punkty = punkty + ".$_POST['pointsb']." where idbaner = ".$_GET['stronab']." and user = ".$User['user']." limit 1"); else { mysql_query("update surf_users set points = points - (10*(".$_POST['pointsb'].")) where user = ".$User['user']." limit 1"); $error[2] = "dodano punkty";echo"<script type='text/javascript'> document.location.href = 'konto.php';</script> "; } } } }
Czy w warunku bezpośrednio nie mozna zastosować mnożenia wartości, musiałem najpierw przypisać nową zmienną $iles żeby zadziałało,
czy to taki defekt języka php
