Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] link i pogrubiony tekst w bazie, j.w.
if_error
post 17.06.2007, 19:42:07
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.06.2007

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


Witam ... moje pytanie tym razem sprowadza się do zapisu w bazie linku i pogrubionego tekstu. Chciałbym zapytać jak zrobić żeby do bazy zapisał mi pogrubiony tekst. Tak jak jest to w przypadku pisania tego posta mam do dyspozycji z gornego "menu" m.in. tekst pogrubiony i po wstawieniu między znacznikami tekst zostaje pogrubiony, podobnie jak z linkiem do strony. Kiedy próbowałem użyć znacznika <b>coś</b> to do bazy zapisało mi właśnie w takiej postaci i wyświetla tak samo czyli "<b>coś</b>".

Ma ktoś jakiś art. do poczytania jak to zrobić samemu?

bede wdzieczny za pomoc ...
Go to the top of the page
+Quote Post
Lombi
post 17.06.2007, 20:34:29
Post #2





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

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


Jak rozumiem wyświetla Ci na stronie doklanie taką treść "<b>cos</b>" a nie pogrobiony napis cos...
napisz jak dodajesz do bazy i jak z niej odczytujesz zeby było sie czego czepic snitch.gif

Ten post edytował Lombi 17.06.2007, 20:34:41


--------------------
znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
Go to the top of the page
+Quote Post
if_error
post 17.06.2007, 20:56:27
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.06.2007

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


zapis do bazy:

  1. <?php
  2. function odbierz($pole) {
  3. $pole = trim($pole);
  4. if (get_magic_quotes_gpc()) $pole = stripslashes($pole);
  5. return htmlspecialchars($pole, ENT_QUOTES);
  6. }
  7.  
  8. $tytul = odbierz($_POST['tytul']);
  9. $data = odbierz($_POST['data']);
  10. $autor = odbierz($_POST['autor']);
  11. $tresc = odbierz($_POST['tresc']);
  12. $tresc_rozwinieta = odbierz($_POST['tresc_rozwinieta']);
  13. $czytan = odbierz($_POST['czytan']);
  14.  
  15. ...tu sprawdzenia - poprawnosc pol itd ...
  16.  
  17. $query2 = "INSERT INTO $mysql_tabela (tytul,data,autor,tresc,tresc_rozwinieta,czytan) VALUES ('$tytul', '$data', '$autor', '$tresc', '$tresc_rozwinieta', '$czytan')";
  18. $result2 = mysql_query($query2);
  19. echo '<font color="#000000">Dane zostały zapisane.</font><br>';
  20. } else {
  21. echo '<font color="#000000">Dane nie zostały zapisane.</font><br>';
  22. }
  23. ?>


odczyt:

  1. <?php
  2. include("../tabele/news.php");
  3. mysql_connect ( $mysql_host, $mysql_login, $mysql_haslo ) or
  4. die ("Nie można połączyć się z bazą MySQL.");
  5. mysql_select_db($mysql_baza) or
  6. die ("Nie można połączyć się z bazą danych.");
  7.  
  8. $zapytanie= mysql_query ("SELECT * FROM $mysql_tabela") or 
  9. die ("Błąd w zapytaniu");
  10.  
  11. function iso($text){
  12. $text=strtr($text, "ąśźĄŚŹ","ąśĽˇŚŹ");
  13. return $text;}
  14.  
  15. while ($rekord = mysql_fetch_array ($zapytanie)) {
  16. $id_news = $rekord[0];
  17. $tytul = $rekord[1];
  18. $data = $rekord[2];
  19. $autor = $rekord[3];
  20. $tresc = $rekord[4];
  21. $tresc_rozwinieta = $rekord[5];
  22. $czytan = $rekord[6];
  23.  
  24. // i wyswietlamy w odpowiednich miejscach np:
  25.  
  26. print(iso("$tresc"));
  27. ?>


no i wyświetla np: <b>witam</b>
Go to the top of the page
+Quote Post
strife
post 17.06.2007, 21:33:08
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Wyświetla Ci:
Kod
<b>witam</b>

w źródle pliku ?

Sprawdź nagłówki, czy dokument zostaje wysłany jako html.


--------------------
Go to the top of the page
+Quote Post
if_error
post 17.06.2007, 23:34:10
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.06.2007

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


strife - pewnie wyjdę na głu..... ale heh nie bardzo wiem o co chodzi

Cytat
Sprawdź nagłówki, czy dokument zostaje wysłany jako html.


sadsmiley02.gif heh dokładniej pewnie tego się nie da powiedzieć ale ... moze jakoś zobrazować questionmark.gif dry.gif
Go to the top of the page
+Quote Post
Lombi
post 17.06.2007, 23:55:15
Post #6





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

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


Nie na głupka tylko początkujacego snitch.gif
Masz w HEAD coś takiego:
  1. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />


Pokaż jeszcze zródło strony ktorą wyświetla ci skrypt! Bez tresci ktore tam posiadasz tylko head i z body to nieszczesne pogrobienie.


--------------------
znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
Go to the top of the page
+Quote Post
Kicok
post 18.06.2007, 07:53:35
Post #7





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Cytat
  1. <?php
  2. //(...)
  3. return htmlspecialchars($pole, ENT_QUOTES);
  4. //(...)
  5. ?>


Zamieniasz znaki takie jak: < czy > na encje, więc tagi HTML są rozpoznawane jako zwykły tekst.
Rozwiązanie pierwsze, to nieużywanie htmlspecialchars - ale wtedy musiałbyś jeszcze dosyć ostro pogłówkować jak ten skrypt zabezpieczyć przed SQL Injection i XSS.
Inny pomysł to zostawić tą funkcję tak jak jest, ale przerzucić sie na proste tagi BBcode. Zaraz przed wyświetleniem danych z bazy zamieniasz: [ b] na: <b>, a: [ /b] na: </b>.
Do tego wystarczy ci funkcja str_replace" title="Zobacz w manualu PHP" target="_manual, albo przykład 1694 z: preg_replace_callback" title="Zobacz w manualu PHP" target="_manual, o ile będziesz potrafił to dostosować do własnych potrzeb.


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
if_error
post 18.06.2007, 16:19:50
Post #8





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.06.2007

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


działa ;-)

  1. <?php
  2. function iso($text){
  3. $text=strtr($text, "ąśźĄŚŹ[]","ąśĽˇŚŹ<>");
  4. return $text;}
  5. ?>


pozdrwiam :roll2:

Ten post edytował if_error 18.06.2007, 19:13:38
Go to the top of the page
+Quote Post
Glarden
post 18.06.2007, 19:34:53
Post #9





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


Jak chcesz po prostu pogrubiony tekst to zrób to na stronie, a nie w bazie:
  1. <?php
  2. print(iso("<b>".$tresc."</b>"));
  3. ?>


--------------------
Raz, dwa, trzy, baba Jaga patrzy!
http://trelemorele.cba.pl
Go to the top of the page
+Quote Post
if_error
post 18.06.2007, 19:49:11
Post #10





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.06.2007

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


Glarden - a jesli chce zeby tylko powiedzmy jeden wyraz badź jedna linijka sposrod calego tekstu byla pogrubiona? - w tym wypadku chyba całay tekst mi pogrubi a tego nie chce ...

ale ...

teraz bardziej obszernie i nie wiem czy dobrze ale u mnie działa ;-) :
  1. <?php
  2. function iso($text){
  3. $co = array ('ą','ś','ź','Ą','Ś','Ź','[',']','%22');
  4. $naco = array ('ą','ś','Ľ','ˇ','Ś','Ź','<','>','"');
  5. $text=str_replace($co, $naco, $text);
  6. return $text;}
  7. ?>


teraz przy pisaniu posta wstawie tylko: to jest [.b]pogrubiony[./b] (dałem kropki bo mi pogrubia) tekst i ładnie wyświetla: to jest pogrubiony tekst ...

ale jak chce zapisać link to zamiast " ładuje %22 - to troche niewygodne heh - jak to zmienić ?

Ten post edytował if_error 18.06.2007, 19:51:08
Go to the top of the page
+Quote Post
Glarden
post 19.06.2007, 12:43:52
Post #11





Grupa: Zarejestrowani
Postów: 153
Pomógł: 2
Dołączył: 28.05.2007
Skąd: Stamtąd

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


to możesz zrobić tak:
  1. <?php
  2. $tresc = str_replace("krowa", "<b>krowa</b>", $tresc);
  3. echo $tresc;
  4. ?>


I wyświetli Ci cały tekst, tylko krowa będzie pogrubiona.


--------------------
Raz, dwa, trzy, baba Jaga patrzy!
http://trelemorele.cba.pl
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: 26.04.2025 - 01:59