Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Newsy oparte na plikach tekstowych
Forum PHP.pl > Forum > Przedszkole
Mefiuu
Witam. Staram się uczyć PHP z książek i właśnie za pomocą i natchnieniem jednej z nich chciałem stworzyć sobie na stronę prosty skrypt newsów oparty na pliku tekstowym. Zrobiłem 4 pliki:

news.html
Kod
<html>
<head>
<title> Newsy </title>
</head>
<body>
<form action="news.php" method="post">
Podaj treść newsa: <br />
<input type=text name="news" size="500"><br />
<input type=submit value="Zatwierdź">
</form>
</body>
</html>




news.php
Kod
<html>
<head>
<title> Zatwierdzenie </title>
</head>
<body>

<?

echo "$news";

$file = fopen("news.txt", "w+");

fwrite($file, $news);

fclose($file);

?>

</body>
</html>



index.php

Kod
<html>
<head>
<title> Zatwierdzenie </title>
</head>
<body>

<?

include("news.txt");

?>

</body>
</html>




i ostatni pusty plik news.txt. Niestety po wrzuceniu na serwer po wprowadzeniu newsa w news.html nie zapisuje się ten news do news.txt. Czy ktoś mi wytłumaczy dlaczego? Pomijam oczywiście że brak jest kodowań HTML, bo to tylko test. Proszę również o wyrozumiałość.
guilty82
Jeśli piszesz w PHP5 to w pliku news.php musisz przypisać przed Twoim
echo "$news";

  1. <?php
  2. $news = $_POST['news'];
  3. ?>

Wnioskuję że jest to książka do PHP4.. Jeśli tak, to lepiej ją zmień smile.gif
Mefiuu
Rzeczywiście, linijkę dodałem, skrypt działa. Tylko mam pytanie. Jak zrobić tak, aby się nie usuwały poprzednie newsy? Bo jak zapiszę jeden to on jest, a jak zrobię drugi to tamten znika. Choć to może i byłoby dobre... Ale jakby tak 3 ostatnie pokazywało to by było dobre.
Co do książki to tak, chyba o PHP4 bo z 2003roku Macieja Małety. Jednak tylko taką w bibliotece znalazłem, innych nie ma. A Pan Maciej napisał to językiem w miarę dla mnie zrozumiałym...
guilty82
Poczytaj o fopen() tam jest wszystko napisane smile.gif
blooregard
Cytat
  1. <?php
  2. $file = fopen("news.txt", "w+");
  3. ?>

Druga wskazówka: co zrobić, aby mozna było do pliku DOPISYWAĆ (append)
Mefiuu
zedytowałem nieco te pliki, tak aby można było podac jeszcze datę i autora. Niestety, po dodaniu nie wyświetla mi newsa tylko samego autora i datę i to najpierw datę, choć miał być pierwsze autor i to pokazuje w jednej linijce...
guilty82
Pokaż kod
Mefiuu
Witam. Nie było mnie jakiś czas przy komputerze ale już pokazuję kod :

news.html

Kod
<html>
<head>
<title> Newsy </title>
</head>
<body>
<form action="news.php" method="post">
<p>Podaj treść newsa: <br />
<input type=text name="news" size="10"><br />
</p>


<p>Autor <br />
<input type=text name="autor" size="10"><br />
</p>


<p>Data: <br />
<input type=text name="news" size="9"><br />
</p>

<input type=submit value="Zatwierdź">
</form>
</body>
</html>



news.php

Kod
<html>
<head>
<title> Zatwierdzenie </title>
</head>
<body>

<?

$news = $_POST['news'];
$autor = $_POST['autor'];
$data = $_POST['data'];


echo "$news";
echo "$autor";
echo "$data";

$file = fopen("news.txt", "w+");

fwrite($file, $news, $autor, $data);

fclose($file);

?>

<a href="index.php">Zobacz newsa </a>

</body>
</html>



index.php

Kod
<html>
<head>
<title> Zatwierdzenie </title>
</head>
<body>

<?

include("news.txt");

?>

</body>
</html>



I mam pytanie, dlaczego do pliku news.txt dodaje tylko autora i datę i to w odwrotnej kolejności oraz połączone? Jak to trochę "wymodelować" aby pokazywało wszystko i to w oddzielnych linijkach ? Oraz jak zapisać wiecej niż 1 news?
erix
fopen" title="Zobacz w manualu PHP" target="_manual:
Cytat
Open for reading and writing; 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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.