Voeg ook login eens toe.
En zet waar je op test ook bij ip de loginnaam wie je de strafpunten afneemt.
Meld even wat er dan gebeurd als je ze punten verminderd.
Pekeltje
Voeg ook login eens toe.
En zet waar je op test ook bij ip de loginnaam wie je de strafpunten afneemt.
Meld even wat er dan gebeurd als je ze punten verminderd.
Pekeltje
Probeer dit eens.
<?php
if($_POST['sel'] == '20'){
mysql_query("UPDATE `users` SET `tijdmuscle`='0' WHERE `login`='$data->login'");
}
?>
<form method="post" name="formpje">
<input type="hidden" name="sel" id="sel" value="20">
<img src="../images/training/backfire.jpg" onclick="document.formpje.submit.click();">
</form>
De automatische ban is al in je bansysteem in het andere topic.
Die banned het ip adres als een verbannen speler inlogd.
Wat gebeurd er precies als de speler gebanned word.
Heb je wel zoals in het topic stond zowel het ip als de login opgeslagen in ipbans?
Want dan kun je zoals hier in het script al staat gewoon met die
Zou de speler weer unbanned worden.
Pekeltje
Ja houd in dat die code 1 keer gebruikt kan worden.
Maar als je dat niet wilt kan die ook weg.
Elke speler kan namelijk toch maar 1 coupon gebruiken.
Maak van regel 36 eens:
Wat komt er als je het script uitvoerd op de plek waar de variable aantal staat.
Heb je wel tijdens de ban het ip en login opgeslagen in ipbans?
Zie begin van het topic of ander topic.
Want die delete lijkt me goed namelijk.
Graag gedaan
En ze zijn uniek gescript xD
Zijn niet zoveel werk opzich als je het idee maar hebt hoe je het kunt doen.
Bij je topics is kennis geen vereiste.
Meer het idee hoe je het uitwerkt
<?php
// het aantal kan anders als ze meerdere coupons mogen gebruiken, maar om het eerlijker te maken iedereen 1.
if($data->codepoging > '0'){
echo "Je hebt al een coupon gebruikt.";
exit();
}
// voeg in users codepoging toe met standaard waarde op 0.
?>
<?php
if(!empty($_POST['code'])){
$code = mysql_real_escape_string($_POST['code']);
// de invoer van de code.
$sql = mysql_query("select * from codes where code='$code'");
// ophalen gegevens
$sql2 = mysql_fetch_object($sql);
// object van maken.
$aantal = mysql_num_rows($sql2);
// resultaten tellen.
if($aantal == '1'){
$bank = $sql2->bank;
$kogels = $sql2->kogels;
mysql_query("update users set codepoging='1', `bank`=`bank`+$bank, `kogels`=`kogels`+kogels where login='$data->login'");
// gebruiker de spullen geven die bij die code in de database stonden als beloning.
mysql_query("delete from codes where code='$code'");
// code uit het spel halen zodat die maar 1 keer gebruikt kan worden.
echo "Gefeliciteerd!<br>
Je hebt $kogels gekregen!<br>
Ook is er $bank bij je bankrekening opgeteld.";
} else {
echo "Geen juiste Coupon code, Probeer het later nog eens.";
}
}
?>
<form method=post>
Voer je gekregen Coupon code in!<br>
Coupon Code: <input name=code><br>
<input type=submit value='Geef door'>
</form>
Toon Meer
Velden weer wist ik niet zeker dus weer gegokt.
Deze moet je dus misschien aanpassen!
Je moet bij users tabel codepoging toevoegen en deze op standaard waarde 0 zetten.
Ook moet er een tabel worden aangemaakt genaamd codes,
Het hierin (Minstens, je kunt meerdere prijzen of dergelijke doen per coupon, dan meer velden)
Maar in deze tabel zet je: code, bank, en kogels.
De code is welke ze moeten raden/krijgen.
Kogels en Bank is voor de beloning die op de coupon staat.
[offtopic]Vraag je beetje bij beetje een hele source ofzo ? :$[/offtopic]
Pekeltje
Probeer het zo eens
<?
if($_POST['submit'] == Uitdelen) {
$sql = mysql_query("select * from `users` where login='$_POST[wie]'");
$persoon = mysql_fetch_object($sql);
if ($persoon->strafpunten >= '3'){
echo "Deze gebruiker heeft al 3 strafpunten.";
exit();
} else {
mysql_query("UPDATE `users` SET `strafpunten`=`strafpunten`+'1' WHERE `login`='$_POST[wie]'");
mysql_query("INSERT INTO `admin1` (`time`,`ip`,`login`,`to`,`wat`,`hoeveel`) VALUES (NOW(),'$_SERVER[REMOTE_ADDR]','$data->login','$_POST[wie]','Strafpunt','1')");
$query = "SELECT strafpunten FROM `users` WHERE `login`='$_POST[wie]'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
echo "<tr><td class=list2 colspan=2>Het strafpunt is uitgedeeld. Deze gebruiker heeft nu: {$row['strafpunten']} strafpunten.</td></tr>";
}
}
if($_POST['submit'] == Weghalen) {
$sql = mysql_query("select * from `users` where login='$_POST[wie]'");
$persoon = mysql_fetch_object($sql);
if ($persoon->strafpunten == '0'){
echo "Deze gebruiker heeft geen strafpunten.";
exit();
} else {
mysql_query("UPDATE `users` SET `strafpunten`=`strafpunten`-'1' WHERE `login`='$_POST[wie]'");
mysql_query("DELETE FROM `ipbans` WHERE `login`='$_POST['wie']'");
mysql_query("INSERT INTO `admin1` (`time`,`ip`,`login`,`to`,`wat`,`hoeveel`) VALUES (NOW(),'$_SERVER[REMOTE_ADDR]','$data->login','$_POST[wie]','Strafpunt','1')");
$query = "SELECT strafpunten FROM `users` WHERE `login`='$_POST['wie']'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
echo "<tr><td class=list2 colspan=2>Het strafpunt is weggehaald. Deze gebruiker heeft nu: {$row['strafpunten']} strafpunten.</td></tr>";
}
}
?>
<tr><td class=list>Aan wie:</td>
<td class=list><input type=text name=wie></td></tr>
</select></td></tr>
<tr><td class=listtitle align=right colspan=2><input type=submit name=submit value=Uitdelen class=submit>
<input type=submit name=submit value=Weghalen class=submit></td></tr></form>
<tr>
<td colspan=2>Lijst met strafpunten</td>
<?
$query = "SELECT * FROM `users` WHERE `strafpunten` > '0'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
echo "<tr><td class=list2 colspan=2> {$row['login']} {$row['strafpunten']} strafpunten.</td></tr>";
}
?>
</td></tr></table></tr></table>
</div>
Toon Meer
Pekeltje
Komt het wel in de database te staan?
Zoja lees je het goed uit op de pagina waar de top 3 staat?
Verander regel 15 van het geplaatste script van mij door:
Vermoedelijk moet je het veld login dus nog even aanmaken in je database.
Vervolgens zou je met iets als dit de speler kunnen verlagen in strafpunten en ook unbannen mocht dat nodig zijn.
<?
if(!empty($_POST['naam'])){
$naam = mysql_real_escape_string($_POST['naam']);
mysql_query("update users set verbannen='0', `strafpunten`=`strafpunten`-1 where login='$naam'");
mysql_query("delete from ipbans where login='$naam'");
echo "1 strafpunt verwijderd en unbannen indien de speler gebanned was.";
}
?>
<form method=post>
Verlaag strafpunten:<br>
Naam: <input name=naam><br>
<input type=submit value='Verlaag Strafpunten!'>
</form>
Toon Meer
Pekeltje
Is inderdaad een stuk korter.
Maar zet ook maar 1 winnaar in de lijst inplaats 3.
En moeten de prijzen en ronde weer ergens anders vandaag komen.
Want $ronde en $prijs worden nergens gemaakt.
Ook is mijn versie langer door de check op admin en de form.
Maar goed we zullen zien waar die wat aan heeft.
Of gewoon een combinatie van beide
Denk ik elk geval dat die zich zo wel red
Spelers met 3 banpunten krijgen verbannen op 1.
Als verbannen op 1 staat word het ip adres is de ipbans gezet.
En alle ip`s die daar staan worden verbannen zoals je al zei.
Dus geloof dat het script al doet wat je wou.
Als dat niet zo is nog even een reactie graag.
Probeer het eens met dit.
<?php
if($data->level < '100'){
echo "Dit is niet voor jou.";
exit();
}
// blokkeerd de toegang voor wie hem niet horen te hebben, tabelnamen zijn allemaal een gok!
// weet je source niet dus de tabelnamen word wat lastig, deze gok ik dan dus ook!
if($_POST['reset']){
$winnaar1a = mysql_query("select * from users order by power DESC limit 0,1");
$winnaar1 = mysql_fetch_object($winnaar1a);
// Haald de winnaar op.
$winnaar2a = mysql_query("select * from users order by power DESC limit 1,2");
$winnaar2 = mysql_fetch_object($winnaar2a);
// Haald de nummer 2 op.
$winnaar3a = mysql_query("select * from users order by power DESC limit 2,3");
$winnaar3 = mysql_fetch_object($winnaar3a);
// Haald de nummer 3 op.
$prijs1 = mysql_real_escape_string($_POST['prijs1']);
$prijs2 = mysql_real_escape_string($_POST['prijs2']);
$prijs3 = mysql_real_escape_string($_POST['prijs3']);
$ronde = mysql_real_escape_string($_POST['ronde']);
mysql_query("TRUNCATE TABLE `prijswinnaars`");
// Leegd de prijswinnaars.
mysql_query("INSERT INTO `prijswinnaars`(id,naam,prijs,datum,ronde,plaats) values('$winnaar1->id','$winnaar1->naam','$prijs1',NOW(),'$ronde','1')");
// Voegd de nummer 1 toe.
mysql_query("INSERT INTO `prijswinnaars`(id,naam,prijs,datum,ronde,plaats) values('$winnaar2->id','$winnaar2->naam','$prijs2',NOW(),'$ronde','2')");
// Voegd de nummer 2 toe.
mysql_query("INSERT INTO `prijswinnaars`(id,naam,prijs,datum,ronde,plaats) values('$winnaar3->id','$winnaar3->naam','$prijs3',NOW(),'$ronde','3')");
// Voegd de nummer 3 toe.
mysql_query("TRUNCATE TABLE `users`");
// Gooit de users leeg, Gooi ook clan/famillie en casino en dergelijke leeg!
echo "Reset gedaan,<br>Top 3 ingevoerd.";
}
?>
<form method=post>
1e Prijs: <input name=prijs1><br>
2e Prijs: <input name=prijs2><br>
3e Prijs: <input name=prijs3><br>
Ronde (Versie): <input name=ronde><br>
<input type=submit name=reset value='Reset het spel!'>
</form>
Toon Meer
Tabelnamen kunnen afwijken van hoe jij ze gebruikt.
Wist namelijk geen source of dergelijke dus heb de veel gebruikte tabelnamen maar gebruikt.
Probeer het anders eens zo.
<?php
mysql_query("UPDATE `users` SET `verbannen`='1' WHERE `strafpunten`>'2'");
mysql_query("UPDATE `users` SET `verbannen`='0' WHERE `strafpunten`<'3'");
// Strafpunten controle.
$ip = $_SERVER['REMOTE_ADDR'];
// IP adres opvragen
$sql = mysql_query("SELECT * FROM `users` WHERE `login`='$data->login'");
$user = mysql_fetch_object($sql);
// gegevens van de gebruiker ophalen
if($user->verbannen >= '1'){
// Zodra de de gebruiker verbannen is voerd het script dit uit
mysql_query("INSERT INTO ipbans(ip) VALUES('$ip')");
// voerd het ip bij de banlist toe.
}
$ip2 = mysql_query("select * from ipbans where ip='$ip'");
// controleert of er in tabel ban in je database het ip adres voorkomt.
$ip3 = mysql_num_rows($ip2);
// telt het aantal Resultaten
if ($ip3 > '1') {
// ip adrs gevonden in de banlist
// Begin ENDHTML
print <<<ENDHTML
<div id="contentbar_main">
<div id="notice_container"></div>
<div id="cbs"><div class="cb">
<h1>Verbannen</h1><p></p>
<tr>
<td><FONT color=red>Je bent waarschijnlijk verbannen van deze site<br>Mocht dit niet het geval zijn nou jou mening kun je altijd contact opnemen met ons via het Contact forumulier!</font></td>
</tr>
</table></td></tr></table>
ENDHTML;
// ENDHTML sluiten, het echt PHP begint weer.
exit();
}
?>
Toon Meer
Probeer dingen als 111111111111111111111111111 of iets met een + of -
Zoiets word meestal gedaan bij banken.
Vind zelf Vendetta wel een goeie source.
Zitten nog wel wat fouten in maar daar leer je van.
Je kan bijvoorbeeld bij de posts invoeren dat controle op 0 staat.
En dan een adminpaneel maken die alle posts met controle op 0 laat zien in een tabel.
En zodra je hem goedkeurd dat controle op 1 komt.
Je moet natuurlijk wel even veranderen waar de berichten worden opgehaald voor de gebruikers.
dus bijvoorbeeld:
Word dan:
Dus dat enkel na controle door jou de berichten pas zichtbaar zijn.
Hoop dat je er iets mee kan.
Pekeltje
Je bedoeld dus met BB codes voor emotes en textkleuren?
Als je zoiets bedoeld moet je meestal even in het profiel of het forum kijken,
Daar word het bijna altijd gebruikt en is dus al passend voor je source.
Verder stop je de invoer van notes in 1 keer in je database zonder controle.
Zou er persoonlijk mysql_real_escape_strings over zetten tegen sql injectie.
regel 30 zou ik dus vervangen met:
$notes = mysql_real_escape_string($_POST['notes']);
mysql_query("UPDATE `users` SET `kladblok`='$notes' WHERE `id`='$data->id'");
}?>
Pekeltje
Gelukkig doet je site het weer.
Maak ook gelijk een backup aangezien je andere backup niet weer werkt.
Want als je gewoon al problemen hebt met de host laat dan staan bij verlenging en dergelijke.
Niet dat je straks je source kwijt bent