Ještě za časů mého adminování jednoho menšího serveru jsem řešil problémy s populací.
Dobré je mít přehled o tom jaký způsob propagace je účinný, a z jakých zdrojů se hráči o serveru dozvěděly.
Takže jak na to?
Vyplnit údaje k připojení k databázi.
Soubor uložíme jak konfigurace.php
<?php
$user = 'root'; // Jméno uživatele pro připojení do databáze MySQL
$pass = 'heslo_veslo'; // Heslo uživatele pro připojení do databáze MySQL
$realmd = 'realmd'; // Jméno Databáze s Accounty
$ip = '127.0.0.1'; // IP adresa
?>
Použít tento php script na registrace.
Soubor uložíme jako reg.php
<?
include ('konfigurace.php');
$ref = $_GET['ref'];
echo "<table align=\"center\" width=\"270\">";
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">";
echo "<tr><td>Account:</td><td><input type=\"text\" name=\"account\" size=\"25\"></td></tr>";
echo "<tr><td>Heslo:</td><td><input type=\"password\" name=\"heslo1\" size=\"25\"></td></tr>";
echo "<tr><td>Heslo znovu:</td><td><input type=\"password\" name=\"heslo2\" size=\"25\"></td></tr>";
echo "<tr><td>Email:</td><td><input type=\"text\" name=\"email\" size=\"25\"></td></tr>";
echo "<tr><td>Typ účtu:</td><td><select name=\"tbc\">";
echo " <option value=\"\">-- vyber typ účtu --</option>";
echo " <option value=\"0\">bez datadisku</option>";
echo " <option value=\"1\">s datadiskem</option></td></tr>";
echo "<tr><td>Referent:</td><td><input type=\"text\" name=\"ref\" size=\"25\" value=\"$ref\" readonly></td></tr>";
echo "<tr><td></td><th><input type=\"submit\" Value=\"Registrovat\" size=\"25\"></th></tr>";
echo "</form>";
echo "<tr><th colspan=\"2\">";
$account = addslashes($_POST['account']);
$password1 = addslashes($_POST['heslo1']);
$password2 = addslashes($_POST['heslo2']);
function sha_password($account,$password){
$account = strtoupper($account);
$password = strtoupper($password);
return SHA1($account.':'.$password);
}
if ($account == "" || $password1 == "" || $password2 == "" || $email="" || $tbc=""):
echo "Je nutno vyplnit všechny údaje";
else:
if ($password1 != $password2):
echo "Zadaná hesla se neshodují";
else:
$password = $password1;
$account = strtoupper($account);
$heslo = sha_password($account, $password);
$email = addslashes($_POST['email']);
$tbc = addslashes($_POST['tbc']);
$ref = addslashes($_POST['ref']);
$dbconn = mysql_connect($ip, $user, $pass) or die ("Spojení nebylo uspěšné");
mysql_select_db($realmd, $dbconn) or die ("Nepovedlo se vybrat databázy $realmd");
$acc_dotaz_sql = "SELECT id, username, sha_pass_hash FROM account WHERE username='".$account."'";
$acc_dotaz_sql_vysledek = mysql_query($acc_dotaz_sql, $dbconn);
$row = mysql_fetch_array($acc_dotaz_sql_vysledek);
if ($row["id"] != ""):
echo "Účet již existuje";
else:
mysql_select_db($realmd, $dbconn) or die ("Nepovedlo se vybrat databázy $characters");
$sqlko = "INSERT INTO `account` (`username`,`sha_pass_hash`,`email`,`tbc`,`referer`) values ('$account','$heslo','$email','$tbc','$ref')";
mysql_query($sqlko, $dbconn) or die ('něco nevyšlo v querry');
echo "Účet $account byl vytvořen!";
endif;
mysql_close();
endif;
endif;
echo "</strong></th></tr></table>";
?>
Vytvořit nový sloupec do tabulky account, kam se budou data zapisovat. (executneme na DB realmd)
ALTER TABLE account ADD (referer text);
Nyní stačí na registrace používat link ve tvaru
www.mujserver.cz/reg.php?ref=název_referenta
V praxy to vypadá tak, že když umístíte registrační link například na http://servery.wowresource.eu , tak váš odkaz, který umístíte na tento web bude vypadat následovně
www.mujserver.cz/reg.php?ref=servery.wowresource.eu
Každý kdo klikne na tento odkaz dá php scriptu vědět odkud přišel a ten tento údaj spolu s registrací zapíše do databáze.
Pokud by byl admin tvořívý, mohl by tuto vychytávku využít i k nějaké motivační soutěži pro hráče "Kdo přivede najvíce lidí vyhrává" do linku dosadí svůj accname (?ref=hisgrak).
Nashromážděná data budeme chtít jistě nějak zpracovat.
Na to můžeme použít tento jednoduchý script, který nám vypíše jméno zdroje a počet registrací.
Soubor uložíme jako prehled.php
<?
include ('konfigurace.php');
$connect = mysql_connect($ip, $user, $pass) or die ("Spojení se serverem $ip nebylo uspěšné");
mysql_select_db($realmd, $connect) or die ("Nepodařilo se spojit databází $realmd");
echo "<h1 align=center>Odkud prisly hráci</h1>";
echo "<table cellpadding=0 cellspacing=0 bgcolor=orange border=0 width=300 align=center><tr><th>Zdroj</th><th>Počet registací</th></tr>";
$dotaz = "SELECT DISTINCT referer FROM account WHERE referer != '' ORDER by referer";
$result = mysql_query($dotaz);
while ($vystup = mysql_fetch_array($result))
{
echo "<tr bgcolor=\"lightblue\"><td align=center>".$vystup["referer"]."</td>";
echo "<td align=center>";
echo mysql_num_rows(mysql_query("SELECT referer FROM account WHERE referer = '".$vystup["referer"]."'"));
echo "</td></tr>";
}
mysql_close();
echo "</table>";
?>
Výsledeky vypíšeme spuštěním prehled.php
pozn.: všechny soubory musí být ve stejném adresáři.
Tak to je vše. Doufám že to bude všem fungovat, a bude vám to prospěšné
Případné dotazy sem do topicku