Gå til innhold

Skript som søker etter ord i fil. Hvordan?


Anbefalte innlegg

Jeg prøver å lage et skript som sjekker ip-adressen til pc'n som går inn på siden og så lagrer ip-adressen i feks ip.txt... dette fungerer men så skal skriptet søke igjennom filen etter en lik ip-adresse og da ikke kjøre resten av skriptet. Så hvis ip-adressen allerede finnes i ip.txt så gjør skriptet noe annet!

 

$oldip = implode ('', file ("ip.txt"));

$ip = getenv ("REMOTE_ADDR");

if $ip = $oldip { print "IP-adressen finnes allerede i listen (her slutter skriptet hvis ip'n allerede finnes i ip.txt" } else {

print "IP registreres... osv. (her fortsetter skriptet og lagrer ip-adressen i ip.txt" }

 

Slik det er nå tror skriptet at ip-adressen allerede finnes i fila så lenge ip.txt eksisterer

Hvordan skal jeg få skriptet til å gjøre dette viss den finner ip-adressen i ip.txt?

Lenke til kommentar
Videoannonse
Annonse

Her er et lite forslag... men det finnes sikkert bedre måter å gjøre det på. :D

 

 


$oldip = @implode ('', @file ("ip.txt")) or die("Kunne ikke fine ip.txt");

$ip = getenv ("REMOTE_ADDR");





if (substr_count($oldip, $ip) > 0) 



// retunerer antall ganger $ip ble funnet i $oldip...



{

echo ("IP-adressen finnes allerede i listen");



exit;

}



// den andre koden som skal kjøres...

 

Bare spør hvis dette ikke funker, har ikke testa koden selv... :smile:

Lenke til kommentar

noe jeg lagde for lenge siden, kanskje ikke best, men det funker!

 


<?php

//skrivedelen

$ip = $_SERVER['REMOTE_ADDR'];

$fil = "logg.txt";

$line_id = -1;



//array delen

$line = @file($fil);

$max = @array_values($line);

$num_lines = count($max);

echo($num_lines);



//looper oss mellom linjene

for($i=0; $i <= $num_lines; $i++)

{

if("$ipn" == $line[$line_id++])

{

 

 $skriv="JA"; //hvis $ip allerede finnes i fila...

 

}

}



//Skrive-til-fila-delen

if($skriv!="JA")

{



$fd = @fopen($fil, "a") or die;//("Kunne ikke åpne filen");

if($fd)

{

 fwrite($fd, "$ipn");

 fclose($fd);

 //echo("Har skrevet til filan<br>");

}

else

{

fclose($fd);

//echo("Ingen skriving er gjort");

}

}

?>

[edit]Du må chmodde "logg.txt" eller hva du må kaller fila til 777, men det visste du sikkert :p

Lenke til kommentar
  • 2 uker senere...

Jeg ville gjort det slik:

 

$oldip = @file ("ip.txt") or die("Kunne ikke fine ip.txt"); 

$ip = getenv ("REMOTE_ADDR"); 





if (in_array($ip, $oldip)) { 

 echo "IP-adressen finnes allerede i listen";

 exit;

}

 

Men du har jo en kode som funker så...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...