Et lille forslag der tjekker:
- Om det er den rigtige bruger der fordeler points
- Om Pointene er positive
- Om det samlede antal points er korrekt
- Om brugerne eksisterer
og til sidst giver og fratrækker points.
Koden er ikke testet og der mangler nogle variabler.($tjek, $BrugerDerErLoggedInd, $BrugerDerHarOprettetSpg)
Har du spørgsmål, svarer jeg nok ikke med det samme da jeg er på ferie de næste 4-5 uger.
<?php
if (isset($_REQUEST["accept"])) {
$root = $_SERVER['DOCUMENT_ROOT'];
require("$root/top.php");
if($BrugerDerErLoggetInd==$BrugerDerHarOprettetSpg){
$points=0; //samlet optælling af point
$fejl=false; //angiver hvis der sker en fejl
foreach ($_POST['point'] AS $key => $value) {
$points+=$value; //lægger point til den samlede pointsum
if(mysql_num_rows(mysql_query("SELECT * FROM brugersystem WHERE brugernavn='$key'"))==0){
//tjekker om $key IKKE er et brugernavn i databasen
echo "<p>Brugeren $key findes ikke.</p>";
$fejl=true;
}
if($value<0||round($value)!==$value){
//man skal ikke kunne tage points og indtastningerne skal være tal og hele tal
echo "<p>Du har ikke givet et gyldigt antal point til $key.</p>";
$fejl=true;
}
}
if($tjek!==$points){
echo "Du har udlovet $tjek points, men har givet $points points.";
$fejl=true;
}
//giv ikke point hvis der er fejl
if($fejl){
echo "<p>Der er ikke givet points.</p>";
}
else{
//giver points
foreach ($_POST['point'] AS $key => $value) {
mysql_query("update brugersystem set points=points+$value where brugernavn='$key'");
echo "<p>$value points er overført til $key ´s konto.</p>";
}
//fratrækker points
mysql_query("update brugersystem set points=points-$points where brugernavn='$BrugerDerErLoggedInd'");
echo "<p>Der er i alt givet $points points.</p>";
}
}
else{
echo "<p>Du kan ikke give point i et spørgsmål du ikke har oprettet.</p>";
}
require("$root/bund.php");
}
?>