Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt komentarzy oparty na plikach *.txt.
moto0095
post 6.04.2010, 18:33:50
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Witam.
Napisałem ostatnio skrypt komentarzy oparty na plikach txt:

1. Plik:index.php [nazwa nie gra tu roli]:
  1. <?
  2. include("config.php");
  3. ?>
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
  5. <HTML>
  6. <HEAD>
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  8. <TITLE><? echo $title; ?></TITLE>
  9. <?
  10. <style type="text/css">
  11. a{
  12. color: '.$acolor1.';
  13. }
  14. a.hover{
  15. color: '.$acolor2.';
  16. }
  17. a.visited{
  18. color: '.$acolor3.';
  19. }
  20. </style>
  21. ';
  22. ?>
  23. </HEAD>
  24. <BODY bgcolor="<? echo $tlo; ?>" text="<? echo $text; ?>" style="font-size : <? echo $fontsize ?>; font-family: <? echo $czcionka ?>;">
  25.  
  26. <?
  27. //zapisywanie komentarzy
  28. if(isset($_GET["dodaj"])){
  29. $data = trim($_POST['data']);//data dodania wpisu
  30. $nick = trim($_POST['nick']);//nick użytkownika
  31. $mail = trim($_POST['mail']);//mail użytkownika
  32. $text = trim($_POST['text']);//treść komentarza
  33. $avatar = trim($_POST['avatar']);//avatar użytkownika
  34. $text = str_replace("\n","<br>",$text);//zamiana "enter" na <br>
  35.  
  36. if(empty($nick) and empty($text)){
  37. echo'<TABLE style="border: '.$border.' '.$bordercolor.' '.$borderstyle.'">
  38. <TR>
  39. <TD>Wypełnij poprawnie formularz</TD>
  40. </TR>
  41. </TABLE><br />';
  42. }else
  43. if(empty($avatar)){
  44. $dane = $data."|".$nick."|".$mail."|".$text."|niema.png\n";
  45. }else{
  46. $dane = $data."|".$nick."|".$mail."|".$text."|".$avatar."\n";
  47. }
  48. $file = "komen.txt";//plik do którego mają się zpisywać komentarze
  49. $fp=fopen("$file", "r+");
  50. $dane=$dane.fread($fp, filesize($file));
  51. rewind($fp);
  52. flock($fp, 2);
  53. fwrite($fp, $dane);
  54. flock($fp, 3);
  55. fclose($fp);
  56.  
  57. echo '<TABLE style="border: '.$border.' '.$bordercolor.' '.$borderstyle.'">
  58. <TR>
  59. <TD>Komentarz został dodany :)</TD>
  60. </TR>
  61. </TABLE><br />';
  62. }
  63. //wyświetlanie
  64. $file = file("komen.txt");
  65. foreach($file as $value) {
  66. $exp = explode("|",$value);
  67.  
  68. if(empty($exp[2])){
  69. $mailto = $exp[1];
  70. }else{
  71. $mailto = "<a href='mailto:".$exp[2]."'> ".$exp[1]."</a>";
  72. }
  73.  
  74. echo '
  75. <TABLE cellpadding="0" cellspacing="0" style="border: '.$border.' '.$bordercolor.' '.$borderstyle.';
  76. width: '.$tablew.';">
  77. <TR>
  78. <TD style="border-right: '.$border.' '.$bordercolor.' '.$borderstyle.';
  79. border-bottom: '.$border.' '.$bordercolor.' '.$borderstyle.';
  80. width: '.$avatarw.'; background: '.$tabletlo2.';" ALIGN="left">
  81. Nick: '.$mailto.'</TD>
  82. <TD style="border-bottom: '.$border.' '.$bordercolor.' '.$borderstyle.';
  83. background: '.$tabletlo3.';" ALIGN="right">
  84. Dodano: '.$exp[0].'</TD>
  85. </TR>
  86. <TR>
  87. <TD style="border-right: '.$border.' '.$bordercolor.' '.$borderstyle.'; width: '.$avatarw.';">
  88. <div style="overflow: hidden; width: '.$avatarw.'; height: '.$avatarh.';">
  89. <img src="'.$exp[4].'"></div></TD>
  90. <TD style="background: '.$tabletlo1.';" VALIGN="top">
  91. '.$exp[3].'</TD>
  92. </TR>
  93. </TABLE><p>';
  94. }
  95. ?>
  96.  
  97. <?
  98. //data
  99. $sdata = date("Y-m-d H:i:s");
  100. $d1 = strtotime($sdata);
  101. $d2 = 32400;
  102. $d = $d1 + $d2;
  103. $data = date("Y-m-d H:i:s", $d);
  104. ?>
  105.  
  106. <!--formularz-->
  107. <form action="?dodaj" method="POST">
  108. <TABLE style="border:"<? echo $border." ".$bordercolor." ".$borderstyle; ?>"; width: "<? echo $tablew; ?>";">
  109. <TR>
  110. <TD>*Nick: </TD><TD><input type="text" name="nick" style="width: 150px;" maxlength="15"></TD>
  111. <TD>E-Mail: </TD><TD><input type="text" name="mail" style="width: 150px;"></TD>
  112. </TR>
  113. <TR>
  114. <TD>Avatar: </TD><TD><input type="text" name="avatar" style="width: 150px;"></TD>
  115. <TD>Data: </TD><TD><input type="text" name="data" readonly="readonly" value="<? echo $data; ?>" style="width: 150px;"></TD>
  116. </TR>
  117. <TR>
  118. <TD>*Tresc: </TD><TD COLSPAN=3><textarea type="text" name="text" style="width: 360x; height: 100px;"></textarea></TD>
  119. </TR>
  120. <TR>
  121. <TD></TD><TD><input type="submit" value="Dodaj"></TD>
  122. </TR>
  123. </TABLE>
  124. <font size="2">
  125. Pola oznaczone * są wymagane!!
  126. </font>
  127. </form>
  128. <hr color="#ffffff">
  129. <font size="3">by<a href="http://2pac.site90.net"> moto0095.</a>:)</font><!--nie usuwaj tego-->
  130. </BODY>
  131. </HTML>


2. plik config.php:
  1. <?
  2. $title = "KOMENTARZE";//tytuł
  3. $tlo = "#000000";//kolor tła strony
  4. $text = "#ffffff";//kolor textu
  5. $fontsize = "5";//wielkość czcionki
  6. $czcionka = "Arial";//rodzj czcionki
  7. $tablew = "500";//szerokość tabeli z komentarzami
  8. $tabletlo1 = "#111111";//tło treści komentarza
  9. $tabletlo2 = "#333333";//tło nicka
  10. $tabletlo3 = "#111111";//tlo daty
  11. $border = "1px";//gróbość obramowania tabeli z komentarzami
  12. $borderstyle = "solid";//styl obramowania tabeli z komentarzami
  13. $bordercolor = "#ffffff";//kolor obramowania tabeli z komentarzami
  14. $acolor1 = "#ff6600";//kolor odnośnika
  15. $acolor2 = "#ff6600";//kolor odnośnika po najechaniu myszy
  16. $acolor3 = "#ff6600";//kolor odnośnika odwiedzonego
  17. $avatarw = "150";//szerokość avatara
  18. $avatarh = "100";//wysokość avatara
  19. ?>


Jeszce plik: komen.txt z chmodami 0666.

Demo:
tutaj

Download:
tutaj

Odrazu przepraszam jeżeli są jakieś błędy ortogtaficzne.

Jeżeli ma ktoś pomysł jak ulepszyć ten skrypt to niech napisze smile.gif.

Ten post edytował moto0095 6.04.2010, 17:59:48
Go to the top of the page
+Quote Post
Neo
post 6.04.2010, 18:55:24
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 9
Dołączył: 8.08.2009
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Filtruj dane pochodzące od użytkownika

Zamieniaj znak | na np _
Komentarze podatne na XSS
Go to the top of the page
+Quote Post
moto0095
post 6.04.2010, 19:08:48
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Starałem się aby były jak najprostsze smile.gif.
Oczywiście można dodać jeszcze takie zabezpieczeni
  1. $zab = array("<" => "<", ">" => ">", "|" => " ");
  2. foreach($zab as $tekst => $sss) $string = str_replace($tekst,''.$sss.'',$string);


Ten post edytował moto0095 6.04.2010, 19:09:23
Go to the top of the page
+Quote Post
MateuszS
post 6.04.2010, 19:55:21
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Funkcja Strip_tags okazała by się tu bardzo pomocna,

Ten post edytował MateuszScirka 6.04.2010, 19:55:33


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Michaxxx
post 6.04.2010, 20:38:27
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Po odświeżeniu strony znów dodaje komentarz.

Przemyśl czy obrazki do komentarzy to dobry pomysł bo zobacz co się stało smile.gif
Cytat
Fatal error: Cannot redeclare emotki() (previously declared in /home/a6265801/public_html/DEMO/index.php:76) in /home/a6265801/public_html/DEMO/index.php on line 76

hmm ? smile.gif Tera to nic nie widze po małych zabawach

Ten post edytował Michaxxx 6.04.2010, 20:45:03
Go to the top of the page
+Quote Post
moto0095
post 6.04.2010, 20:52:22
Post #6





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Ten błąd to moja sprawka.
Próbuje zapobiec wstawianiu kodu.

Już powinno działać.
Go to the top of the page
+Quote Post
Michaxxx
post 6.04.2010, 20:55:50
Post #7





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Date trzymac w polu tekstowym to dobry pomysł?
Zobacz jaką datę dodałem .
Go to the top of the page
+Quote Post
moto0095
post 6.04.2010, 20:59:01
Post #8





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Normalną

Ok. Mam taką prośbę zamiast zaśmiecać mi wersje demo to może byście coś pomogli??
Jakieś propozycje jak ulepszyć ten skrypt??
Go to the top of the page
+Quote Post
Michaxxx
post 6.04.2010, 21:02:21
Post #9





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Pokazując Ci błędy pokazujemy co masz naprawić biggrin.gif.
Ulepszyć . Hmm? może to żeby awatar musiał być obrazkiem?
Go to the top of the page
+Quote Post
moto0095
post 6.04.2010, 21:03:54
Post #10





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Cytat(Michaxxx @ 6.04.2010, 22:02:21 ) *
Ulepszyć . Hmm? może to żeby awatar musiał być obrazkiem?


A jakoś jaśniej questionmark.gif
Go to the top of the page
+Quote Post
Michaxxx
post 6.04.2010, 21:08:28
Post #11





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Zobacz ten obrazek
Bo tak mi się zdaje , że awatar to obrazek a nie <? smile.gif
Sprawdzaj czy w Awatarze jest obrazek czy co innego

EDIT

a teraz zobacz masz
Cytat
Dodano: BBBB



Edit
zrób żeby po odświeżaniu nie dodawało 2 raz komentarza.

Ten post edytował Michaxxx 6.04.2010, 21:10:18
Go to the top of the page
+Quote Post
moto0095
post 6.04.2010, 21:10:57
Post #12





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


A w jaki sposób zmieniłeś datęquestionmark.gif
Go to the top of the page
+Quote Post
Michaxxx
post 6.04.2010, 21:12:37
Post #13





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Edytowałem źródło strony.
Go to the top of the page
+Quote Post
moto0095
post 6.04.2010, 21:16:22
Post #14





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


A w jaki sposób temu zapobiec questionmark.gif
Go to the top of the page
+Quote Post
Michaxxx
post 6.04.2010, 21:23:52
Post #15





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Przed wpisaniem do pliku zamiast czerpać z _POST czy czego tam używasz daj po prostu
Coś = function.date
i Zapisz
Go to the top of the page
+Quote Post
moto0095
post 6.04.2010, 21:24:07
Post #16





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Oki zamykam temat.
Dopracuję jeszcze ten skrypt a jak na razie usuwam wersję demo.
Go to the top of the page
+Quote Post
Michaxxx
post 6.04.2010, 21:24:31
Post #17





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Jak coś pisz na PW to moge Ci coś pomóc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 22:46