Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Moja księga gości
Forum PHP.pl > Forum > Przedszkole
kiler129
Napisałem b. prostą księgę gości i mam 2 pytania
1. Dlaczego w tytule strony, w pogrubionych tekstach sa krzaki ?
2. Jak zrobic wywlanie tagów html/php z wypowiedzi ?

Kod jest taki:

index.html
  1. <title>Księga gości - wpisz się</title>
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  3.  
  4. Witaj w księdze gości !
  5.  
  6. <form action="zapisz.php" method=get>
  7. <b>Imię/pseudo:</b> <input type="text" name="imie" size=40 maxlength=400><br>
  8. <b>E-mail/gg:</b> <input type="text" name="kontakt" size=40 maxlength=40><br>
  9. <b>Wpis:</b> <textarea name="wpis" style="width: 466px; height: 107px"></textarea><br>
  10. <br><br><br>
  11. <input type="submit" value="Wpisuj!">
  12.  
  13. </html>


zapisz.php
  1. <?
  2.  
  3. $imie=$_GET['imie'];
  4. $kontakt=$_GET['kontakt'];
  5. $wpis=$_GET['wpis'];
  6. $ip=$_SERVER['REMOTE_ADDR'];
  7. $data=date("d-m-Y H:i:s");
  8.  
  9. $fp=fopen("wpisy.txt", "a");
  10. flock($fp, 2);
  11. fwrite($fp, "<b>Data wpisu: </b>".$data."<br>");
  12. fwrite($fp, "<b>Imię/pseudo: </b>".$imie."<br>");
  13. fwrite($fp, "<b>E-mail/gg: </b>".$kontakt."<br>");
  14. fwrite($fp, "<b>Treść wpisu: </b><br>".$wpis."<br>");
  15. fwrite($fp, "<hr><br><br>");
  16. flock($fp, 3); 
  17. fclose($fp); 
  18.  
  19. $fp=fopen("adminlog.html", "a");
  20.  
  21. flock($fp, 2); 
  22. fwrite($fp, "<b>Data wpisu: </b>".$data."<br>");
  23. fwrite($fp, "<b>Imię/pseudo: </b>".$imie."<br>");
  24. fwrite($fp, "<b>E-mail/gg: </b>".$kontakt."<br>");
  25. fwrite($fp, "<b>Treść wpisu: </b><br>".$wpis."<br>");
  26. fwrite($fp, "<b>IP: </b>".$_SERVER['REMOTE_ADDR']."<br>");
  27. fwrite($fp, "<b>Ident. przeglad.: </b>".$_SERVER['HTTP_USER_AGENT']."<br>");
  28. fwrite($fp, "<hr><br><br>");
  29. flock($fp, 3); 
  30. fclose($fp); 
  31.  
  32. echo "Wpis został dodany pomyslnie ! <br><br>";
  33. echo '<A HREF="zobacz.php">Pokaż wpisy</A>';
  34. ?>


zobacz.php
  1. <title>Księga gości - przegląd wpisów</title>
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  3. </html>
  4. <?
  5. include 'wpisy.txt';
  6. ?>



Wszystkie uwagi i propozyce mile widziane tongue.gif
yaro
Co do punktu 2 to:
Funkcja do usuwania tagów html i kodu php to: strip_tags()" title="Zobacz w manualu php" target="_manual
Natomiast co do punktu 1 to nie wiem o co dokładnie chodzi, gdzie ci sie robią krzaczki, opisz dokładniej

ps: popraw tytuł tematu zgodnie z regulaminem
kiler129
Co do wywala nie tagów to jakoś nieumiem użyć tej funkcji Rkingsmiley.png
A co do krzaków to zajrzyj sobie na TEST
Ludvik
Znaki masz zapisane w kodowaniu windows-1250, natomiast w dokumencie zapisujesz, żeby przeglądarka traktowała tekst jakby był kodowany iso-8859-2. Albo zmień informację o kodowaniu, albo lepiej zapisz cały plik zakodowany w iso-8859-2.

  1. <?php
  2. $txt = '<b>tekst z <span>tagami</span></b>';
  3. $txt = strip_tags($txt);
  4. ?>
kiler129
Cytat(Ludvik @ 25.06.2006, 00:09 ) *
Znaki masz zapisane w kodowaniu windows-1250, natomiast w dokumencie zapisujesz, żeby przeglądarka traktowała tekst jakby był kodowany iso-8859-2. Albo zmień informację o kodowaniu, albo lepiej zapisz cały plik zakodowany w iso-8859-2.

  1. <?php
  2. $txt = '<b>tekst z <span>tagami</span></b>';
  3. $txt = strip_tags($txt);
  4. ?>


Ale jak to zaimpletować do księgi ?
strife
Grr.. napisałem Ci obszernego posta, ale nacisnąłem przed wysłaniem w Operze Ctrl + W angrysmiley.gif No cóż, nie pozostaje mi nic innego jak napisać jeszcze więcej tongue.gif

Ad. 1 Najczęstsze błędy, pkt 4, czyli spróbuj w dokumencie, w którym zapisujesz te dane umieścić surowy nagłówek, ( header" title="Zobacz w manualu php" target="_manual ) z odpowiednim kodowaniem, może to pomoże.

  1. <?php
  2. header('Content-type: text/html; charset: ISO-8859-2');
  3. ?>

Ad. 2 Jeżli przeczytałeś zawartość odnośnika, który podał Ci kolega wyżej i umiesz czytać to nie powinieneś mieć problemów z umieszczeniem jej w Twoim skrypcie, popróbuj - pomyśl, i nie czekaj na gotowe winksmiley.jpg

Co do skryptu, no to trochę pozostaje do życzenia, po pierwsze zamienił bym metodę $_GET na $_POST, ponieważ przesyłanie takich danych w pasku adresu jest mało skuteczne np. ze względu na ograniczenie w nim długości. Po drugie, przy wypełnieniu formularza i wciśnięciu F5 te same dane zostają ponownie nam wysłane, to nie powinno mieć miejsca, zrób po wpisaniu danych przekierowanie ( po raz kolejny header" title="Zobacz w manualu php" target="_manual ), po trzecie antyflood'ing, ponowny wpis do księgi za 30 sekund, czyli ochrona przed spamerami smile.gif

Co więcej, wywołujesz tutaj metodę fwrite" title="Zobacz w manualu php" target="_manual, za dużo razy, lepiej takiego string'a połączyć i zapisać go za jednym zamachem. Na razie to Tyle winksmiley.jpg

Pozdrawiam!
marcim
Witaj!
Kolego księga na moim poziomie, a w pliku zobacz.php do wywalenia wszystkich zbędnych tagów można by użyć do odczytu fgetss" title="Zobacz w manualu php" target="_manual w jakiejś pętli np:
  1. <?php
  2. $wp = fopen("wpisy.txt", 'r');
  3. while (!feof($wp))
  4. {
  5. $odczyt = fgetss($wp, filesize("wpisy.txt", ), '<br>');
  6. echo $odczyt;
  7. }
  8. ?>

Tylko jedna niedogodność w tym wpisie, to usunie też twoje tagi, ale strip_tags() też chyba wszystkie usówa?
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.