Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> BBCode w PHP
Lesiu
post 29.08.2009, 20:43:51
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.08.2009

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


Witam, chcę zrobić BBcode na stronie opartej w PHP. Jest zrobiony skrypt ,że w textarena wpisujemy tekst i wysyłamy, osoba odpowiedzialna za sprawdzanie tego tekstu może zaakceptować bądz odrzucić tą tekst.
Ale jeżeli ktoś napisze
Cytat
np. <center>Witam</center>
to wpliku Nazwa Konta.bio pokazuje mi się
Cytat
&lt;center&gt;Witam&lt;/center&gt;
I jak wchodze w ten panel gdzie się chce sprawdzić ten tekst co napisała ta osoba to zamiast te Witam być na środku pokazuje się <center>Witam</center>

Chyba chodzi tu o kodowanie bo nie wczytuje mi tego znaku, a jak w tym pliku .BIO wpisze <center>Witam</center> To tekst jest na środku, czyli raczej trzeba było by coś zrobić aby nie kodowało w sposób
Cytat
&gt;
Z góry dzieki za odpowiedz, mam nadzieje ze ktoś mi w tym pomoże, Kolega powiedział mi coś o strip_tags. Jeżeli będziecie potrzebowali jakiś wycinek kodu jest on dostępny.
Go to the top of the page
+Quote Post
wookieb
post 29.08.2009, 21:18:14
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A wiesz co to jest bbcode? Temat o bbcodzie a pytasz się o encje..
http://pl2.php.net/manual/pl/function.html...hars-decode.php

Jak otwierasz plik w panelu i widzisz encje to zapewne skrypt panelu to robi. Ściągnij plik ftp-em i zobaczysz czy rzeczywiście tak jest.


--------------------
Go to the top of the page
+Quote Post
Lesiu
post 29.08.2009, 22:31:40
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.08.2009

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


No z tego co ja wiem to BBCode to jest ze mozna wybrać Kursywe, pogrubienie i te takie, ale tylko mówie ze do tego jest mi potrzebne, Sorki, ale jak byś mógł mi wytłumaczyć tak dokładnie co mam zrobić, lekko to kumam ale nie do końca,
Go to the top of the page
+Quote Post
pyro
post 29.08.2009, 22:39:02
Post #4





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


@Lesiu, to co Ty próbujesz zrobić to jest po prostu osadzenie znacznika HTML (zdeprecjonowanego zresztą...), a skrypt najwidoczniej filtruje dane pochodzące od użytkownika, żeby chronić go przed atakami pochodnymi od XSS. BBCode to jest co innego.. nie mam co tutaj opisywać tematu, który był już nie raz poruszany.

Spróbuj zamiast tego <center>Witam</center> wpisać [b ]Witam[/b] (EDIT: bez spacji po b ). Jeśli tekst nie zostanie pogrubiony, to najprawdopodobniej nie ma zainicjowanego BBCode. Wtedy musisz sam go zaimplementować. Widzę, że niestety Twoje umiejętności raczej temu nie podołają... w takim wypadku możesz komuś zlecić wykonanie tego, ale to już za $$$.

Ten post edytował pyro 29.08.2009, 22:39:56


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
wookieb
post 29.08.2009, 22:40:07
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




bbcode to inny sposób notacji formatowania tekstu (więcej o bbcode na wikipedii np) a ty o nim nie wspominasz. Żeby tekst zapisany w bbcode przetransformować do htmla musisz użyć do tego celu parsera bbcode (jest ich sporo - wybierz).

Najpierw powiedz nam następujące rzeczy jak zapisujesz dane do tego pliku. Bo jeżeli chcesz tak po prostu używać htmla to przy odczytywaniu danych z tego pliku zastosujesz na nich funkcję którą podałem.


--------------------
Go to the top of the page
+Quote Post
Lesiu
post 29.08.2009, 23:22:48
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.08.2009

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


Sorki, wookieb pomogłeś mi w pierwszym poscie, zle wpisałem htmlspecialchars_decode($str); dzięki.

Teraz mam taki problem, wziąłem BBCode z http://forum.php.pl/index.php?showtopic=86314&hl=BBcode

I wkleiłem ten pierwszy kod co pokazał do parser.php a ten drugi do miejsca gdzie się ma to pokazać, tak to zrozumiałem i pokazuje mi się błąd.

Parse error: syntax error, unexpected T_PRIVATE in C:\Program Files\WebServ\httpd\sf\core\parser.php on line 107

Jakby mógł ktoś mi wytłumaczyć jak mam to wkleić. był bym bardzo wdzięczny.

Ten post edytował Lesiu 29.08.2009, 23:24:06
Go to the top of the page
+Quote Post
wookieb
post 29.08.2009, 23:26:00
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A masz php5 na serwerze?


--------------------
Go to the top of the page
+Quote Post
Lesiu
post 29.08.2009, 23:30:11
Post #8





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.08.2009

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


Wykupione jest w home.pl ale właśnie nie wiem czy jest, a jest możliwość sprawdzenia tego?
Go to the top of the page
+Quote Post
wookieb
post 29.08.2009, 23:32:19
Post #9





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://pl.php.net/phpinfo

Jeżeli masz 5 włączoną to zapodaj kod jaki masz.


--------------------
Go to the top of the page
+Quote Post
Lesiu
post 29.08.2009, 23:35:14
Post #10





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.08.2009

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


PHP Version 5.2.5 << Z tego co widać to raczej jest.

System Windows NT KOMP1 5.1 build 2600
Build Date Nov 8 2007 23:18:08
Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared"
Server API Apache 2.0 Handler
Virtual Directory Support enabled
Configuration File (php.ini) Path C:\WINDOWS
Loaded Configuration File C:\WINDOWS\php.ini
PHP API 20041225
PHP Extension 20060613
Zend Extension 220060519
Debug Build no
Thread Safety enabled
Zend Memory Manager enabled
IPv6 Support enabled
Registered PHP Streams php, file, data, http, ftp, compress.zlib, compress.bzip2, zip
Registered Stream Socket Transports tcp, udp
Registered Stream Filters convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, zlib.*, bzip2.*

Ten post edytował Lesiu 29.08.2009, 23:36:43
Go to the top of the page
+Quote Post
wookieb
post 29.08.2009, 23:39:44
Post #11





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A pokaż kod "parser.php"


--------------------
Go to the top of the page
+Quote Post
Lesiu
post 29.08.2009, 23:42:45
Post #12





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.08.2009

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


Kod
<?php

    function getThingData($file)
    {
        $i=0;
        $file = file_get_contents($file);
        $vars = explode("\n", $file);
        while($vars[$i])
        {
            $var = explode("=", $vars[$i]);
            $ret[$var[0]] = $var[1];
            $i++;
        }        
        return $ret;
    }
    function setThingValue($file_dir, $from, $to)
    {
        $file = file_get_contents($file_dir);
        $content = explode("\n", $file);
        $i=0;
        while($content[$i])
        {
            $var = explode("=", $content[$i]);
            if($var[0] == $from)
            {
                $var[1] = $to;
            }
            $ret_val .= $var[0]."=".$var[1]."\n";
            $i++;
        }
        file_put_contents($file_dir, $ret_val);
        
    }

    if($_GET['logout'] == "me")
    {
        setcookie("session_id", false);
        header("Location: index.php");
    }
    
    if($_POST['account_login'])
    {
        $acc_name = htmlspecialchars($_POST['account_name']);
        $acc_pwd = htmlspecialchars($_POST['account_password']);
        
        $acc_file = $server_dir.$acc_name.".txt";
        
        if(!file_exists($acc_file)) { $error .= "Takie konto nie istnieje. <br />"; } else {
            $account = getThingData($acc_file);
            if(trim($account['Online']) != "1")
            {
                if( trim($acc_pwd) == trim($account['Haslo']) )
                {
                    $NS = md5(rand(0,9999) + time()); // Losowy cig znakw zakodowany do md5, przez co ma unikaln forme 32 znakow (raczej nie do BruteForce'owania)
                    
                    touch("data/".$acc_name.".sid");
if(!file_exists("data/".$acc_name.".cfg")) { touch("data/".$acc_name.".cfg"); }
                    // AccName|Time //
                    file_put_contents("data/".$acc_name.".sid", $NS.".".time());
file_put_contents("data/".$acc_name.".cfg", "Skype=Brak\nGG=Brak\nEMail=");
                    setcookie("session_id", $NS);
                    setcookie("acc_name", $acc_name);
                    header("Location: index.php");
                } else { $error .= "Podane haslo jest nieprawidlowe. <br />"; }
            } else { $error .= "Nie mozesz byc zalogowanym w grze, aby wejsc do panelu."; }
        }        
    }
    if($_POST['account_reg'])
    {
        $acc_name = htmlspecialchars($_POST['account_name']);
        $acc_pwd = htmlspecialchars($_POST['account_password']);
        $acc_pwd2 = htmlspecialchars($_POST['account_password2']);
        $char_skin = htmlspecialchars($_POST['character_skin']);
        $char_sex = htmlspecialchars($_POST['character_s']);
        $char_orign = htmlspecialchars($_POST['character_o']);
        if($acc_pwd == $acc_pwd2)
        {
            if(ereg("([a-zA-Z_]) ([a-zA-Z_])", $acc_name) && strlen($acc_name) < $reg_data["MaxNameLen"] && strlen($acc_name) > $reg_data["MinNameLen"])
            
                {
if($char_skin == 23 || $char_skin == 7 || $char_skin == 101 || $char_skin == 28 || $char_skin == 60 || $char_skin == 56 || $char_skin == 190 || $char_skin == 191 || $char_skin == 192 || $char_skin == 193)
                    {
                    if($char_sex == 1 || $char_sex == 2)
                    {
                        if($orign_chosse[$char_orign])
                        {
                            $nF = $server_dir.$acc_name.".txt";
                            if(!file_exists($nF))
                            {
                                copy($server_dir."Example.txt", $nF);
                                // Ustawianie zmiennych:
                                setThingValue($nF, "Haslo", $acc_pwd);
                                setThingValue($nF, "Pochodzenie", $char_orign);
                            setThingValue($nF, "Skin", $char_skin);
                                setThingValue($nF, "Plec", $char_sex);
                                $reg_error = "Konto zostalo pomyslnie utworzone.";
                            } else { $reg_error = "Konto o podanej nazwie ju istnieje."; }
                        } else { $reg_error = "Podales zle pochodzenie."; }
                    } else { $reg_error = "Nie podales plci postaci."; }
} else { $reg_error = "Nie wybrales skina"; }
                } else { $reg_error = "Nieprawidlowa nazwa konta."; }
        } else { $reg_error = "Podane hasla si nie zgadzaj."; }
    }
?>


Bo może ja źle do tego Parseru"parser.php" to wkładam, no nie wiem, sprawdz to jak możesz,

Ten post edytował Lesiu 29.08.2009, 23:57:35
Go to the top of the page
+Quote Post
wookieb
post 30.08.2009, 08:11:27
Post #13





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ale ty tego nie masz wkladac do parser.php ... Napewno uciales jakas czesc kodu.

  1. require_once 'parser.php';
  2. $parser = new parser():
  3.  
  4. echo $this->parse($twoje_tekst);


Wczoraj jak testowałem ten parser to wysypywał mi się na pewnych tagach. Dlatego polecam użycie mojego ze stopki.


--------------------
Go to the top of the page
+Quote Post
pyro
post 30.08.2009, 09:29:26
Post #14





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


[quote name='wookieb' post='655497' date='30.08.2009, 09:11:27 ']<!--Geshi:156248:php--><pre class="php-brief" style="font-family:monospace;"><div class="head">
  1. [topic=0]0[/topic], <a href='Plaintext-156249.html' target='_blank'>plaintext</a> </div></pre><!--/Geshi:156249:php-->
  2.  
  3. // edit
  4.  
  5. cholerny update. nie można normalnie skopiować kodu.
  6.  
  7. [b]@wookieb[/b], czy przypadkiem zamiast
  8.  
  9. [php]
  10. echo $this->parse($twoje_tekst);


nie chciałeś napisać

  1. echo $parser->parse($twoje_tekst);


questionmark.gif

Ten post edytował pyro 30.08.2009, 09:36:02


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
Lesiu
post 30.08.2009, 10:42:15
Post #15





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.08.2009

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


To gdzie ja mam wkleic te Kod od BBCode?
I w jaki sposób?

Jeżeli pobiore ten twój parser ze stopi to jak mam go użyc? załozyc nowy plik?

Ten post edytował Lesiu 30.08.2009, 10:44:41
Go to the top of the page
+Quote Post
wookieb
post 30.08.2009, 10:48:58
Post #16





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(Lesiu @ 30.08.2009, 11:42:15 ) *
To gdzie ja mam wkleic te Kod od BBCode?
I w jaki sposób?

No przecież dostałeś odpowiedź. A skąd my mamy dokładnie wiedzieć GDZIE ty chcesz ten kod wyświetlić?

Cytat
Jeżeli pobiore ten twój parser ze stopi to jak mam go użyc? załozyc nowy plik?

A czy nie możesz choć troche wyłożyć własnej inwencji i NAJPIERW go ściągnać a potem SPRÓBOWAĆ użyć? W dodatku w pliku test.php JEST pokazane JAK się go używa.


--------------------
Go to the top of the page
+Quote Post
Lesiu
post 30.08.2009, 13:40:35
Post #17





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.08.2009

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


Sorki, ale ten link nie działa.
http://wookieb.pl/bbcode/bbcode.zip << To jest ten link? Jak tak to coś nie wchodzi.

Mógłbyś wstawić ten parser na inny hosting?

Ten post edytował Lesiu 30.08.2009, 11:08:35
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: 16.06.2025 - 20:42