Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: HTML w newsach
Forum PHP.pl > Forum > Gotowe rozwiązania
Jankez
Mam system newsów, który nie kozysta z bazy danych ale z pliku tekstowego
problem jest taki że do newsów nie można wstawiać htmla (np linka).
Tzn da się, ale nie działa. Wyświetla się tylko kod

Czy da się to jakoś zrobić?
Bakus
Cytat
wyświetla się tylko kod

Czego HTMLa? jeżeli w źródle strony zobaczysz, że nie ma w śród wyświetlonego kodu znaków < > " i podobnych, to znaczy, że skrypt to blokuje...

Jeżeli tak nie jest, to pokaż kawałek kodu, to się pomyśli...
Jankez
tak w źródle tagi zamienia na &lt; i &gt;

wklejam cały kod z pliku do wyświetlania newsów:

[php:1:9a84c693f7]<?php
if(!$wid)
{
$file=fopen("newsdata/list", "r");
flock($file, 1);

fgets($file, 100);

while(!feof($file))
{
$tytul=chop(fgets($file, 10000));
$data=chop(fgets($file, 10000));
$id=chop(fgets($file, 10000));

if($tytul)
{
echo("
<BR><center>
<table border=0 cellpadding=0 cellspacing=0 style=border-collapse:collapse bordercolor=111111 width=97% height=36>
<tr>
<td width=75% bgcolor=5A5A5A style=border-left-style: solid; border-left-width: 1; border-right-style: solid; border-right-width: 0; border-top-style: solid; border-top-width: 1; height=19>
<b>$tytul</b></td>
<td width=25% bgcolor=5A5A5A style=border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 1; border-top-style: solid; border-top-width: 1; height=19>
<p align=right><b>$data</b>&nbsp;</td>
</tr>
<tr>
<td width=50% style=border-left-style: solid; border-left-width: 1; border-right-style: solid; border-right-width: 1; border-bottom-style: solid; border-bottom-width: 1; height=17 colspan=2>");
include("newsdata/data/k$id");
echo("
<DIV ALIGN=RIGHT><A HREF=wyswietl.php3?wid=$id>Więcej</A></td>
</tr>
</table>

");
}
}

flock($file, 3);
fclose($file);
}
else
{
$file=fopen("newsdata/list", "r");
flock($file, 1);

fgets($file, 100);

while(!feof($file))
{
$tytul=chop(fgets($file, 10000));
$data=chop(fgets($file, 10000));
$id=chop(fgets($file, 10000));

if($id==$wid)
{
echo("
<BR><center>
<table border=0 cellpadding=0 cellspacing=0 style=border-collapse:collapse bordercolor=111111 width=97% height=36>
<tr>
<td width=25% bgcolor=5A5A5A style=border-left-style: solid; border-left-width: 1; border-right-style: solid; border-right-width: 0; border-top-style: solid; border-top-width: 1; height=19>
<b>$tytul</b></td>
<td width=25% bgcolor=5A5A5A style=border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 1; border-top-style: solid; border-top-width: 1; height=19>
<p align=right><b>$data</b>&nbsp;</td>
</tr>
<tr>
<td width=50% style=border-left-style: solid; border-left-width: 1; border-right-style: solid; border-right-width: 1; border-bottom-style: solid; border-bottom-width: 1; height=17 colspan=2>");
include("newsdata/data/k$wid");
echo("<br>");
include("newsdata/data/d$wid");
echo("
<DIV ALIGN=RIGHT><A HREF=wyswietl.php3>Powrót</A></td>
</tr>
</table>

");
}
}
?>

<?
}
?>
?>[/php:1:9a84c693f7]
Bakus
[php:1:2cd8ffecb5]<?php
include("newsdata/data/k$wid");
include("newsdata/data/d$wid");
?>[/php:1:2cd8ffecb5]
Te dwie linijki wstawiają treść wiadomości...

Nic przy wyświetlaniu ich nie zmienia, więc skrypt, którym dodajesz newsy zmienia treść...
Jankez
mozesz laikowi wytłumaczyć co mam konkretnie zmienić? smile.gif
nie jestem asem w tych sprawach :oops:
Bakus
Cytat
skrypt, którym dodajesz newsy zmienia treść

Nie jestem jasnowidzem... pokaż kod, to Ci powiem...

Wiemy już, że to nie przy wyświetlaniu, więc jedyne co pozostaje, to to, że dane są zmieniane przy dodawaniu.

Poszukaj w skrypcie który dodaje newsy frazy [manual:e4c0c0efcd]htmlspecialchars[/manual:e4c0c0efcd] i ją usuń (nie zapomnij o nawiasach!)
Jeżeli takiej niema lub nie umiesz tego zrobić, wrzuć kod...
Jankez
mam w pliku dodającym newsa
[php:1:298df5447a]<?php
$TYTUL=htmlspecialchars(stripslashes($TYTUL));
$TRESCK=htmlspecialchars(stripslashes($TRESCK));
$TRESCD=htmlspecialchars(stripslashes($TRESCD));
?>[/php:1:298df5447a]
skasowac wszystko?
Bakus
tak usuń te 3 linijki... powinno działać jak chciałeś...
Jankez
ok działa, ale...
niestety linki nie działają sad.gif
jakoś ten skrypt zamienia <a href="http://www.cośtam.com">
na <a href="http://mojadomena.com""http://www.cośtam.com"">
a przynajmniej tak to wygląda
Bakus
Spróbuj wpisać samo http://www.strona.pl/ bez HTMLa
Jankez
niestety
wtedy linki nie sa aktywne angrysmiley.gif
Bakus
Jakiś dziwny ten system newsów...

Postaraj się odszukać wiersze w których występują zmienne $TRESCK i $TRESCD.
Wklej je na forum - odszuka się, gdzie leży problem...
Jankez
[php:1:c847541bf1]<?php
}
function potwierdz()
{
global $TYTUL, $TRESCK, $TRESCD;
form("DODAJ");
?>
<INPUT TYPE=HIDDEN NAME=TYTUL VALUE="<? echo($TYTUL); ?>">
<INPUT TYPE=HIDDEN NAME=TRESCK VALUE="<? echo($TRESCK); ?>">
<INPUT TYPE=HIDDEN NAME=TRESCD VALUE="<? echo($TRESCD); ?>">
[/php:1:c847541bf1]
i
[php:1:c847541bf1]<?php
}
function dodaj()
{
global $TYTUL, $TRESCK, $TRESCD;

$linie=file("newsdata/list");

$linie[0]=chop($linie[0]);

$file=fopen("newsdata/data/k".$linie[0], "w");
flock($file, 2);
fputs($file, $TRESCK);
flock($file, 3);
fclose($file);

$file=fopen("newsdata/data/d".$linie[0], "w");
flock($file, 2);
fputs($file, $TRESCD);
flock($file, 3);
fclose($file);

$file=fopen("newsdata/list", "w");
flock($file, 2);
fputs($file, ($linie[0]+1)."n$TYTULn".date("d.m.Y")."n".$linie[0]."n");

for($i=1;$i<count($linie);$i++)
fputs($file, $linie[$i]);

flock($file, 3);
fclose($file);
?>[/php:1:c847541bf1]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.