Administracija pagal IP + patogus pridėjimas
Parašė SofteriZ 2012 sausio 19 15:01:59
Šiandien parodysiu kaip pasidaryti, kad tik tam tikri žmonės galėtų patekti į administracijos panelę. Taigi pirma mums reikės paprasčiausios [b]SQL[/b] užklausos.

Įeiname į pridėtinius puslapius, įterpiame šį kodą ir spaudžiame peržiūrėti:

[geshi=php]<?php
$uzklausa = dbquery("ALTER TABLE ".$db_prefix."users ADD adminip varchar(20) NOT NULL");
if ($uzklausa) echo "Užklausa atlikta, sekite tolimesniais nurodymais straipsnyje."; else mysqlerror();
?>[/geshi]

Toliau pagrindinėje direktorijoje susikuriame failą admin_ips.php. Į kurį įterpiame:

[frame] <html><style>
.warning {
max-width:600px;
height: 34px;
border: 1px solid #e4b22e;
background-repeat: no-repeat;
padding-left: 35px;
color: #9F6000;
background-color: #FEEFB3;
background-image: url('http://img823.imageshack.us/img823/8088/warningi.png');
}
.sekmingai {
max-width:600px;
height: 34px;
color: #4F8A10;
border: 1px solid #72a41f;
background-color: #DFF2BF;
background-repeat: no-repeat;
padding-left: 35px;
text-shadow: 0px 1px 1px #fff;
background-image: url('/blokai/registracija.png');
}
</style></html>
<?php
require_once "../maincore.php";
require_once THEMES."templates/header.php";

if(iADMIN){

if(isset($_POST['pridetiipa'])){
$narys = $_POST['nikas'];
$suma = $_POST['suma'];
$result = dbquery("UPDATE ".$db_prefix."users SET adminip='$adminip' WHERE user_id='$narys'");
echo"<center><div align='left' class='sekmingai' style='padding-top:6px;'><div style='padding-left: 14px;'><span style='text-shadow: 0px 1px 1px #f5f5f5;'><b>Pridėjote naują admininistratoriaus IP:</b> Jūs sėkmingai pridėjote priegą vartotojui prie administavimo pulto. Nepamirškite uždėti jam teisių.</span></div></center></div>";

}

opentable("Pridėti naują IP adresą");
echo "
<form name='pts' method='post' >
<table align='center' class='tbl-border' cellpadding='0' cellspacing='0' width='100%'>
<center><div align='left' class='warning' style='padding-top:6px;'><div style='padding-left: 14px;'><span style='text-shadow: 0px 1px 1px #f5f5f5;'><b>Apie administratorių IP pridėjimą:</b> Šios sistemos pagalba galite pridėti administratoriaus IP adresą. Be šios funkcijos narys negalės patekti į administracijos panelę.</span></div></center></div>
<tr>
<td width='30%' class='tbl2'><i>Nario ID<i></td>
<td class='tbl1'><input type='text' name='nikas' class='webform' style='width:380px;'></td>
</tr>
<tr>
<td width='30%' class='tbl2'>Administratoriaus IP</td>
<td class='tbl1'><input type='text' name='adminip' class='webform' style='width:380px;'></td>
<tr>
<td width='30%' class='tbl2'></td>
<td class='tbl1'>
<input type='submit' name='pridetiipa' value='Pridėti IP adresą' class='button'>
</td>
</tr>
</table>
</form>\n";
closetable();

}

require_once THEMES."templates/footer.php";
?>[/frame]

Dabar [b][color=orange]/administration/[/color][/b] kataloge kur norite, kad įleistų tik tam tikrus jūsų nurodytus ipus po [b]opentable[/b] kodo įterpiame:

[geshi=php]if ($_SERVER['REMOTE_ADDR'] == $userdata['adminip']) {[/geshi]

Po to susirandame closetable(); ir [u]prieš[/u] jį įterpiame šį kodą:

[geshi=php]}else{
echo "<center><div align='left' class='warning' style='background-repeat:no-repeat;padding-top:6px;'><div style='padding-left: 14px;'><span style='text-shadow: 0px 1px 1px #f5f5f5;'><b>IP adresas nerastas:</b> Jūsų IP adresas nerastas mūsų sąrašuose, prašome kreiptis į tinklapio administraciją.</span></div></center></div>";
}[/geshi]

Įrašyti naujus administratorių IP adresus galite per [b]admin_ips.php[/b] puslapį, jis matomas tik administratoriams.