mouk
16.11.2003, 22:17:44
No wiec problem jest taki, mam zrobiona ksiege gosci z zapisem do pliku.
Jest wszystko pięknie za wyjatkiem jednej rzeczy, a mianowicie administrowaniem tej księgi. W pliku wpisy.txt sa przechowywane wiadomosci w takiej formie:
michal || michalw@wsb-nlu.edu.pl || pierwszy wpis ||
ania || costam@costam.pl || fajne forum:) ||
itd...
Chciałbym miec mozliwosc w panelu administracyjnym usuwania danego wpisu , czyli danej linijki po prostu. Nie mam pojecha jak sie za to zabrac niestety.
Kod pliku dopisz.php:
[php:1:1d1eac424b]<?php
<html>
<head><title>czytam</title>
<LINK rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<center>
<h2>Ksiega Gosci:</h2>
</center>
<br>
<center>
<?
$ikonki=array(":)"=>"<img
src=wesoly.gif>",":-)"=>"<img
src=icon_smile.gif>",":D"=>"<img
src=zeby.GIF>",":-D"=>"<img
src=icon_biggrin.gif>",":("=>"<img
src=smutny.gif>",":-("=>"<img
src=icon_sad.gif>",":P"=>"<img
src=icon_razz.gif>",":-P"=>"<img
src=icon_razz.gif>",":|"=>"<img
src=icon_neutral.gif>",":-|"=>"<img
src=icon_neutral.gif>",";)"=>"<img
src=icon_wink.gif>",";-)"=>"<img
src=icon_wink.gif>");
//odczyt z pliku wpisy.txt
$dane=file("wpisy.txt");
for($i=0; $i<count($dane); $i++)
{
$wiersz=explode("||", $dane[$i]);
echo strtr ( "
<table cellSpacing=0 cellPadding=0 border=3 width=460 align=center>
<tr><td COLSPAN=4 width=460 height=1 BGCOLOR=red></TD></TR>
<tr>
<td bgcolor=gray width=460>$wiersz[0]</TD>
</TR>
<tr><td COLSPAN=4 width=460 height=1 ></TD>
</TR>
<tr>
<td width=460 colspan=2 >$wiersz[1]</td>
</tr>
<tr><td colspan=4 width=460 height=1 ></TD></TR>
<tr>
<td colspan=2 width=460 valign=top border=0>$wiersz[2]</TD>
<td width=1 ></TD>
</TR>
<tr><td colspan=4 width=460 height=1 </TD></TR>
</table><br>",$ikonki);;
}
?>
</body>
<html>
?>[/php:1:1d1eac424b]
kod skryptu z dopisywaniem:
[php]<?php
<html>
<head><title>wpisuje</title>
<LINK rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<?php
$fp = fopen("wpisy.txt" , "a+");
$fp = fopen("wpisy.txt", "a+");
fwrite($fp, "$imie||$mail||$wiadomosc|| n");
fclose($fp);
echo "Wpis zosta dodany!";
?>
</body>
</html>
CZy moglby m ktos z tym pomóc?
nobody
17.11.2003, 11:16:57
Mala wskazowka... :wink:
[php:1:36c4664dcb]<?php
$dane=file("wpisy.txt");
for($i=0; $i<count($dane); $i++)
{
$wiersz=explode("||", $dane[$i]);
echo "[<a href=show.php?act=usun&id=$i>Usun ten wpis</a>] Imie: ".$wiersz[0]." Email: ".$wiersz[1]." Tresc: ".$wiersz[2]."<br><br>";
}
if($_GET['act']=="usun"&&is_numeric($_GET['id'])){
unset($dane[$_GET['id']]);
$plik=fopen("wpisy.txt", "w");
$tablica=implode($dane, "");
fwrite($plik, $tablica);
fclose($plik);
header("Location: show.php");
}
?>[/php:1:36c4664dcb]
mouk
17.11.2003, 12:17:47
o wlasnie o dokladnie cos takiego mi chodzilo, wszystko pieknie, tylko jak klikam teraz na usun wpis to mi wyskakuje komunikat, ze nie moze znalezc tej strony:(
nobody
17.11.2003, 12:23:27
Cytat
o wlasnie o dokladnie cos takiego mi chodzilo, wszystko pieknie, tylko jak klikam teraz na usun wpis to mi wyskakuje komunikat, ze nie moze znalezc tej strony:(
Zmien wszedzie nazwe pliku z show.php na ta, ktorej uzywasz.
Pozdr.
mouk
18.11.2003, 18:01:43
no racja, za malo snu, albo moich umiejetnsoci jesli chodzi o php:)
Teraz dziala ladnie tylko, ze wyskakuje ostrzezenie:
[php:1:5b6a069c41]<?php
Warning: Cannot add header information - headers already sent by (output started at /home/students/michalw/public_html/inzop/moderuj.php:7) in /home/students/michalw/public_html/inzop/moderuj.php on line 16
?>[/php:1:5b6a069c41]
mouk
18.11.2003, 19:19:17
jeszcze jedno pytanko. jak zrobic sensowne numerowanie.Mialem tak zrobione ze w jendym pliku byla liczba ktora z kazdym dodaniem wpisu sie podnosila o 1. Niestety to nie jest za dobre rozwiazanie, bo gdy usune wiadomosc,albo caly plik z wiadomosciami, to jak dodam nast,wiad, to nie zaczyna od 0, tylko od liczby ktora tam zostala?
scanner
18.11.2003, 23:14:48
Numeruj kazdy wpis na poczatku jego linijki. Wtedy kazdy ma unikalny ID (zawsze inkrementuj, nigdy nie uzupelniaj dziur po skasowanych ID) a liczbe wpisow wezmiesz zliczajac liczbe linii w pliku
mouk
18.11.2003, 23:46:27
tylko jak to zliczac?
scanner
19.11.2003, 08:59:23
Od 1 rosnąco.
Zanim zapiszesz nowa linie, pobierasz ostatnią, patrzysz jakie ma ID, dodajesz 1...
Proste jak budowa cepa.
mouk
24.11.2003, 23:15:35
no dziala nareszcie , ale chyba zrobilem to w dosc dziwny sposob tzn dodalem taka pętle :
[php:1:d0b8ab3a53]<?php
$dane=file("wpisy.txt");
for($i=0; $i<count($dane); $i++)
{
$wiersz=explode("||", $dane[$i]);
}
?>[/php:1:d0b8ab3a53]
jedyny porlbem to to, ze jak sie cos usunie to te wiadomosci nie zmieniaja swoich nuemerow:(
mouk
24.11.2003, 23:17:16
no i oczywiscie dopisywane jest i jako nr wiadomosci tzn:
[php:1:1544a55da0]<?php
fwrite($fp, "$i||$remote_address||$data||$imie||$mail||$wiadomosc|| n");
?>[/php:1:1544a55da0]
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.