ip loggen
ik heb een heel simpel vraagje: Ik heb een scriptje gemaakt op een ip adres te loggen
Maar nu wil ik dat telkens voordat hij weer een nieuw ip-adres erbij schrijft, dat het ip.txt bestandje geleegd wordt (zodat er telkens dus maar 1 ip in ip.txt staat. Welke functie moet ik dan toevoegen?
Code (php)
Maar nu wil ik dat telkens voordat hij weer een nieuw ip-adres erbij schrijft, dat het ip.txt bestandje geleegd wordt (zodat er telkens dus maar 1 ip in ip.txt staat. Welke functie moet ik dan toevoegen?
waarom doe je dit niet met mysql dat is veel eenvoudiger
heb geen mysql op mn server;-)
ik loop achter...
ik loop achter...
Als je het met dat txt bestandje wilt doen, zou je het bestandje telkens weg kunnen gooien voordat je er een nieuw ip inschrijft...
Dus dit kun je in je code plaatsen...
Maar waarom doe je dit inderdaad niet met MySQL?
Dus dit kun je in je code plaatsen...
Maar waarom doe je dit inderdaad niet met MySQL?
Edit:
Geen MySQL op je server? Misschien wordt het dan tijd om dat eens te installeren. Er gaat een wereld voor je open ;)
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
inplaats van de a bij fopen, een w bij fopen.
haha, het is vaak makkelijker dan je denkt... tnx
@ blanche: jep, moet dan een hele andere host nemen. wordt tijd..
@ blanche: jep, moet dan een hele andere host nemen. wordt tijd..
Dan hebben jullie hier vast ook wel een oplossing voor:
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
if (isset($_SERVER['REMOTE_ADDR'])) {
$ip_adres = $_SERVER['REMOTE_ADDR'];
} else {
$ip_adres = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);
}
$file = "ip.txt";
$open = fopen( $file, "r" ) or die ( "Operation Failed!" );
if($ip_adres != $file) {
// Dit bestandje wordt geïnclude in een pagina (pagina A.php).
// Als de IP opgeslagen in ip.txt niet hetzelfde is als $ip_adres,
// dan moet er een redirect komen naar pagina B.php
// Komen de IP's wel overeen, dan moet de pagina waar dit bestand
// in geïnclude is, vertoond worden (pagina A.php)
// Hoe zet ik dat hier in mijn if } else { functie?
fclose($file);
}
?>
if (isset($_SERVER['REMOTE_ADDR'])) {
$ip_adres = $_SERVER['REMOTE_ADDR'];
} else {
$ip_adres = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);
}
$file = "ip.txt";
$open = fopen( $file, "r" ) or die ( "Operation Failed!" );
if($ip_adres != $file) {
// Dit bestandje wordt geïnclude in een pagina (pagina A.php).
// Als de IP opgeslagen in ip.txt niet hetzelfde is als $ip_adres,
// dan moet er een redirect komen naar pagina B.php
// Komen de IP's wel overeen, dan moet de pagina waar dit bestand
// in geïnclude is, vertoond worden (pagina A.php)
// Hoe zet ik dat hier in mijn if } else { functie?
fclose($file);
}
?>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if($_SERVER['REMOTE_ADDR'] != file_get_contents('ip.txt')){
header("Location: B.php");
}
?>
if($_SERVER['REMOTE_ADDR'] != file_get_contents('ip.txt')){
header("Location: B.php");
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Bo az
dat zou dus zoiets worden:
maar als ik dit in een bestandje zet (include.inc.php) en deze vervolgens laat includen in pagina A.php, dan wordt nog steeds A.php getoond ookal komt het IP-adres NIET overeen met die uit ip.txt (en dat is niet de bedoeling, want komen ze niet overeen, dan wil ik B.php zien, en geen toegang tot A.php hebben!) snappie...
Wat gaat er dan fout?
Code (php)
maar als ik dit in een bestandje zet (include.inc.php) en deze vervolgens laat includen in pagina A.php, dan wordt nog steeds A.php getoond ookal komt het IP-adres NIET overeen met die uit ip.txt (en dat is niet de bedoeling, want komen ze niet overeen, dan wil ik B.php zien, en geen toegang tot A.php hebben!) snappie...
Wat gaat er dan fout?
Als je ip.txt opent in kladblok, staat er dan niet toevallig een nieuwe regel achter of zoiets?
nee, puur en alleen een IP adres. Maar om te checken of het werkt heb ik even een foute IP in ip.txt gezet (die dus niet overeen komt met mn eigen IP), maar dan wordt ik niet naar B.php gestuurd, en krijg ik gewoon toegang tot A.php
Al zou er een EOL achter staan, dan zou je nog doorgestuurd moeten worden naar B.php omdat de inhoud dan altijd ongelijk is aan het IP adres:
Joshua, dat heleverhaal wat jy daar hebt staan met fopen etc. is niet nodig, dat stukje wat ik poste moet enkel voldoende zijn.
Zet eens bovenaan je file:
error_reporting(E_ALL);
Joshua, dat heleverhaal wat jy daar hebt staan met fopen etc. is niet nodig, dat stukje wat ik poste moet enkel voldoende zijn.
Zet eens bovenaan je file:
error_reporting(E_ALL);
Als ik locaal dit test, gaat het gewoon zoals het hoort:
Als ik het lokaal test op deze manier:
Dan doettie het prima, ik krijg idd B.php, want mijn IP komt niet overeen met die in het bovenstaande scriptje. Blijkbaar wordt ip.txt dus niet goed gelezen. Maar hoe kan dat?
Dan doettie het prima, ik krijg idd B.php, want mijn IP komt niet overeen met die in het bovenstaande scriptje. Blijkbaar wordt ip.txt dus niet goed gelezen. Maar hoe kan dat?
Ik zal even een online testje doen, moment.
Neen, hij doet het al, hij veranderde steeds door een ander scriptje geïnclude telkens mijn eigen IP weer in ip.txt
Hoe DOM kun je wezen! Heren, bedankt!!!
Hoe DOM kun je wezen! Heren, bedankt!!!
Okee, ik snapte het al niet want deze:
deed het hier prima. Maar mooi dat het opgelost is.
Code (php)
deed het hier prima. Maar mooi dat het opgelost is.




