Pagina 1 din 2
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de Komfort
scuze ca te mai deranjez odata..
Cod: Selectaţi tot
<?php
$ip_vizitator=$_SERVER['REMOTE_ADDR'];
$fisier='ctr.txt';
$fh=@fopen($fisier,"r+b");
if(!$fh)
echo "nu a fost deschis fisierul respectiv";
else {
$s=fgets($fh,4);
$s++;
echo $ip_vizitator;
rewind($fh);
fwrite($fh,$ip_vizitator,$s);
echo 'ai';
echo $s;
echo 'paini ';
fclose($fh);
}
?>
vreau sa se salveze intrun fisier crt.txt....doate ipurile vizitatorilor......si apoi fac cu un if...daca ipvizitator exista deja..sa nu mai intre in fisier
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de Komfort
am facut dar cum fac sa am mai multe randuri ca mie se salveaza numai pe primul rand
Cod: Selectaţi tot
<?php
$ip_vizitator=$_SERVER['REMOTE_ADDR'];
$fisier='ctr.txt';
$rand=file('ctr.txt');
$fh=@fopen($fisier,"r+b");
if(!$fh)
echo "nu a fost deschis fisierul respectiv";
else {
$rand[0]=$ip_vizitator;
rewind($fh);
fwrite($fh,$rand[0]);
fclose($fh);
}
?>
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de MarPlo
Ca sa adaugi un nou rand, se foloseste sintaxa "\n"
De exemplu, ca sirul "Un sir test" sa fie adaugat pe un rand nou, se pune acea sintaxa in fata. Variabila care sa-l contina ar fi cam asa:
$var = "\n". 'Un sir test';
- Mai departe, e treaba fiecaruia cum stie sa aplice asta.
Mai sunt si tutoriale pe net, daca ne straduim sa cautam, de exemplu "php add new row file"
lucrul cu fisiere
Scris: Mar Iul 20, 2010
de Komfort
eu as vrea sa se stocheze toate ipurile vizitatorilor diferiti:(...rand[0] rand[1] rand[2] rand[3] si tot asa.....
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de MarPlo
Se pare ca ceea ce vrei iti depaseste cunostintele pe care le ai despre php.
E mai complicat si diferit de cum ai inceput tu. Eu asi face altfel, cu functii: "file()", "explode()", "file_put_contents()" si lucru cu Array; ceea ce nu se potriveste cu ce ai inceput tu, prin urmare ar iesi o brambureala amestecarea cu scriptul tau.
Poate o sa fac un tutorial despre asta in zilele urmatoare. Deocamdata am altceva in lucru inceput.
- Ca sa fie totusi de folos raspunsul, pentru adaugare date in continuarea celor existente, cand fisierul e deschis cu "fopen()", se foloseste "a+b" ca mod de deschidere (in loc de "r+b" cum e la tine). Gasesti in lectiile despre Lucrul cu fisiere si despre modurile de deschidere cu "fopen()" (pentru citire, scriere, adaugare).
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de Komfort
Cod: Selectaţi tot
<?php
$ip_vizitator=$_SERVER['REMOTE_ADDR'];
$fisier='ctr.txt';
$rand=file('ctr.txt');
$fh=@fopen($fisier,"a+b");
$s=fread($fisier,200);
if(!$fh || $ip_vizitator==$s)
{ echo "nu a fost deschis fisierul respectiv"; }
else {
$rand[0]=$ip_vizitator;
rewind($fh);
fwrite($fh,$rand[0]);
fclose($fh);}
?>
asa oare e bun pt vizitatori unici...cu if-ul ala sus $s=fread($fisier,200);
if(!$fh || $ip_vizitator==$s)
adika ipul vizitatorului sa nu fie acesai cu ce este in ctr.txt?
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de MarPlo
Cum ti-am mai spus. Metoda care ai inceput-o pt. ceea ce vrei sa faci e nepotrivita si nu ma bag pe ea. Eu nu asi fi folosit deschiderea cu "fopen()", ci se preia cu "file()" iar pt. scriere adaugam direct cu "file_put_contents()".
In plus, trebuie verificat sa nu adauge de mai multe ori acelasi IP. Pentru asta, din matricea obtinuta in $rand se parcurge cu instructiunea "for()" fiecare rand si se verifica cu ip-ul curent.
Daca ai rabdare pana o sa pun un tutorial despre asa ceva, bine.
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de Komfort
Cod: Selectaţi tot
<?php
$fisier='ctr.txt';
$ip=$_SERVER['REMOTE_ADDR'];
$rand=file('ctr.txt');
$numara=count($rand);
$rand[0]=$ip;
for($i=0;$i<$numara;$i++) {
if($ip!=$rand[i]){
file_put_contents($fisier,$rand[0]);
}
}
?>
sper sa fiu pe aproape..te rog corecteazama...
multumesc
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de MarPlo
Da, asa e pe aproape. Uite varianta imbunatatita, dupa codul tau.
Cod: Selectaţi tot
<?php
$fisier='ctr.txt';
$rand = array();
$unic = 1;
$ip=$_SERVER['REMOTE_ADDR'];
$rand=file('ctr.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$numara=count($rand);
for($i=0;$i<$numara;$i++) {
if($ip==$rand[$i]){
$unic = 0;
echo 'IP deja inregistrat';
break;
}
}
if($unic===1) {
$rand[$i] = $ip;
$randuri = implode("\n", $rand);
if(file_put_contents($fisier, $randuri)) echo 'IP adaugat';
}
?>
Inregistrare IP-uri vizitatori
Scris: Mar Iul 20, 2010
de MarPlo
Daca nu e deja salvat il va include in matricea $rand si pune totul in $fisier. Testeaza si vezi.
Ce functii nu intelegi, vezi in manual
Inregistrare IP-uri vizitatori
Scris: Mie Iul 21, 2010
de Komfort
salveaza doar primu ip si apoi zice ip deja inregistrat tot timpu:(....oare ceo fi?
Inregistrare IP-uri vizitatori
Scris: Mie Iul 21, 2010
de MarPlo
Acum functioneaza.