Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak przerobiś skrypt komentarzy
Forum PHP.pl > Forum > Przedszkole
darkowski
Witam
Mam skrypt komentarzy i chciałbym żeby była wyświetlana data wystawienia oraz żeby wyglądało to tak:

np. 27 luty 2008 o 10:34 z sekundami lub bez i miesiąć może być napisany cyframi czyli np. 27.02.2008
Napisał: np. Darkowski
No i tutaj treść komentarza

oto skrypt:
dodawacz.php
CODE

<form action="zapis.php" method="POST">
<table width="100%">
<tr>
<td width="7%">Autor</td>
<td width="93%"> <input type="text" name="autor" size="38" /></td>
</tr>
<tr>
<td width="7%">Treść</td>
<td width="93%">
<textarea name="tresc" style="width: 251; height: 150;" rows="1" cols="20" ></textarea></td>
</tr>
<tr>
<td >
 </td><td>
<input type="submit" value="Dodaj" /></td>
</tr>
</table>
</form>
<table class="all" border="0" width="100%">
<tr>
<td><?php include "wiadomosc.php"; ?></td>
</tr>
</table>

zapis.php
CODE

<?php

$fp=fopen("dane.php","a+");
flock($fp,LOCK_EX);
fwrite($fp,$_POST["autor"]."|".$_POST["tresc"]."\n");
flock($fp,LOCK_UN);
fclose($fp);

?>

co tu zmienić? z góry dzięki
Cysiaczek
  1. <?php
  2. fwrite($fp,$_POST["autor"]."|".$_POST["tresc"]."|".date('j F Y h:m:s')."\n");
  3. ?>


Tylko będzie miesiąc po angielsku. Musisz pokombinować prze wyświetlaniu i zamieniać nazwy angielskie na polskie.

--edit
Bez kombinowania:
zamast date() daj
  1. <?php
  2. setlocale (LC_TIME, "pl_PL"); // na początku skryptu
  3. fwrite($fp,$_POST["autor"]."|".$_POST["tresc"]."|".strftime('%e %B %G o %H:%M:%S')."\n");
  4. ?>


snitch.gif
Pozdrawiam,
darkowski
Zrobiłem tak jak pisaliście ale dalej nie pokazjue daty.
Poniżej daje jeszcze kod który wyświetla wysłane komentarze.

plik wiadomosc.php
CODE

<?php

$linia=explode("\n",file_get_contents("dane.php")); // kolejne linie sa zapisywane jako kolejne elementy tablicy "linia"

$ilosc=count($linia); // ilosc linii/newsów

for($c=$ilosc-1;$c>=0;$c--)
{
$element=explode("|",$linia[$c]); // kolejne czesci linii sa rozdzielane jako elementy tablicy "element"
echo "<table><tr><td>".$element[1]."</td></tr><tr><td><u>".$element[0]."</u></td></tr></table>";
}

?>
Gość
A i jeszcze żeby najpier była wyświetlana data potem nick a na końcu komentarz, czyli np:
27 luty 2008 o 10:54
Napisał: Darkowski
Treść: blablabla

i żeby nick nie był podkreślony tzn.żeby nie było ta: Darkowski tylko Darkowski
Gość
Z podkreśleniem nicka już sobie poradziłem ale nadaj nie potrafie zrobić żeby było tak jak pisałem wyżej.Z góry dzięki jeszcze raz
Cysiaczek
To pokaż te Swoje próby.
darkowski
wejdź na www.niedojeby.lua.pl/dodawacz2.php
a po drugie zauważyłem że jak w oknie TREŚĆ napisze jakąś tereść i dam ENTER a potem dopiero DODAJ to wtedy widać date ale nie wiem czemu od razu nie widać.
Pomóż prosze
Cysiaczek
No i co? Ty mi nie pokazuj strony, tylko kod php, kŧórym próbowałeś zrobić to, co mówisz. ZAczynam podejrzewać, że wogóle nic nie robiłeś sad.gif
darkowski
Ale mi tylko się udało zrobić żeby nie był nick podkreślony i żeby był najpierw nick a potem treść tylko nie wiem co zrobić żeby ta data była od razu wyświetlana a kod zmieniłem w ten sposób

widomosc.php
CODE

<?php

$linia=explode("\n",file_get_contents("dane.php")); // kolejne linie sa zapisywane jako kolejne elementy tablicy "linia"

$ilosc=count($linia); // ilosc linii/newsów

for($c=$ilosc-1;$c>=0;$c--)
{
$element=explode("|",$linia[$c]); // kolejne czesci linii sa rozdzielane jako elementy tablicy "element"
echo "<table><tr><td>".$element[0]."</td></tr><td>".$element[1]."</td></tr></table>";
}

?>


mała zmiana a cieszy(-: ale co dalej
nie wiem czy w pliku zapisz.php czy w wiadomosc.php musze zmienić ale chyba w wiadomosc.php coś trzeba zmienić
darkowski
A strone podałem po to żebyśsobie sam sprawdził i zrobił testa kiedy widać date a kiedy nie i co z tym żeby było koło nicka było napisane DODAŁ lub NAPISAŁ: i dopiero nick. Nie wiem czy mnie ktoś rozumie bo jak pisząc nie potrafie tak bardzo wyjaśnić o co mi chodzi i dlatego ta strona którą podałem
Cysiaczek
Hm. MOże winny jest znak końca lini. Zmień na \r\n
  1. <?php
  2. fwrite($fp,$_POST["autor"]."|".$_POST["tresc"]."|".date('j F Y h:m:s')."r\n");
  3. ?>


jeśli nie pomoże, to pokaż wynik działania funkcji
  1. <?php
  2. print '<pre>';
  3. print_r($linia);
  4. print_r($element);
  5. print '</pre>';
  6. ?>
darkowski
Ten pierwszy system nie działa a ten drugi to gdzie mam wkleić do zapisz.php czy wiadomosci.php
darkowski
I jeszcze jedno zauważyłem że jak dam w wiadomośc.php $element=explode("||",$linia[$c]); a nie $element=explode("|",$linia[$c]); to widać wszystko razem z datą tylko że w jednej lini a nie jedno pod drugim
Cysiaczek
Czy naprawdę trzeba Ciebie za rączkę prowadzić? Odrobina samodzielności! Jeśli proszę, abyś wkleił coś, co operuje na zmiennej, to chyba można sie domyślić w jakim pliku, prawda? Programowanie to sztuka rozwiązywania problemów.
darkowski
Wkleiłem ale też nie działało ale wymyśłiłem takie coś tzn dodałem do wiadomosc.php takie coś

echo "<table><tr><td>".$element[1]."</td></tr><tr><td>".$element[2]."</td></tr></table>".$element[0]."</td></tr></table>"; i dzięki temu wyświetla date tylko teraz kombinuje w ustawieniach kolejności wyświetlania i nie moge zrobić żeby najpierw data potem nick poten treść
Cysiaczek
Tak się zastanawiałem właśnie, kiedy wpadniesz na to, że musisz podać kolejny element tablicy smile.gif
No masz to jak na tacy, wiec nie pisz, że nie potrafisz zamienić miejscami kilku zmiennych!
Pozdrawiam.
darkowski
Hehe ale naprawde ja nie potrafie php (-: ani troche tylko kombinuje no i kombinowałem już chyba na wszystkie sposoby i nie wychodziła mi taka kolejność jak chciałem a po drugie wiesz jak gdzie trzeba dopisać słowo NAPISAŁ lub DODAŁ żeby koło tego słowa byłwidoczny nick. No to jeżeli to jużzrobie to naprawde daje ci spokój(-:
Cysiaczek
  1. <?php
  2. echo "<table><tr><td>".$element[2]."</td></tr><tr><td>".$element[0]."</td></tr><tr><td>".$element[1]."</td></tr></table>";
  3. ?>
darkowski
Tak to jużzrobiłem i to przed Toba(-: a teraz kolejny problem czyli dodaje takie coś
  1. <?php
  2. echo "<table><tr><td>".$element[2]."</td></tr><tr><td><b>Napisal:</b>" .$element[0]."</td></tr></table>".$element[1]."</td></tr></table>";
  3. ?>

i niby działa ale nie wiem dlaczego cały czas na górze pisze NAPISAŁ: no i też nie wiem jak zrobić żeby był inny kolor tzn chciałbym żeby data i słowo Napisał był na czerwony.
Jeszcze raz dzięki wiem że nudny jestem ale zależy mi bo już się tyle z tym męcze że głowa boli a dziś to jakiś przełom bo już tyle zrobiliśmy więc skończy to do końcaa i spokój.
darkowski
Ja chcesz to zrób sobie testa na www.niedojeby.lua.pl/dodawacz2.php
darkowski
Mam jeszcze jedno pytanie co zrobic żeby w polu gdzie się wpisuje TEKST po naciśnięciu ENTER wysyłało komentarz a nie przechodziło do następnej linijki bo jak ktoś daje ENTER jak wpisuje tekst a potem DODAJ to się wszystko sypie
darkowski
Nie wiem próbowałem już na kilka sposobów ale nie otrrafie zrobić żeby to tak wyglądało:

28 luty 2008 o 10:32:43
Napisał:
Darkowski
beleleleleeleele

Gdzie zmienić kod
dodawacz.php
  1. <style type="text/css">
  2. <!--
  3. body {
  4. background-color: #000000;
  5. }
  6. .style2 {
  7. color: #FF0000;
  8. font-weight: bold;
  9. font-size: 18px;
  10. }
  11. #Layer1 {
  12. position:absolute;
  13. left:204px;
  14. top:69px;
  15. width:81px;
  16. height:22px;
  17. z-index:1;
  18. }
  19. #Layer2 {
  20. position:absolute;
  21. left:98px;
  22. top:54px;
  23. width:82px;
  24. height:20px;
  25. z-index:2;
  26. }
  27. .style3 {
  28. color: #FF0000;
  29. font-weight: bold;
  30. }
  31. -->
  32. </style>
  33. <form action="zapis.php" method="POST">
  34. <table width="100%">
  35. <tr>
  36.  <td width="1%"><div align="center"></div></td>
  37.  <td width="99%">
  38.  <div align="center"><span class="style2">Treść</span>
  39.  <textarea name="tresc" cols="20" rows="0" style="width: 252; height: 70;"></textarea>
  40.  </div></td></tr>
  41. <tr>
  42.  <td width="1%"><div align="center"></div></td>
  43.  <td width="99%"> 
  44.  
  45.  <div align="center">
  46.  <span class="style2">
  47.  Autor</span><span class="style2">
  48.  <input name="autor" type="text" value="" size="38" />
  49.  </span></div></td>
  50. </tr>
  51. <tr>
  52. <td >&nbsp;</td>
  53.  <td>
  54.  
  55.  <div align="center">
  56.  <input type="submit" value="Dodaj" />
  57.  </div></td></tr>
  58. </table>
  59.  
  60. <div align="center"><span class="style3">Komentarze sa własnoscia ich  autor&oacute;w. <br />
  61. Autor strony nie ponosi odpowiedzialności za ich tresć!</span>
  62. </div>
  63. </form>
  64. <table class="all" border="0" width="100%">
  65.  <tr>
  66. <td><?php include "wiadomosc.php"; ?></td>
  67.  </tr>
  68. </table>
  69. <meta http-equiv="Pragma" content="no-cache" />
  70. <div align="center"></div>


zapis.php
  1. <style type="text/css">
  2. <!--
  3. body {
  4. background-color: #CCCCCC;
  5. }
  6. a:link {
  7. color: #000000;
  8. text-decoration: none;
  9. }
  10. a:visited {
  11. text-decoration: none;
  12. color: #000000;
  13. }
  14. a:hover {
  15. text-decoration: none;
  16. color: #FF0000;
  17. }
  18. a:active {
  19. text-decoration: none;
  20. color: #FF0000;
  21. }
  22. .style2 {font-weight: bold; font-size: 36px; color: #000000;}
  23. -->
  24. </style>
  25. <p align="center" class="style2">&nbsp;</p>
  26. <p align="center" class="style2">Właśnie dodałeś komentarz</p>
  27. <p align="center"><a href="http://niedojeby.lua.pl/dodawacz2.php"><strong>wr&oacute;ć</strong></a></p>
  28. <?php
  29. setlocale (LC_TIME, "pl_PL");
  30.  $fp=fopen("dane.php","a+");
  31.  flock($fp,LOCK_EX);
  32.  fwrite($fp,$_POST["autor"]."|".$_POST["tresc"]."|".strftime('%e %B %G o %H:%M:%S')."\n");
  33.  flock($fp,LOCK_UN);
  34.  fclose($fp);
  35.  
  36. ?>


wiadomosc.php
  1. <style type="text/css">
  2. <!--
  3. <meta http-equiv="Pragma" content="no-cache" />
  4. body {
  5. background-color: #000000;
  6. }
  7. body,td,th {
  8. color: #FFFFFF;
  9. }
  10. -->
  11. </style><?php
  12.  
  13.  $linia=explode("\n",file_get_contents("dane.php")); // kolejne linie sa zapisywane jako kolejne elementy tablicy "linia"
  14.  
  15.  $ilosc=count($linia); // ilosc linii/newsów
  16.  
  17.  for($c=$ilosc-1;$c>=0;$c--)
  18.  {
  19.  $element=explode("|",$linia[$c]); // kolejne czesci linii sa rozdzielane jako elementy tablicy "element"
  20.  echo "<table><tr><tr><tr><tr><tr><tr><tr><td>".$element[2]."</td></tr><tr><td><u><b>" .$element[0]."</u></b></td></tr></table>" .$element[1]."</td></tr></table>";
  21.  }
  22.  
  23. ?>
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.