key word zoeken in text file

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Lennart

Lennart

22/11/2007 15:46:00
Quote Anchor link
Hallo Php ers,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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);

?>
 
PHP hulp

PHP hulp

24/04/2024 00:47:24
 
Joren de Wit

Joren de Wit

22/11/2007 15:55:00
Quote Anchor link
Gebruikt strstr():
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
}
?>
 
Lennart

Lennart

22/11/2007 15:57:00
Quote Anchor link
ik ga hem gelijk proberen!
 
Lennart

Lennart

22/11/2007 16:02:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);

?>


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
 
Joren de Wit

Joren de Wit

22/11/2007 16:07:00
Quote Anchor link
Je mist een ; op regel 11. Vraagje: wat is het nut van het kopieren van die variabele?
 
Lennart

Lennart

22/11/2007 16:15:00
Quote Anchor link
Dat is inderdaad een beetje dubbel maar zo hou ik ze nog gescheiden voor als ik het niet aan de praat krijg.
 
Joren de Wit

Joren de Wit

22/11/2007 16:16:00
Quote Anchor link
Nutteloos, ik zou het gewoon niet doen. De kans op bugs wordt alleen maar groter en dan zul je het inderdaad niet aan de praat krijgen.

Maar je eerste probleem is wel opgelost nu?
 
Lennart

Lennart

22/11/2007 16:20:00
Quote Anchor link
Ik krijg nou geen errors meer maar hij voegt nog wel steeds het ip adres dubbel toe. Zie hier onder

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?
 
Lennart

Lennart

22/11/2007 16:21:00
Quote Anchor link
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?
 
Joren de Wit

Joren de Wit

22/11/2007 16:30:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(!strstr($content, $ip))
{

    // Hier de fputs()
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Lennart

Lennart

22/11/2007 16:31:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);

?>


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
 
Joren de Wit

Joren de Wit

22/11/2007 16:36:00
Quote Anchor link
Bij mij werkt het gewoon hoor. Ik het een test.txt met daarin mijn ip adres:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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';
}

?>

Er wordt netjes geechoded dat mijn ip adres al bestaat.
 
Lennart

Lennart

22/11/2007 16:37:00
Quote Anchor link
Hij werkt!!! bedankt voor je hulp dat was me zonder jou niet gelukt!
 
Joren de Wit

Joren de Wit

22/11/2007 16:39:00
Quote Anchor link
Graag gedaan ;)
 
Lennart

Lennart

22/11/2007 16:48:00
Quote Anchor link
misschien kun je me ook helpen met het volgenden;

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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$datum
= date("j F Y");
$tijd = date("H:i:s");  
$ip = $_SERVER['REMOTE_ADDR'];
$file = "intranet/15 Systeembeheer/.htaccess";

$lines = count(file($file));

  echo "There are $lines lines in $file";
?>
 
Joren de Wit

Joren de Wit

22/11/2007 16:50:00
Quote Anchor link
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...
 
Lennart

Lennart

22/11/2007 16:52:00
Quote Anchor link
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!!
 
Lennart

Lennart

22/11/2007 17:00:00
Quote Anchor link
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.
 
Joren de Wit

Joren de Wit

22/11/2007 17:00:00
Quote Anchor link
Je kunt toch het aantal regels tellen zoals je zelf al doet en dat in een if-statement verwerken.

Dus iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sFile
= 'je_htacces';
$aLines = file($file);
$iAantal = count($aLines);

if($iAantal > 50)
{

    $sContent = 'De basis content van je .htaccess';
    $fp = fopen($sFile, 'w');
    fwrite($fp, $sContent);
    fclose($fp);
}

?>
 
Lennart

Lennart

22/11/2007 21:59:00
Quote Anchor link
Het is gelukt het draaid nu allemaal super!!! Je word bedankt voor alle moeite! ik plaats morgen de totale code voor als iemand anders ooit nog eens een vergelijkbaar iets wil maken.

Ik ga nu opzoek naar een optie om een search toe tevoegen zonder een data base te gebruiken. Weet niet of het mogelijk is.
 
- SanThe -

- SanThe -

22/11/2007 22:03:00
Quote Anchor link
@Lennart: ik zie heel wat bumpen staan.

Niet Bumpen.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.