Autor Zpráva
Sylar
Profil *
Tedy funguje, ale špatně.
Ten script jsem našel někde na webu a jen si ho upravil k obrazu svému.
Tuhle stránku pošlu uživateli abych získal jeho IP, která se mi uloží do db.

ban.php
<?php
            mysql_connect("localhost", "user", "heslo");
            mysql_select_db("bany");
            mysql_query('SET NAMES UTF8');

  mysql_query("CREATE TABLE IF NOT EXISTS `ban` (
            `id` int(10) unsigned NOT NULL auto_increment,
            `ip` varchar(255) character set utf8 collate utf8_czech_ci,
            PRIMARY KEY  (`id`)
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=1 ;") or die("Nastala chyba: " . mysql_error());

  $user_ip = $_SERVER['REMOTE_ADDR'];
  $query = mysql_query ("INSERT INTO `ban` VALUES ('','$user_ip')") or die ( mysql_error());
      echo "<html>
              <head>
                <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />
                <title>BAN</title>
              </head>
              <body>
                <center><strong>Congratulation. You've just got BAN Enjoy it !</strong></center>
              </body>
            </html>";
?>


DB i tabulky jsou v poho. V phpmyadmin je vidím, jsou v pořádku vytvořené.

Pak na indexu už jen kontroluju vstupní IP a porovnávám je s těmi v db tímto scriptem:

index.php
<?php
  @mysql_connect("localhost", "user", "heslo") or die ("Přihlášení se nepodařilo");
  @mysql_select_db ("bany") or die ("Nepovedlo se vybrat databázi");
  $user_ip = $_SERVER['REMOTE_ADDR'];
  $query = mysql_query ("SELECT * FROM ban");
  while ($mysql_ip = mysql_fetch_array ($query)) {
    if ($user_ip = $mysql_ip['ip']) {
      echo "<html>
              <head>
                <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />
              </head>
              <body>
                <center><strong>Máš BAN, záškodníku!</strong></center>
              </body>
            </html>";
      exit;
    }
  }
?>
zbytek html stránky, který se nezobrazí uživateli s BANánem.


Protože mám stránky dělané přes includy, stačí to mít pouze na indexu.

Tak a ted, kde je problém. Pošlu někomu stránku ban.php, jeho IP se mi uloží do db, v db mám tedy 1 záznamů a on mi píše že nemůže na stránky. Co je ale špatné, že já také ne, a ani ostatní uživatelé, kteří vstoupí na stránky, tedy na index.php. Jakmile pošlu někomu ban.php a jeho IP se mi uloží do db, na stránky nemůže pak nikdo, ale přitom jejich IP není vůbec uložená v db, je tam pouze pořád ta jedna, přesto se pak nemůže nikdo na stránky dostat.

Nevíte prosím někdo kde je problém ? :(
TSD
Profil *
Máš tam několik chyb, ze kterých se ježí chlupy.

- jednak jsem ještě neviděl, aby někdo vytvářel tabulku z php, to je dost extrém, ale budiž
- procházíš všechny záznamy v tabulce a každý ověřuješ. Oprav si
$query = mysql_query ("SELECT * FROM ban");
na SELECT * FROM ban WHERE ip = $user_ip a nebudeš muset procházet záznamy, vystačíš si s mysql_num_rows
-
 if ($user_ip = $mysql_ip['ip']) {
= oprav na ==
Sylar
Profil *
Jouuu super ... bylo to tim ==, taková primitivní chyba, stydim se ... ale díky moc :-)
JJ vim, kód je strašnej, ale říkám, není můj, já bych nedal dohromady ani tohle, a jsem rád že to vůbec funguje. PHP se teprve pomalu učim, tak ho zatim trochu, trochu víc prznim no ... časem to bude lepší ... :-)
Ještě jednou moc díky
Toto téma je uzamčeno. Odpověď nelze zaslat.

0