Avatar billede danieru Nybegynder
23. juli 2007 - 15:56 Der er 10 kommentarer og
1 løsning

Tilføje til array i anden fil.

Hejsa eksperter.

Jeg har fundet et script (ban script) og sidder og undrer mig over om hvis man har filen "liste.php" som ser sådan her ud :

<?php

$iplist = array("ip1, ip2, ip3"); // Bannede IPer

?>

Kan man så tilføje til $iplist via. en anden fil?
(så man ikke skal ind i filen for at tilføje der til)

Håber det blev forklaret så det var til at forstå.

Ellers kan der jo spørges ;)

Mvh. Danieru
Avatar billede w13 Novice
23. juli 2007 - 16:00 #1
Jeg tror umiddelbart, du skal opbevare ip'erne enten i et eksternt txt-dokument:

ip1
ip2
ip3

eller, endnu lettere, i en database. Og så skal $iplist naturligvis hente derfra.
Avatar billede danieru Nybegynder
23. juli 2007 - 16:03 #2
Nu er de allerede mere eller mindre i en ekstern fil, dog bare ikke txt, da jeg ikke lige ved hvordan man ikke skal gøre for at tjekke om de er der i så ;)

- og det med databasen har jeg også tænkt på, men været for doven til at lave det ;)..

Kunne du evt. forklare lidt nærmere hvordan man kan skrive til (evt) txt filen, og få php til at opfatte om ipen er der i?
Avatar billede jakobdo Ekspert
23. juli 2007 - 16:08 #3
Hvis du laver filen som w13 skriver:
ip1
ip2
ip3
ip4

Så kunne du læse filen ind med:

$myIps = file('navn_paa_fil_med_iper.txt');
foreach($myIps AS $ip)
{
if($ip == '127.0.0.1')
echo 'IP FUNDET<br />';
else
echo 'IP IKKE FUNDET<br />';
}
Avatar billede danieru Nybegynder
23. juli 2007 - 16:14 #4
Al right, jeg tror lige jeg viser resten af systemet, da jeg ikke er med ;o)

- Hvordan skulle man så evt. få det parret her ind i:

blocker.php:

<?php
ob_start();
include "liste.php"; // Liste over bannede IPer
include "../../cb.php"; // Check Ban

$ip = getenv("REMOTE_ADDR"); // IP adresse
// echo "$ip";
$found = false;
foreach ($iplist as $value) {
  if (strpos($ip, $value) === 0){
    $found = true;
  }
}

if ($found == true) {
  echo "top.location = \"../../banned.php\";\n";
}

?>
Avatar billede danieru Nybegynder
23. juli 2007 - 16:18 #5
nåh ja,
cb.php:

<?php
ob_start();
php?>
<!-- Ban system -->

<SCRIPT TYPE="text/javascript" LANGUAGE="javascript" SRC="admin/ipb/blocker.php">
</SCRIPT>
Avatar billede jakobdo Ekspert
23. juli 2007 - 16:27 #6
Du må ikke styre din ban via javascript, det kan folk så bare deaktivere.
Jeg må lige kigge på det senere.
Avatar billede danieru Nybegynder
23. juli 2007 - 16:38 #7
ufh, det havde jeg slet ikke tænkt på, godt nogen er vågene ;)
- Okay, tak for hjælpen so far, jeg smutte indtil ved 18 tiden, så er jeg tilbage på pinden hvis der så skulle være kommet noget :o)

// Danieru
Avatar billede jakobdo Ekspert
23. juli 2007 - 17:49 #8
Jeg ville klart lave det i mysql-database, meget nemmere.
Selve tjekket kan så laves som:

<?php
//Forbind til Mysql
$query = mysql_query("SELECT felt_navn FROM ip_tabel WHERE ip = INET_ATON('".$_SERVER['REMOTE_ADDR']."') LIMIT 1");
if(mysql_num_rows($query)==1)
{
header('Location: banned.php');
exit();
}
?>

INET_ATON() kræver så du gemmer IP som INT UNSIGNED og bruger INET_ATON når du gemmer en IP. Håber ikke det forvirrer for meget. :o)
Avatar billede danieru Nybegynder
25. juli 2007 - 14:52 #9
Alright, jeg laver det med SQL så :)
- Smider du et svar så vi kan få den her lukket? ;)
Avatar billede jakobdo Ekspert
25. juli 2007 - 20:22 #10
Svar!
Avatar billede jakobdo Ekspert
26. juli 2007 - 09:22 #11
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester