Link wird nicht als Link ausgegeben

xNeOx

Mitglied
Ich bin dabei, mir ein eigenes News-System mit PHP und mySQL zu schreiben.

Dabei habe ich folgendes Problem: Wenn ich im Textfeld <a href="____.htm">Link</a> angebe, wird das genau so auch wieder ausgegeben. Ich möchte aber, dass es ein Link zum draufklicken ist, nicht der Quellcode.

Kann mir jemand helfen?

So werden die News ind die DB eingefügt:

PHP:
$titel = $_REQUEST["titel"];
$text = $_REQUEST["text"];
.
.
.
#$titel = strip_tags($titel);
$titel = htmlentities($titel);
$titel = stripslashes($titel);

#$text = strip_tags($text);
$text = htmlentities($text);
$text = stripslashes($text);
$text = nl2br($text);



$eintrag = "INSERT INTO news (datum, titel, text) VALUES ('$datum', '$titel', '$text')";
$eintragen = mysql_query($eintrag);

und so wieder ausgegeben:
PHP:
.
.
.
$abfrage = "SELECT * FROM news ORDER BY id desc";
$abfragen = mysql_query($abfrage);

while($row = mysql_fetch_array($abfragen))
	{
	$datum = $row["datum"];
	$titel = $row["titel"];
	$text = $row["text"];
	echo "<table align='center' width='100%' border='0' cellspacing='0' cellpadding='2' style='border:solid 1px black'>\n";
	echo "<tr>\n<td width='100%' bgcolor='#3366cc' style='border-bottom:solid 1px black' height='10' class='weiß'><span class='kleiner'>$titel</span></td></tr>\n";
	echo "<tr>\n<td width='100%' bgcolor='#eeeeee'><span class='kleiner'>$text</span></td></tr>\n";
	echo "<tr>\n<td width='100%' bgcolor='#3366cc' style='border-top:solid 1px black' height='10' class='weiß'><span class='kleiner'>$datum</span></td></tr>\n";
	echo "</table><br><br>\n\n";
	}
.
.
.
 
Ich kann zwar nicht überblicken ob das für dich relevant ist, aber du musst " die du via echo ausgibst also z.B. die bei href=" mit einem vorgestellten \ escapen.
PHP:
echo "<a href="link.html">klick</a>"; //FALSCH

echo "<a href=\"link.html\">klick</a>"; //RICHTIG

Eventuell hilft dir das ja weiter.
 
ich glaube eher, dass das dadurch kommt:
PHP:
$titel = htmlentities($titel); 
...
$text = htmlentities($text);
Hierdurch wandelst du z.B. alle < in &lt; und alle > in &gt; um und demnach machst au auch alle HTML-Tags quasi "unbrauchbar".

Du solltest dich, falls du zwar kein HTML zulassen willst (was aus sicherheitstechnischen und auch designtechnischen Gründen zu empfehlen ist), aber trotzdem Links haben möchtest, mit BBCode oder ähnlichem arrangieren. Das heißt du solltest ähnliche Tags wie hier im Forum einführen, z.B. [*URL]http://www.seite.de[*/URL] (ohne die * ), damit das dann in Links umgewandelt wird.
Im Forum hier müsste es schon einige Beiträge geben, die sich damit befassen, einfach mal suchen.
 
Zurück