key word zoeken in text file
ik heb een ftp server die als intranet werkt. Deze ftp server is gekoppeld aan een online ERP programma die een login verschaft. Omdat ze hier niet wilde dat er 2 keer ingelogt moest worden maak ik een sessie aan die kijkt wat je vorige pagina is die je hebt bezocht. Is die anders dan het online ERP programma krijg je geen toegang tot de index.php en andere php files. Tot zover werkt het. Nu komt het probleem. Je kan omdat het een FTP is nog dieplinken. Dit kan ik oplossen met een htacces file. Dat heb ik ook gedaan maar er is natuurlijk een maar! Ik geef mensen toegang doormiddel van IP. Doormiddel van een php script voeg ik de IP's toe aan de htacces file.
Wat nu alleen vervelend is dat de zelfde IP adressen iedere keer worden toegevoegt aan de htacces. Ik wil dus aan mijn script toevoegen dat ie eerst moet lezen of het IP adres al in de htacces staat zoniet dat ie het moet toevoegen. Ik heb al aardig wat uren lopen google.
Ik hoop dat iemand me kan helpen.
hier de code die ik tot nu toe heb;
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$datum = date("j F Y");
$tijd = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$file = fopen ("intranet/15 Systeembeheer/.htaccess","a");
fputs ($file, "allow from $ip \r\n"
);
fclose($file);
$file2 = fopen ("intranet/15 Systeembeheer/timelog.txt","a");
fputs ($file2, "Toegang gegeven aan IP $ip Op $datum om $tijd \r\n \r\n"
);
fclose($file2);
?>
$datum = date("j F Y");
$tijd = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$file = fopen ("intranet/15 Systeembeheer/.htaccess","a");
fputs ($file, "allow from $ip \r\n"
);
fclose($file);
$file2 = fopen ("intranet/15 Systeembeheer/timelog.txt","a");
fputs ($file2, "Toegang gegeven aan IP $ip Op $datum om $tijd \r\n \r\n"
);
fclose($file2);
?>
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$ip = // het bewuste ip-adres;
$content = file_get_contents('je_.htaccess');
if(strstr($content, $ip))
{
// ip adres gevonden
}
?>
$ip = // het bewuste ip-adres;
$content = file_get_contents('je_.htaccess');
if(strstr($content, $ip))
{
// ip adres gevonden
}
?>
ik ga hem gelijk proberen!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$datum = date("j F Y");
$tijd = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$file = fopen ("intranet/15 Systeembeheer/.htaccess","a");
fputs ($file, "allow from $ip \r\n"
);
$ip2 = $ip1
$content = file_get_contents("intranet/15 Systeembeheer/.htaccess");
if(strstr($content, $ip2))
fclose($file);
$file2 = fopen ("intranet/15 Systeembeheer/timelog.txt","a");
fputs ($file2, "Toegang gegeven aan IP $ip Op $datum om $tijd \r\n \r\n"
);
fclose($file2);
?>
$datum = date("j F Y");
$tijd = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$file = fopen ("intranet/15 Systeembeheer/.htaccess","a");
fputs ($file, "allow from $ip \r\n"
);
$ip2 = $ip1
$content = file_get_contents("intranet/15 Systeembeheer/.htaccess");
if(strstr($content, $ip2))
fclose($file);
$file2 = fopen ("intranet/15 Systeembeheer/timelog.txt","a");
fputs ($file2, "Toegang gegeven aan IP $ip Op $datum om $tijd \r\n \r\n"
);
fclose($file2);
?>
heb ik nu. Alleen krijg ik dan deze melding:
Parse error: parse error, unexpected T_VARIABLE in test.php on line 12
Gewijzigd op 01/01/1970 01:00:00 door Lennart
Je mist een ; op regel 11. Vraagje: wat is het nut van het kopieren van die variabele?
Dat is inderdaad een beetje dubbel maar zo hou ik ze nog gescheiden voor als ik het niet aan de praat krijg.
Maar je eerste probleem is wel opgelost nu?
AuthName 'Gebruikersnaam en wachtwoord vereist om deze website te bezoeken.'
AuthType Basic
<Limit GET POST>
order deny,allow
deny from all
allow from 77.61.156.***
allow from 77.61.156.***
allow from 77.61.156.***
allow from 77.61.156.***
Ik schaam me wel dat ik die ; niet had gezien. Maar ik ben ook nog maar beginner ;). Enig idee waarom hij het IP adres blijft toevoegen?
Oh dom ik weet wel waarom hij hem toevoegt. Hij moet nog een if hebben anders doet ie niks met de info. Alleen hoe ga ik die verwerken?
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$datum = date("j F Y");
$tijd = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$content = file_get_contents("intranet/15 Systeembeheer/.htaccess");
if(strstr($content, $ip)){
echo "Ip adres staat al in de lijst";
}
$file = fopen ("intranet/15 Systeembeheer/.htaccess","a");
fputs ($file, "allow from $ip \r\n"
);
fclose($file);
$file2 = fopen ("intranet/15 Systeembeheer/timelog.txt","a");
fputs ($file2, "Toegang gegeven aan IP $ip Op $datum om $tijd \r\n \r\n"
);
fclose($file2);
?>
$datum = date("j F Y");
$tijd = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$content = file_get_contents("intranet/15 Systeembeheer/.htaccess");
if(strstr($content, $ip)){
echo "Ip adres staat al in de lijst";
}
$file = fopen ("intranet/15 Systeembeheer/.htaccess","a");
fputs ($file, "allow from $ip \r\n"
);
fclose($file);
$file2 = fopen ("intranet/15 Systeembeheer/timelog.txt","a");
fputs ($file2, "Toegang gegeven aan IP $ip Op $datum om $tijd \r\n \r\n"
);
fclose($file2);
?>
ik heb hem nu even met een echo geplaatst ik krijg geen error maar hij doet ook geen echo dat het IP adres al bestaat
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$content = file_get_contents('test.txt');
if(strstr($content, $ip))
{
echo 'IP bestaat';
}
?>
$ip = $_SERVER['REMOTE_ADDR'];
$content = file_get_contents('test.txt');
if(strstr($content, $ip))
{
echo 'IP bestaat';
}
?>
Er wordt netjes geechoded dat mijn ip adres al bestaat.
Hij werkt!!! bedankt voor je hulp dat was me zonder jou niet gelukt!
Graag gedaan ;)
aangezien de .htacces file op een gegeven moment heel veel regels zal bevatten is het niet mogelijk dat die file elke dag word geleegd? Of wat ik nu probeer eerst de regels te tellen en als hij boven bv 50 regels komt dan te legen.
Dat is natuurlijk zeker mogelijk. Als je het bestand opent met fopen() en als tweede parameter 'w'. Dan wordt het bestand geleegd en kun je weer opnieuw beginnen...
maar kan ik daar een timer of een teller aankoppelen? nadat hij geleegd is moet er namelijk wel weer een tekst aan toegevoegt worden. Ik zoek altijd wel weer bijzondere dingen uit ;). Ik vind dat php echt geweldig!!
Ik heb het inmiddels wel voor elkaar dat hij telt en terug geeft dat hij bv meer dan 50 lines heeft in de htacces file.
Dus iets als:
Ik ga nu opzoek naar een optie om een search toe tevoegen zonder een data base te gebruiken. Weet niet of het mogelijk is.
Niet Bumpen.
Bumpen::
SanThe.