Autor Zpráva
leorond
Profil
Dobrý den, mám tu menší problém s výpisem z databáze. Ukládám do databáze pomocí tinyMCE a záznam se do databáze uloží tak jak má, pokud vezmu záznam z databáze a vložím ho do echo, print nebo printf tak se vypíše správně ale pokud budu vypisovat z databáze tak se nezobrazí žádné formátování textu kromě tučného písma a kurzívy.

Skript pro výpis

<?php
$num        =    5;                        // Počet příspěvků na stránku
$page        =    $_GET['stranka'];                            // Název nové stránky
$result00    =    mssql_query("SELECT COUNT(*) FROM ROD_news");
$temp        =    mssql_fetch_array($result00);
$posts        =    $temp[0];                                //
if    ($posts    ==    0) $posts    =    1;                        // Pokud není příspěvek = 0
$total        =    (($posts - 1) / $num) + 1;                // 
$total        =     intval($total);                        // Proměnná počtu stránek zabezpečení
$page        =    intval($page);                            // Proměnná stránky zabezpečení
if    (empty($page)    or    $page < 0)    $page    =    1;        // Pokud stránka prázdná, menší než 0 => 1 stránka
if    ($page    >    $total)    $page    =    $total;                // Pokud je stránka větší než totál => stránka se rovná totál
$start    =    $num * ($page - 1);                            // Startovní stránka => počet příspěvků * ( stránka - 1 )
$result    =    mssql_query("SELECT TOP $num * FROM ROD_news where id NOT IN (SELECT TOP $start id FROM ROD_news ORDER BY id desc) ORDER BY id desc");
if    (mssql_num_rows($result)    >    0)                    // Pokud je počet příspěvků > než 0, budeme vypisovat
{
    $myrow    =    mssql_fetch_assoc($result);
    do
    {
        $headline    =    htmlspecialchars($myrow["headline"]);
        $text        =    $myrow["text"];    // <= rozdel($myrow["text"], 200)
        $posted_by    =    htmlspecialchars($myrow["account"]);
        $date        =    date(" d.m.Y v H:i:s ", intval($myrow["time"]));
        printf ("<table id='news-table'>
                     <tr><td class='news-headline'><a href='?pages=pages/show&amp;news=".intval($myrow["id"])."'>".$headline."</a><font style='color:red; float:right; font-size:12px'>".$posted_by.$date."</font></td></tr>
                     <tr><td>".$text."</td></tr>
                </table>
                <div id='oddel-bottom-center'></div>");
    }
    while    ($myrow    =    mssql_fetch_assoc($result));    // Budeme opakovat výpis do vypsání všech příspěvků
}                                                        // Odkazy na ostatní stránky ↓ ( šipky alt + 24 )
if    ($page    !=    1)        $pervpage        =    '<a href="?pages=pages/home&stranka=1">Začátek</a><a href="?pages=pages/home&stranka='.($page - 1).'">Zpět</a>';
if    ($page    !=    $total)    $nextpage        =    '<a href="?pages=pages/home&stranka='.($page + 1).'">Další</a><a href="?pages=pages/home&stranka='.$total.'">Konec</a>';
if    ($total    >    1)
{
    Error_Reporting(E_ALL & ~E_NOTICE);
    echo    "<center><div>";
    echo    $pervpage.$nextpage;
    echo    "</div></center>";
}
?>

Děkuji za pomoc
leorond
Profil
Nejde mi to do hlavy, pokud použiji na výpis htmlspecialchars() tak se mi vypíše text i se vším všudy ale pokud ho vypíšu normálně tak tam žádné formátování není.

<!DOCTYPE html> <html> <head> </head> <body> <p>asdasdasd</p> <p><span style=\"color: #ff0000;\">asdasdasd</span></p> <p><span style=\"color: #ff0000;\"><span style=\"color: #ffff00; background-color: #ff0000;\">asdasdasdasd</span><br /></span></p> </body> </html>


Opraveno funkcí stripslashes()

$text        =    stripslashes("\\".$myrow["text"]);
leorond
Profil
Jenom dodám kdyby měl někdo stejný problém tak je potřeba se zbavit zpětných lomítek.
Alphard
Profil
leorond:
Jenom dodám kdyby měl někdo stejný problém tak je potřeba se zbavit zpětných lomítek.
To by právě nemělo být potřeba, ukazuje to spíš na zdvojené escapování, častý problém v dávných dobách zapnutého magic_quotes. Zpětná lomítka nepatřící do textu se vůbec nemají dostat do databáze, doporučuji zkontrolovat script, který tu databázi plní.
leorond
Profil
No to jsem právě udělal několikrát ale nenašel jsem chybu.
Ještě bych mohl kouknout na to magic_quotes, to mne popravdě ani nenapadlo. Dělám na localhost na xampp takže tam by chyba být mohla.


Alphard: dík opravdu jsem měl zapnuté magic_quotes_gpc a to mi tam házelo ty lomítka :D

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: