• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[TFS] Cleaning characters

Mindez

Creator of WoL
Joined
Jun 17, 2007
Messages
119
Reaction score
0
I was going to finish it but I've got enough stuff to do as it is with the World of Lastwar server and all so I decided I'd give you whatever I have and let someone else finish it. It's about done, just needs a few variables fixed.

Code:
<?php
// PLEASE CONFIGURE THE FOLLOWING PARAMETERS
// Connection:
$sqlhost = '127.0.0.1'; // IP Address
$sqluser = 'root'; // Username
$sqlpass = 'pass'; // Password
$sqldb = 'db'; // Database name

// Settings:
$lvl = '8'; // Characters under this level will be deleted
$days = '7'; // How many days since last login?
// END OF CONFIGURATION!
?>




<?php
error_reporting (E_ALL ^ E_NOTICE);
echo '<font size="7">Clean characters</font><br>By Mindez<br><br>';
$conn = mysql_connect($sqlhost, $sqluser, $sqlpass) or die ('<font size="5" color="#FF0000">Error connecting to MySQL, check connection information!</font>');
$db_found = mysql_select_db($sqldb);
$result = mysql_query('SELECT * FROM players') or die(mysql_error());
$row = mysql_fetch_assoc($result);
$limit = strtotime('+'. $days .' days');
$checklast = $row['lastlogin'];
$charlevel = $row['level'];
$check1 = 0;
$check2 = 0;
$error = '';
$answer = $_REQUEST['text'];

if($answer == 'delete') RealDelete($sqlhost, $sqluser, $sqlpass, $sqldb, $checklast, $finallimit);
elseif($answer == 'value') FakeDelete($sqlhost, $sqluser, $sqlpass, $sqldb, $checklast, $limit);
else Form($sqlhost, $sqluser, $sqldb, $db_found, $check1, $check2, $lvl, $days, $result);

function Form($sqlhost, $sqluser, $sqldb, $db_found, $check1, $check2, $lvl, $days, $result)
{
	echo '//-----------[Connection information]------------//<br>';
	echo '<b>IP Address:</b> '. $sqlhost .'<br><b>Username:</b> '. $sqluser .'<br><b>Password:</b> (Hidden)<br><b>Database:</b> '. 	$sqldb .'<br>';
	if ($db_found){ mysql_select_db($sqldb); echo '<br><b>Check: <font size="+1" color="#00FF00">OK!</font></b><br><br>'; $check1 = 1;}
	else echo "Database was not found! Check your connection settings!";
	?>
	
	<?php
	echo '//-----------[Settings]---------------------------//<br>';
	echo '<b>Level limit:</b> '. $lvl .'<br><b>Days since last login:</b> '. $days .'<br>';
	
	if(is_numeric($lvl) AND is_numeric($days)){ echo '<br><b>Check: <font size="+1" color="#00FF00">OK!</font></b><br><br>'; $check2 = 1;}
	else echo '<br><b>Check: <font size="+1" color="#FF0000">WRONG!</font></b> Level limit and days can only be numbers!<br><br>';
	?>
	
	<?php
	echo '//----------[Result]------------------------------//<br>';
	$sql = mysql_query("SELECT * FROM players WHERE  '. $checklast .' < '. $limit .' ORDER BY lastlogin DESC");
	if($check1 = 1 AND $check2 = 1){
		echo 'Everything seems to be OK!<br><br>';
		echo '____________________<br><br>';
		echo '<b>The following characters will be deleted:</b><br>';
		while($raw = mysql_fetch_assoc($result))
		{
			echo ''. $raw['name'] .'<br>';
		}
		echo '____________________<br><br>';
	 	echo 'Do you want to <u>delete</u> or just set the character\'s <u>value</u> to "deleted"?<br>(Write "delete" or "value")<br>';
	 	echo '<form action="" method="post"> <input type="text" name="text"> <br> <input type="submit"> </form>';
	}
	else echo '<b>Check your configuration!</b>';
}

?>

<?php
function FakeDelete($sqlhost, $sqluser, $sqlpass, $sqldb, $checklast, $limit)
{	
	$conn = mysql_connect($sqlhost, $sqluser, $sqlpass) or die ('<font size="5" color="#FF0000">Error connecting to MySQL, check connection information!</font>');
	$db_found = mysql_select_db($sqldb);
	
	$time = ($limit*24*60*60);	
	$delete = mysql_query('UPDATE players SET deleted = 1 WHERE level < '.$level.' AND lastlogin < UNIX_TIMESTAMP()-'.$time.';');
	echo 'Done<br><br><br><font size="8"><b>REMOVE THIS SCRIPT FROM YOUR SERVER SO NOBODY CAN ACCESS IT!</b></font>';
}

function RealDelete($sqlhost, $sqluser, $sqlpass, $sqldb, $checklast, $finallimit)
{
	$conn = mysql_connect($sqlhost, $sqluser, $sqlpass) or die ('<font size="5" color="#FF0000">Error connecting to MySQL, check connection information!</font>');
	$db_found = mysql_select_db($sqldb);
	$delete = mysql_query("DELETE * FROM players WHERE  '. $checklast .' < '. $limit .'");
	echo 'Done<br><br><br><font size="8"><b>REMOVE THIS SCRIPT FROM YOUR SERVER SO NOBODY CAN ACCESS IT!</b></font>';
}
?>

<?php
mysql_close($conn); // Closes the connection when done
?>

If someone would be kind enough to fix the last few parts I'd be greatful :)
 
this is somewhat like nicaw's autoerase features
I wonder why didn't gesior do it for his unnamed aac
this is a must-have feature for all ot gesior users
 
Back
Top