[PHP] Zapisywanie i odczyt. z pliku *.TXT System newsów.Jak?

Mam 2 skrypty:

  1. Zapisuje dane do pliku.

  2. Odczytuje dane z pliku.

I tutaj mam mały problem! Otóż, chcę aby skrypt 1szy zapisywał dane do pliku z formularza, ale niewiem jak to zrobić :confused:

$plik = @fopen ("dane/newsy.txt", "w");

       if (!($plik)) { 

         print "Error!";

       } else {

         print "OK!";

         fputs ($plik, "XXXXXXXX");

         fclose ($plik);

       }

    ?>
$plik = @fopen ("dane/newsy.txt", "r");

       if (!($plik)) { 

         print "Error!";

       } else {

         $wiersz = fgets ($plik, 255);

         print "Dane z pliku to: $wiersz";

         fclose ($plik);

       }

    ?>[/code]

PHP dopiero się uczę, więc jeszcze wszystkiego niewiem. Ale domyślam się że w miejśće “XXXXXXXXX” trzeba wstawic kod formularza, albo przerobic cały skrypt :stuck_out_tongue: :stuck_out_tongue:

zamiast xxxxx wstawiasz to co z formularza leci czyli np $_POST[‘tekst’]

fputs ( $plik, $_POST['tekst'] );

Możesz jaśniej?? Bo nie rozumiem :roll: :roll:

zmieniasz na

To też wiem :-x , ale co dalej??

w formularzu walisz sobie inputa ’ tekst’ i tyle

W końcu miałem czas to zrobić.

Więc tak, mam formulaż, ma to być tak jakby system news’ów.

Jak dodaje jakis text to widze go potem na index’ie, ale jak dodam 2gi text to jest tylko ten 2gi a niema pierwszego. Jak zrobić aby wyświetlały sie 2 lub więcej???

jak dla mnie to wszystko wyswietla jak trzeba … chyba… no procz tego ze wyswietlaja sie od najstarszego do najnowszego

Złączono Posta : 26.04.2006 (Sro) 9:02

a cos zauwazylem… te newsy co dodalem znikaja po jakims czasie… sprawdz czy w pliku sa te ktore dodasz i znikna, jesli tak to daj kod wyswietlajacy newsy

Dlatego wyświetla sią jak trzeba bo ostatniego posta pisałem we wtorek a dzisiaj jest środa (taki żart :stuck_out_tongue: ) :stuck_out_tongue: A znikają bo narazie testuje i usuwam :P:P

A jak zrobic aby wyświetlały się na odwrót?? Bo bardzo mnie to denerwuje! :lol:

pokaz kod odczytywajacy dane

<?php

$file=fopen("news.n", "r");

flock($file, 1);

$tekst=fread($file, filesize('news.n')+1);

flock($file, 3);

fclose($file);

echo($tekst);

?>

:wink:

no to krotko mowiac lipa bo czegos takiego nie obroci sie raczej ;] musialoby to zostac np wczytane do tablicy i za pomoca array_reverse obrocone

  1. Jak to przerobić aby się zapisywało do bazy a nie do pliku??

  2. A nie dało by się zapisywać na początku pliku a nie na końcu?

    <?php if (isset($_POST['s_news'])) { $file=fopen("news.n", "a"); flock($file, 2); fwrite($file, '

’. $_POST[‘tytul’].’’. $_POST[‘tekst’] .’

’.$_POST[‘nick’].’ - ‘.$_POST[‘data’] .’
'); flock($file, 3); fclose($file); } ?> Tytuł newsa: Tekst newsa: Twój nick: Data: [/code]

[code] <?php $file=fopen(“news.n”, “r”); flock($file, 1); $tekst=fread($file, filesize(‘news.n’)+1); flock($file, 3); fclose($file); echo($tekst); ?>

poczytaj sobie ogolnie o korzystaniu z mysql, bedzie Ci tutaj potrzebny mysql_query , mysql_fetch_array , while i zapoznanie sie z INSERT oraz SELECT w mysql

Nie mam teraz czasu :confused: moze w wakacje :stuck_out_tongue: Chyba zostawie to takie jak jest i potem sobie będe normalnie w pliku przemieniał kolejność :P:P

Dzięki za pomoc BalonPL

Pomóżcie dlazego to nie działa

<?php



$_POST['plik']=$filename;


$newfile = @fopen($filename, "w+") ;

fclose($newfile);

$msg = "
utworzono plik!";

fopen($newfile, "w+");

fwrite($newfile, $_POST['tresc']);

fclose($newfile);


?>

ten kod ma podobne zadanie co mica22… tylko że musze mieć jeszcze możliwość nadania nazwy pliku… potrzebne jest mi to jak najszybciej… moglibyście poprawić lub chociaż nakierować co jest źle ?

po pierwsze bledy Ci pewnie wyskakuja… calosc jest ok

Nazwa



Tresc






<?php


if( isset( $_POST['plik'] ) && isset( $_POST['tresc'] ) )

{

	$_POST['plik']=$filename;


	$newfile = @fopen($filename, "w+") ;

	fclose($newfile);

	$msg = "
utworzono plik!";

	fopen($newfile, "w+");

	fwrite($newfile, $_POST['tresc']);

	fclose($newfile);

}


?>

wielkie dzięki

a po co dwa razy wywolywac funkcje fopen() ? mozna to tak zrobic:

if( isset( $_POST['plik'] ) && isset( $_POST['tresc'] ) )

{

   $_POST['plik']=$filename;


   $newfile = @fopen($filename, "w") ;

   $msg = "
utworzono plik!"; echo $msg; //inaczej nie wyswietli ;)

   fwrite($newfile, $_POST['tresc']);

   fclose($newfile);

}


?>

i jak ma tylko zapisywac, to wystarczy flaga ’ w’ bez ‘+’

if( isset( $_POST['plik'] ) && isset( $_POST['tresc'] ) )

{

   $_POST['plik']=$filename;


   $newfile = @fopen($filename, "w") ;

   $msg = "
utworzono plik!"; echo $msg; //inaczej nie wyswietli ;)

   fwrite($newfile, $_POST['tresc']);

   fclose($newfile);

}


?>

to msg zawsze wyswietli…

co do flagi to racja, nie zwrocilem na to uwagi