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
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
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 (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Ten post edytował Lombi 17.06.2007, 20:34:41
Go to the top of the page
+Quote Post
if_error
post
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
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
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.


(IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) heh dokładniej pewnie tego się nie da powiedzieć ale ... moze jakoś zobrazować (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
Lombi
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
Kicok
post
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.
Go to the top of the page
+Quote Post
if_error
post
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
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. ?>
Go to the top of the page
+Quote Post
if_error
post
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
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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 13:27