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&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 |
#3 · Zasláno: 12. 3. 2016, 14:34:09
Jenom dodám kdyby měl někdo stejný problém tak je potřeba se zbavit zpětných lomítek.
|
||
Alphard Profil |
#4 · Zasláno: 12. 3. 2016, 17:24:14
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
|
||
Časová prodleva: 9 let
|
0