<?
session_start();
require("config.php");
$ipadres=$_SERVER['REMOTE_ADDR'];
//query opbouwen
$query="SELECT * FROM ipban WHERE ipadres='" .$ipadres ."'";
$result=mysql_query($query) or die ("FOUT IN DE QUERY: " . mysql_error());
//als het ipadres van de bezoeker is gevonden in de ipbanlijst dan
//doorsturen naar een zelf te kiezen pagina
$aantal = mysql_num_rows($result);
if ($aantal >= 1)
{
header("Location: banned.php");
die ();
}
if($submit)
{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if(!$result)
{
$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of uw account is nog niet geactiveerd...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}
else
{
while($object = mysql_fetch_assoc($query))
{
$memberid = $object['memberid'];
$logintimes = $object['logintimes'];
}
$ipadres=$_SERVER['REMOTE_ADDR'];
$time=time();
mysql_query("UPDATE members SET ipadres='$ipadres' WHERE memberid = '$memberid'") or die (mysql_error());
if($logintimes == 0)
{
$logintimes2 = $logintimes+1;
mysql_query("UPDATE members SET logintimes='$logintimes2', laatstonline=NOW(), sessiebegin='$time', cashgeld='3000', bankgeld='0' WHERE memberid = '$memberid'") or die (mysql_error());
}
elseif($logintimes > 0)
{
$logintimes2 = $logintimes+1;
mysql_query("UPDATE members SET logintimes='$logintimes2', laatstonline=NOW(), sessiebegin='$time' WHERE memberid = '$memberid'") or die (mysql_error());
}
else
{
}
$login = 1;
session_register("login");
session_register("memberid");
}
}
if($login == 0)
{
?>
<form method="POST" action="">
<input type="hidden" name="submit" value="1">
Gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="20" value=""><br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="20" value=""><br><br>
<input type="submit" name="submit" value="Login">
<input type="reset" value="Registreren" onclick="document.location.href=('aanmelden.php')">
</form>
<?
}
elseif($login == 1)
{
header("Location: ingelogd.php");
}
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
?>
$a="Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of uw account is nog niet geactiveerd...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
mysql_query("UPDATE members SET ipadres='$ipadres' WHERE memberid = '$memberid'") or die(mysql_error());
if($logintimes==0)
{
$logintimes2=$logintimes+1;
mysql_query("UPDATE members SET logintimes='$logintimes2', laatstonline=NOW(), sessiebegin='$time', cashgeld='3000', bankgeld='0' WHERE memberid = '$memberid'") or die(mysql_error());
}
elseif($logintimes>0)
{
$logintimes2=$logintimes+1;
mysql_query("UPDATE members SET logintimes='$logintimes2', laatstonline=NOW(), sessiebegin='$time' WHERE memberid = '$memberid'") or die(mysql_error());
<?php
$query="SELECT * FROM ipban WHERE ipadres='" .$ipadres ."'";
$result=mysql_query($query) or die ("FOUT IN DE QUERY: " . mysql_error());
//als het ipadres van de bezoeker is gevonden in de ipbanlijst dan
//doorsturen naar een zelf te kiezen pagina
$aantal = mysql_num_rows($result);
if ($aantal >= 1)
{
header("Location: banned.php");
die ();
}
?>
<?php
$query="SELECT * FROM ipban WHERE ipadres='".$ipadres."'";
@Proximus:
dat maakt toch niks uit, het bannen werkt dacht ik goed.
ff moment volgens mij is er iets fout aant cookie gebruik...
edit: je sette de cookie op time(), en dat is dus niet in het verleden... dus blijft die cookie bestaan:!:
zoals mijn voorbeeld moet het werken, dus time()-3600 bijvoorbeeld.^^
Thomas - 07/05/2005 13:09 (laatste wijziging 07/05/2005 13:10)
- session_register() is verouderd
- je maakt geen gebruik van superglobals:
if($submit) ...
if(!$login) { ... (gevaarlijk !!! denk aan je_pagina.php?login=1 !!!)
unset($login); ? unset($_SESSION['login']) misschien? maar je sessie al weggegooid / vernietigd / whatever
Dus tijd om met een flinke bezem je scripts eens door te werken.
Tis een wonder dat je in de eerste plaats in kunt loggen .
@Proximus:
dat maakt toch niks uit, het bannen werkt dacht ik goed.
Performance zal met mijn query iets omhoog gaan. Niet veel maar alle kleine beetjes helpen. Vooral aangezien dit, volgens mij dan, weer een opzet is voor een text-based online game waar 100den mensen tegelijk kunnen zitten te spelen.
Het kan inderdaad beter zijn om eerst wat tutorials door te lezen, want je maakt nog gebruik van verouderde functies (zoals murfy al aangaf). Je moet proberen het nieuwste van het nieuwste te gebruiken, want dat is (vaak) het veiligste).
Probeer ook te letten op eht onnodig aanmaken van variabelen. Ik zie dat je ergens $time = time(); hebt staan. Dit is overbodig en kan dus weg, wat resulteert in een netter en overzichtelijker script. Je zal dit wel met een korrel zout nemen, maar je hebt er echt profijt van. Evenals goede namen verzinnen voor je variabelen. $a zegt voor jou waarschijnlijk genoeg, maar voor een vreemde niet. Wanneer je na een lange tijd weer terugkijkt op het script, zal je het waarschijnlijk ook niet meer snappen, dus zorg ten aller tijde voor de juiste benamingen.
In jouw script zou ik $a vervangen door bijvoorbeeld $sBericht. s staat voor string (rij letters en/of letters + cijfers). Haal variabelen buiten quotes! Een goed voorbeeld kan je in deze tutorial onderaan vinden: http://www.site...mp;id=78#6