Problema fwrite adaugare linie noua

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

akexabogdan
PHPRomania Supporter
Mesaje: 5
Membru din: Dum Aug 09, 2015 2:12 am

Problema fwrite adaugare linie noua

Mesajde akexabogdan » Lun Aug 10, 2015 3:17 am

Salutare, am si eu nevoie de ajutor cu un script..
Mai exact scriptul isi face treaba, doar ca nu adauga linie noua, scrie peste cea veche.
Stiu ca e ceva cu \n....insa nu stiu exact unde sa o pun..imi da mari batai de cap


Acesta afisaza :

Cod: Selectaţi tot

URL NOU: Http://exemplu.com, Cu IP : XX.XXX.XXX.XXX


Iar eu doresc...

Cod: Selectaţi tot

URL NOU: Http://exemplu.com, Cu IP : XX.XXX.XXX.XXX
URL NOU: Http://exemplu2.com, Cu IP : XX.XXX.XXX.123



Cod: Selectaţi tot

<?php
if(isset($_SERVER['HTTP_REFERER'])) {
    $ref = $_SERVER['HTTP_REFERER'];
} else {
   $ref = "Accesare directa";
}
$ip = $_SERVER['SERVER_ADDR'];
$filename = "vizite.txt";
$count= file($filename);
$count[0]++;
$data = 'URL NOU :  '.$ref.',Cu IPul : '.$ip.'';
$file = fopen ($filename, "w") or die ("Cannot find $filename");
fwrite($file,$data);
fclose($file);
echo $count[0];
?>



nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Problema fwrite adaugare linie noua

Mesajde nevvermind » Lun Aug 10, 2015 10:53 am

Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

akexabogdan
PHPRomania Supporter
Mesaje: 5
Membru din: Dum Aug 09, 2015 2:12 am

Re: Problema fwrite adaugare linie noua

Mesajde akexabogdan » Lun Aug 10, 2015 2:05 pm

Am incercat cu \n \r cam dupa toate modelele de pe google, nu merge ma gandesc ca e mai complicat.

MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Re: Problema fwrite adaugare linie noua

Mesajde MarPlo » Lun Aug 10, 2015 2:55 pm

Incearca si cu PHP_EOL, e o constanta php pentru rand nou.
Exemplu:

Cod: Selectaţi tot

$str ='row 1'PHP_EOL .'row 2'

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Problema fwrite adaugare linie noua

Mesajde nevvermind » Lun Aug 10, 2015 3:43 pm

Arata si cum ai incercat cand nu ti-a mers. La pariu ca ai scris '\n\r' in loc de "\n\r".
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

akexabogdan
PHPRomania Supporter
Mesaje: 5
Membru din: Dum Aug 09, 2015 2:12 am

Re: Problema fwrite adaugare linie noua

Mesajde akexabogdan » Lun Aug 10, 2015 4:28 pm

Cod: Selectaţi tot

<?php
if(isset($_SERVER['HTTP_REFERER'])) {
    $ref = $_SERVER['HTTP_REFERER'];
} else {
   $ref = "Accesare directa";
}
$ip = $_SERVER['SERVER_ADDR'];
$filename = "vizite.txt";
$count= file($filename);
$count[0]++;
$data = 'A venit o vizita din partea : '.$ref.',Cu IPul : '.$ip. "\n\r ";
$file = fopen ($filename, "w") or die ("Cannot find $filename");
fwrite($file,$data);
fclose($file);
echo $count[0];
?>


Problema e ca nu mai stiu unde sa pun \n\r :)) cu PHP_E0L am incercat insa imi da o eroare la cod..sunt incepator in PHP, scriptul l-am modificat din altu..a iesit cat de cat..adica isi face treaba insa in loc sa listeze si alte lini, scrie peste cea existenta

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Problema fwrite adaugare linie noua

Mesajde nevvermind » Lun Aug 10, 2015 5:16 pm

Asta nu mai e o problema de newline.

Tu folosesti "fopen ($filename, "w")". "w" inseamna:
"Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it."

Tu vrei sa deschizi cu "a" (sau "a+"):
"Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it. In this mode, fseek()() only affects the reading position, writes are always appended".

http://php.net/manual/en/function.fopen.php - vezi parametrul "mode".

PS: Foloseste sprintf, sa para mai lizibil:
sprintf("A venit o vizita din partea: %s , cu IP-ul: %s\n\r", $ref, $ip);

PPS: Sper ca nu folosesti "PHP_E0L" ci "PHP_EOL".

Da codul si erorile data viitoare.
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

akexabogdan
PHPRomania Supporter
Mesaje: 5
Membru din: Dum Aug 09, 2015 2:12 am

Re: Problema fwrite adaugare linie noua

Mesajde akexabogdan » Lun Aug 10, 2015 5:35 pm

Multumesc pentru ajutor...scriptul salveaza in .txt si e o chestie doar pentru mine...sa vad ce si cum..nu i-am dat de cap..apreciez totusi...mai repede platesc pe cineva sa-l faca functional si asta e.

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Problema fwrite adaugare linie noua

Mesajde nevvermind » Lun Aug 10, 2015 5:52 pm

Dar cum nu i-ai dat de cap pana acuma? Ce eroare iti da? Sa platesti pe cineva pt asta? Fii serios...
Esti la 5 minute de atentie de a rezolva problema.
Intra pe chat daca vrei (link jos). Te rezolv eu gratis, ca vad ca esti in stare sa dai bani aiurea.
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

clickymedia
Junior Member
Mesaje: 45
Membru din: Mie Iun 17, 2015 2:11 pm
Contact:

Re: Problema fwrite adaugare linie noua

Mesajde clickymedia » Mie Aug 19, 2015 5:13 pm

Poti folosi codul de mai jos, functioneaza :D

Cod: Selectaţi tot

<?php

if(isset($_SERVER['HTTP_REFERER'])) {
    $ref = $_SERVER['HTTP_REFERER'];
} else {
   $ref = "Accesare directa";
}

$ip = $_SERVER['SERVER_ADDR'];
$filename = "vizite.txt";
$count= file($filename);
$count[0]++;
$data = "A venit o vizita din partea: {$ref}, Cu IPul: {$ip}";
$file = fopen($filename, 'a') or die ("Cannot find $filename");
fwrite($file,$data.PHP_EOL);
fclose($file);
echo $count[0];
?>
Pe caut hotel gasesti case si apartamente de inchiriat in regim hotelier.

Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Re: Problema fwrite adaugare linie noua

Mesajde vectorialpx » Mie Sep 16, 2015 2:18 pm

Cod: Selectaţi tot

<?php
$file 
'people.txt';
$content "John Smith\n";
file_put_contents($file$contentFILE_APPEND);
 


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 77 vizitatori