Jankez
13.01.2004, 00:29:50
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
13.01.2004, 00:45:41
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
13.01.2004, 00:58:55
tak w źródle tagi zamienia na < i >
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> </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> </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
13.01.2004, 01:06:17
[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
13.01.2004, 01:12:43
mozesz laikowi wytłumaczyć co mam konkretnie zmienić?
nie jestem asem w tych sprawach :oops:
Bakus
13.01.2004, 01:17:07
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
13.01.2004, 01:22:31
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
13.01.2004, 01:24:28
tak usuń te 3 linijki... powinno działać jak chciałeś...
Jankez
13.01.2004, 01:44:24
ok działa, ale...
niestety linki nie działają
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
13.01.2004, 01:51:20
Spróbuj wpisać samo
http://www.strona.pl/ bez HTMLa
Jankez
13.01.2004, 01:56:48
niestety
wtedy linki nie sa aktywne
Bakus
13.01.2004, 02:01:49
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
13.01.2004, 02:11:06
[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.