Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Banowanie IP
Forum PHP.pl > Forum > PHP
urbi
Mam taki formularz :

<FORM ACTION="ban.php" METHOD="GET">
<INPUT NAME="ip"><br>
<INPUT TYPE="submit" VALUE="DODAJ">
</FORM>


I mam taki skrypt w php:


[php:1:d5864a28ac]<?php
<?
$tab = file('ban');
if (in_array($_SERVER['REMOTE_ADDR'], $tab))
{
header("location: http://www.wp.pl");
}
$plik=fopen('ban', 'a+');
fwrite($plik,$_GET['ip'] . "rn");
fclose($plik);
include('ban');
?>
?>[/php:1:d5864a28ac]

I jak zrobić jesli juz jest takie IP w bazie to niech niedodaje??
scanner
1. Załaduj plik do tablicy
2. spradz [manual:16164e4be9]in_array()[/manual:16164e4be9]
3. zrób [manual:16164e4be9]unset()[/manual:16164e4be9] tablicy
4. jeśli (2) to dodaj do pliku.
urbi
czyli jak powinien wygladac caly skrypt??
Nie znam sie za dobrze czytalem z manualu ale nic z tego nie wiem jak zrobic poniewaz ucze sie php od 2 dni prosze o clly skrypt
scanner
Przecież praktycznie masz już wszystko napisane w Twoim listingu.
Poświęć na naukę następne dwa dni i już.
uboottd
A co z w3cachami ?
urbi
Mam taki skrypt juz:
[php:1:612225c2a4]<?php
$tab = file('ban');
if (in_array($_SERVER['REMOTE_ADDR'], $tab))
{
header("location: http://www.wp.pl");
}
if (!in_array($_GET['ip'], $tab))
{
$file = fopen("ban", "a+");
fwrite($file, $_GET['ip']."rn");
fclose($file);
}
?>[/php:1:612225c2a4]I jak zrobic by po wpisaniu takiego samego IP w formularzu co dodalem wczesniej nie dodawalo tego IP jesczez raz co mam zle?questionmark.gif
konrad_vme
wystarczy warunek przestawić klamrę warunku IF laugh.gif
[php:1:86ac396491]
<?
$tab = file('ban');
if (in_array($_SERVER['REMOTE_ADDR'], $tab)){
header("location: http://www.wp.pl");
$plik=fopen('ban', 'a+');
fwrite($plik,$_GET['ip'] . "rn");
fclose($plik);
}
include('ban');
?> [/php:1:86ac396491]
urbi
nadal nie dziala wiec co zrobic??
konrad_vme
a jaki dostajesz błąd?
urbi
bledu nie ma tylko poprostu nawet niedodaje zadnego adresu IP do pliku.


Wiec jak to zrobic??
konrad_vme
oczywiście, ze nie dodaje, ponieważ jeżeli już raz uruchomiłeś skrypt, to drugi raz nie wpisze znowu twojego IP na listę, chyba o to ci chodziło smile.gif
urbi
Nie o to chodzilo mi o to ze mam formularz i nieraz chce dodac jakas osobe ktora chce by nie weszla na moja www to teraz robie sobie skrypt ze podaje adres IP i naciskam na przycisk dodaj i teraz chce by dodalo tan adres do pliku 'ban' lecz nieraz przez przypadek dwa razy mogl bym ten sam adres wpisac i chce przerobic ten kod zeby nie mozna bylo wiecej razy jak raz podawac tego samego IP.

I mam taki skrypt:


<?
$tab = file('ban');

if (in_array($_SERVER['REMOTE_ADDR'], $tab))
{
header("location: http://www.wp.pl");
}

if (!in_array($_GET['ip'], $tab))
{
$file = fopen("ban", "a+");
fwrite($file, $_GET['ip']."rn");
fclose($file);
}
?>


Jak powinien wygladac poprawnie by dzialal wedlug moich wskazowek??
KaMeLeOn
Prosze używać BBcode...
[php:1:712138e16c]<?php
$tab = file('ban');
for($i=0;$i<count($tab);$i++)
{
$tab[$i] = trim($tab[$i]);
}
if( !(in_array($_GET['ip'], $tab)) )
{
$file = fopen('ban', 'a');
fwrite($file, $_GET['ip'] . "rn");
fclose($file);
}
unset($tab);
?>[/php:1:712138e16c]
urbi
Nadal cos nie gra bo jak dodam wiecej IP to wtedy juz nie dziala czemu??

Mam takie kody:


[php:1:cea610a90c]w pliku: ban1.php
<? include('ban.php'); ?>
<FORM ACTION="ban.php" METHOD="GET">
<INPUT NAME="ip"><br>
<INPUT TYPE="submit" VALUE="DODAJ">
</FORM>[/php:1:cea610a90c][php:1:cea610a90c]
<?
// ban.php

$tab = file('ban');

if (in_array($_SERVER['REMOTE_ADDR'], $tab))
{
header("location: http://www.wp.pl");
}

for($i=0;$i<count($tab);$i++)
{
$tab[$i] = trim($tab[$i]);
}
if( !(in_array($_GET['ip'], $tab)) )
{
$file = fopen('ban', 'a');
fwrite($file, $_GET['ip'] . "rn");
fclose($file);
}
unset($tab);
?>
[/php:1:cea610a90c]
I w pliku ban czyli w tym pliku z lisat IP
Cytat
217.97.185.131
217.98.134.45
Wydaje mi sie ze nie dziala jak jest wpisane pare IP albo jedna linijka przerwy czemu tak jest?questionmark.gif

___
[scanner] Tak się używa BBCode
scanner
Zaczniesz do cholery stosowac prawidłowe BBCode, czy nie?
urbi
czytalem artykul o BBCode ale nie kapuje co mam zrobic z tym skryptem by dzialal??
urbi
A chodzi mi dokladnie pod tym w zgledem ze zle dziala ze jesli nie wpisze zadnego Ip i dodam to skrypt doda pusta linie do pliku textowego lecz jeslichce by natsepnie odczytalo adresy IP to jakos nie chce czytac i wogole jesli dobrze zauwazylem to zawsze tylko 1 linijke IP czyta a reszty nie czemu??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.