if(!empty($_GET['stronab']) && isset($_GET['dodajb']) && !empty($_POST['pointsb'])) {
$_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,
if(!empty($_GET['stronab']) && isset($_GET['dodajb']) && !empty($_POST['pointsb'])) {
$_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 (IMG:
style_emoticons/default/questionmark.gif) ?
Ten post edytował slawekkace 24.02.2012, 18:32:56