Autorius Tema: "Ban" sistema.  (Skaityta 635 kartus)

eXpire

  • Svečias
"Ban" sistema.
« Įrašytas: 2012-11-06 19:17:27 pm »
Sveiki kadangi mokausi php/mysql sumasčiau tokia mini "programėlę"(sistemą) kuri jeigu tu esi paprastas lankytojas rodo tau lankytojo turinį, jeigu esi administratorius rodo administratoriau turinį,o jeigu esu "uždraustas" tau neleidžia įeiti į svetainę.(sistema bus dar tobulinama ir bandysiu apsaugoti nuo proxy) tik labai norėčiau sulaukti pagalbos "Optimizuojant"/pagreitinat kodą, kad jis nebūtų toks "Griozdas".
Štai kodas :
<?php
include("config.php");
$ip getenv("REMOTE_ADDR");
$result mysql_query("SELECT *FROM `lankomumas`");
$resultas mysql_query("SELECT *FROM `admin`");
$resultatas mysql_query("SELECT *FROM `banai`");

while(
$row mysql_fetch_array($resultatas)){
$check5 mysql_query("SELECT*FROM `banai` WHERE ip='$ip'") or die(mysql_error());
$check6 mysql_num_rows($check5);
if (
$check6 != 0) {
header('Location: [url=http://google.lt]http://google.lt[/url]');
}
}
while(
$row mysql_fetch_array($result)){
$check mysql_query("SELECT*FROM `lankomumas` WHERE lankytojas='$ip'") or die(mysql_error());
$check2 mysql_num_rows($check);
if (
$check2 != 0) {
} elseif (
$check2 == 0) {
$query "INSERT INTO `bans`.`lankomumas` (`lankytojas` )VALUES ('".$ip."');";
mysql_query($query);
}
 }
while(
$row mysql_fetch_array($resultas)){
$check3 mysql_query("SELECT*FROM `admin` WHERE Ip='$ip'") or die(mysql_error());
$check4 mysql_num_rows($check3);
if (
$check4 != 0) {
die(
"Labas,administratoriau!");
}  else {
die(
"Labas, mielas sveteli !");
}
 }
?>


Prisijungęs Modestas Vaitkevičius

  • Dalyvis
  • **
  • Įrašai: 2005
  • Karma: +56/-16
    • Žiūrėti profilį
    • Apie mane
Ats: "Ban" sistema.
« Atsakymas #1 Įrašytas: 2012-11-06 19:18:57 pm »
Atlieki per daug nereikalingų veiksmų :)
Visos while... kam tau jos? Tikrini konkretų ir viskas.
Žodžiu, čia pas tave bardakas ir nelabai ką įžiūrėsi.. :(

eXpire

  • Svečias
Ats: "Ban" sistema.
« Atsakymas #2 Įrašytas: 2012-11-06 19:21:40 pm »
Ta prasme padaryti $check = "visos lenteles ir visos reikšmes" ir taip traukti reikšmes?

Prisijungęs Modestas Vaitkevičius

  • Dalyvis
  • **
  • Įrašai: 2005
  • Karma: +56/-16
    • Žiūrėti profilį
    • Apie mane
Ats: "Ban" sistema.
« Atsakymas #3 Įrašytas: 2012-11-06 19:26:14 pm »
Deja, bet ne..
Taip, čia šiuo atvėju reikia 3 užklausų ir 3 count :) Viskas :)

Manualai.lt Forumas

Ats: "Ban" sistema.
« Atsakymas #3 Įrašytas: 2012-11-06 19:26:14 pm »

Neprisijungęs Interneto keleivis

  • Naujokas
  • *
  • Įrašai: 397
  • Karma: +6/-8
    • Žiūrėti profilį
    • Daugiau apie Jį.
Ats: "Ban" sistema.
« Atsakymas #4 Įrašytas: 2012-11-06 20:41:12 pm »
Naujoke, eXpire, kodėl tu užsiciklinai ties ciklais?
Guten Tag!

eXpire

  • Svečias
Ats: "Ban" sistema.
« Atsakymas #5 Įrašytas: 2012-11-06 21:24:39 pm »
Nes aš nelabai dar suprantu pilno veikimo principo ir bandau suprast, bet niekur nerandu paaiškinimų, todėl ir kreipiuosi į ponus šiame forume :))

Prisijungęs Modestas Vaitkevičius

  • Dalyvis
  • **
  • Įrašai: 2005
  • Karma: +56/-16
    • Žiūrėti profilį
    • Apie mane
Ats: "Ban" sistema.
« Atsakymas #6 Įrašytas: 2012-11-06 21:58:31 pm »
Jei nevisiškai supranti - taip, klausk forume, bet tokių klaidų venk :) Skirk tai, kad ciklai yra galybei duomenų apdoroti, o ne šiaip sau :)

Neprisijungęs Interneto keleivis

  • Naujokas
  • *
  • Įrašai: 397
  • Karma: +6/-8
    • Žiūrėti profilį
    • Daugiau apie Jį.
Ats: "Ban" sistema.
« Atsakymas #7 Įrašytas: 2012-11-07 09:51:59 am »
Taip, ciklai netinka paieškoms, tik veiksmams kokiems, pvz visiems išsiųsti elektroninius laiškus :D, bet ne vienos eilutės paieškai ;).
Guten Tag!

eXpire

  • Svečias
Ats: "Ban" sistema.
« Atsakymas #8 Įrašytas: 2012-11-07 16:08:17 pm »
gal galėtumete kaip pavizdį man parašyti "Optimalaus" kodo, kuris suranda duomenu bazei įraša , lankytojo ip ?

Neprisijungęs Tautvydas

  • Dalyvis
  • **
  • Įrašai: 427
  • Karma: +11/-0
    • Žiūrėti profilį
Ats: "Ban" sistema.
« Atsakymas #9 Įrašytas: 2012-11-07 17:29:50 pm »
Registracijos sistema jau yra, kuri narius į duombazę suveda?

Čia pagal mane poros ifų užtenka pvz.:

<?php
$uzklausa
=mysql_fetch_array(mysql_query("SELECT * FROM useriai "));  // Čia nurodai, kad iš būtent tos skilties traukti info
$uzklausa['vardas']; // tuose skliaustuose nurodai ką imti iš duombazės, į kurią kreipeisi per tą užklausą
$uzklausa['ipas']; // tuose skliaustuose nurodai ką imti iš duombazės, į kurią kreipeisi per tą užklausą
$uzklausa['dar_kokia_info']; // tuose skliaustuose nurodai ką imti iš duombazės, į kurią kreipeisi per tą užklausą
$uzklausa['banintas']; // tuose skliaustuose nurodai ką imti iš duombazės, į kurią kreipeisi per tą užklausą

if ( $uzklausa['banintas'] == ) {    // patikrini ar tas ištrauktas duomuo yra lygus 1. Na bent jau aš visus nebanintus dėčiau 0, o kai užbanini tiesiog pakeiti į 1

echo " Tu užblokuotas ";
elseif ( 
$uzklausa['admin'] == ) {
echo 
"Prisijunge adminas "
} else {
echo 
"Prisijungė paprastas vartotojas ";

Aš maždaug taip mąstyčiau, tik žinoma turi nurodyti konkrečias užklausas, kad imtų tik reikiamus duomenis iš DB ir t.t.

Manualai.lt Forumas

Ats: "Ban" sistema.
« Atsakymas #9 Įrašytas: 2012-11-07 17:29:50 pm »