Hallo allemaal,

ik ben bezig om een stempagina te maken voor een school zodat binnenkort ook digitaal gestemd kan worden. Ik heb hiervoor tutorials gelezen over sql en php. Vervolgens heb ik een login gezocht in php die ik ook heb gevonden. daarna een stemsysteem die ik ook heb gevonden wat prima is voor het doel waarvoor deze gebruikt moet worden.

Echter nu moeten ouders stemmen en kan dat niet vanaf dezelfde computer vanwege een cookie die gemaakt wordt. Ik heb getracht dit weg te laten maar ik blijf tegen het probleem aanlopen.

Daarnaast heb ik een S_SESSION('username') aangemaakt om deze te valideren om te kijken of deze user gestemd heeft of niet. Ik kan dit echter niet goed testen omdat ik de foutmelding steeds krijg dat ik heb gestemd. Ik heb nieuwe users in de database toegevoegd om het te testen maar die hebben allemaal al gestemd.

ook heb ik de cookie naar time() -3600 gezet zodat deze verwijderd werd maar niets hielp.

het doel is dus te controleren of de user die inlogt gestemd heeft en maar een keer kan stemmen.

ik ben nieuw hier dus ik hoop dat iemand mij de juiste richting op wil wijzen. ervaring met PHP etc is beginnend.

dank alvast
Nee, daar heeft het niets mee te maken.
Dit is wat je wil:

$query = " UPDATE ".$SETTINGS["USERS"].", ".$SETTINGS["kandidaat"]." SET gestemd = gestemd+1, aantal = aantal+1 WHERE id='{$_SESSION['user_info']['id']}' AND kandidaten='{$_POST['kandidaat']}'";

Maar zoals gezegd: gebruik NOOIT direct POST waarden in queries.
Thx Ben,

krijg echter de volgende foutmelding

UPDATE php_users_login, kandidaten SET gestemd = gestemd+1, aantal = aantal+1 WHERE id='1' AND kandidaten='Robert Beumer': Column 'id' in where clause is ambiguous

ik heb er twee separate query's van gemaakt zoals thomas zei en nu werkt het


$query = " UPDATE ".$SETTINGS["USERS"]." SET gestemd = gestemd+1 WHERE id={$_SESSION['user_info']['id']}";
    mysql_query ($query, $connection ) or die ('request "Could not execute SQL query" '.$query . ': ' . mysql_error());
      //$_SESSION['user_info'] = $user;
      //$query = " UPDATE ".$SETTINGS["USERS"]." SET gestemd = gestemd+1 WHERE id=".$_SESSION['id'];
      //$query = " UPDATE ".$SETTINGS["USERS"]." SET gestemd = gestemd+1";
      //$query = " UPDATE ".$SETTINGS["kandidaat"]." SET aantal = aantal+1";
      //$query = " UPDATE php_users_login SET gestemd = gestemd+1 WHERE id='{$_SESSION['id']}'";
      //$query = "UPDATE {$SETTINGS["USERS"]} SET gestemd = gestemd+1 WHERE id={$_SESSION['id']}";
    $query = " UPDATE ".$SETTINGS["kandidaat"]." SET aantal = aantal+1 WHERE kandidaten='{$_POST['kandidaat']}'";
    mysql_query ($query, $connection ) or die ('request "Could not execute SQL query" '.$query . ': ' . mysql_error());
En nu de Sql-injection aanpakken.
komt vast goed en anders meld ik mij weer.

zoals al eerder gezegd dank voor alle commentaren en hulp etc.
je kunt het ook bekijken op https://www.disney.com/ post voor meer referentie.

Reageren