1. Luc Blokhuis Member

    Waarde niet onder 0

    Topic geplaatst op: 20-10-2012 om 16:33

    Op dit ogenblik heb ik dit op mijn website staan:


    function add_hints3($_POST, $process) {

    $username = $_SESSION['username'];

    $sql = $this->query("SELECT * FROM ".DBTBLE." WHERE username = '$username'");
    $result = $sql['sql'];
    $num_rows = $sql['num_rows'];
    $this->create_show_credits($result, $num_rows);

    if ($result>1){
    $sql = $this->query("UPDATE cw_users SET hints = hints + 3 WHERE username = '".$username."'");
    $sql = $this->query("UPDATE cw_users SET credits = credits - 3 WHERE username = '".$username."'");
    }

    else{
    return "Niet genoeg credits om dit te kopen.";

    }

    }


    Ten eerste: Op het moment dat ik dan naar dit script link, geeft hij het aantal credits weer (Nogal wiedes, omdat ik daarom vraag, maar als ik het weghaal, werkt hij niet meer)

    Ten tweede: Het aantal credits zakt vrolijk onder 0 wanneer iemand meer koopt als dat deze aan credits heeft.

    DB staat ingesteld op "int(11)"


    Hij werkt via;

  2. Luc Blokhuis Member
    Reactie geplaatst op: 20-10-2012 om 16:33

    Include_once 'include/processes.php';
    $Login_Process = new Login_Process;
    $Login_Process->check_status($_SERVER['SCRIPT_NAME']);
    $Login_Process->add_hints3();
    header( "Location: creditmenu.php" );

    Vond u dit antwoord nuttig?

  3. zeromechanic Member
    Reactie geplaatst op: 21-10-2012 om 13:36

    Ik snap niet helemaal wat je doet in dit script.

    De $_POST wat is daar de bedoeling van??
    zien ik niet terug in je script.

    wat doe je met de $result = $sql['sql']??
    hier maak je een nieuwe var, met de $sql['sql'] erin.
    wat komt er in de $sql te staan van uit de database?

    $num_rows = count($sql);

    wat doet $this->create_show_credits($result, $num_rows);
    geeft die funtie een return?
    waarom zet je die dan niet een var, anders heb je er niks aan.
    $credits = $this->create_show_credits($result, $num_rows);

    vervolgens vraag je if $result > 1
    in mijn optiek :
    if ($credits >= '2' && $num_rows > 1 ) {} // aangezien je 3 credits nodig hebt.
    nu zeg je if credits GROTER dan 1 gevolg dat als iemand 2 credit heeft, er toch 3 credits vanaf getrokken worden............ dus onder 0 schiet

    dit script rammelt in mijn ogen een klein beetje.
    ook filter je de $_SESSION niet, beetje handig persoon kan wat anders in de sessie plaatsen (session hijack)

    bekijk eerst eens goed wat je wilt bereiken met dit script.
    zet je functies en varabelen goed in elkaar.

    Vond u dit antwoord nuttig?

  4. zeromechanic Member
    Reactie geplaatst op: 21-10-2012 om 13:37

    Credits moet zijn >= 3 ;)

    Vond u dit antwoord nuttig?

  5. Luc Blokhuis Member
    Reactie geplaatst op: 03-11-2012 om 13:04

    $username = $_SESSION['username'];

    $sql = $this->query("SELECT * FROM ".DBTBLE." WHERE username = '$username'");
    $num_rows = count($sql);
    $credits = $this->create_show_credits($result, $num_rows);

    if ($credits >= '2' && $num_rows > 1 ){
    $sql = $this->query("UPDATE cw_users SET hints = hints + 3 WHERE username = '".$username."'");
    $sql = $this->query("UPDATE cw_users SET credits = credits - 3 WHERE username = '".$username."'");
    }

    else{
    return "Niet genoeg credits om dit te kopen.";


    met

    Geeft ie tenminste geen fouten meer aan, hij gaat ook niet meer onder 0. Maar hij haalt helemaal geen credits er meer vanaf en daarnaast levert hij ook geen hints.

    Vond u dit antwoord nuttig?

  6. zeromechanic Member
    Reactie geplaatst op: 03-11-2012 om 22:01

    Foutje in je query.

    SET hints = hints....
    SET credits = credits.....

    voor na de = met een $ voor credits.
    de hints zien ik zo niet erug in je code, maar mijn gevoel zegt dat daar ook een $ voor moet.
    maar dat zul je even moeten bekijken.

    verder in de if : $credits >= '3' anders gaat ie als nog onder de 0 als men bv nog 2 credits heeft.
    anders moet het $credits > 2 zijn

    Vond u dit antwoord nuttig?