Avatar billede nielspt Nybegynder
06. april 2006 - 00:19 Der er 16 kommentarer og
2 løsninger

hente tekst ud af mySQL, hvor noget er et link.

Hej Eksperter..

Jeg har en simpel form som sender en mængde tekst (samt dags dato) til min mySQL database, og som jeg derefter hiver ned på min hjemmeside flere steder.

Er det muligt at sende noget tekst med til databasen, som bliver fortolket som et link, når jeg hiver det ned på min hjemmeside igen? (man kan jo åbenbart ikke bare skrive <a href="link.php">link</a>)

Tak og med venlig hilsen,
Niels
Avatar billede mcardle Nybegynder
07. april 2006 - 00:16 #1
Det er fordi du ikke kan gåseøjne i php uden en \.

<?php

echo "<a href=\"$link\">$link</a><br />";

?>
Avatar billede mcardle Nybegynder
07. april 2006 - 00:17 #2
Eller:

<?php

echo "<a href=\"link.php\">Linknavn</a><br />";

?>
Avatar billede showsource Seniormester
07. april 2006 - 00:18 #3
Hvis du gemmer de "rå" tekster i DB, vil <a href <br /> m.m. fint blive vist ved udtræk.
Hvis du derimod vil afvikle PHP som er gemt i DB, skal du bruge eval()
Avatar billede nielspt Nybegynder
07. april 2006 - 16:08 #4
eval()? hvodan skal det stå så?

Mvh. Niels
Avatar billede nielspt Nybegynder
07. april 2006 - 16:13 #5
og hvis jeg skriver:
<a href=\"www.minside.dk\">her</a><br />

så bliver resultatet:
www.minside.dk"" target="_blank">http://www.minside.dk/"www.minside.dk"    -  og det var jo ikke hensigten..

Nogen der ved hvorfor?
Avatar billede mcardle Nybegynder
07. april 2006 - 18:37 #6
Hvad har du gemt i din DB?
Avatar billede nielspt Nybegynder
07. april 2006 - 19:18 #7
<?

.....

$text = htmlentities($_POST[tekst]);
$time= date("d/m-Y");
if(!empty($text)){
  mysql_query("INSERT INTO news (time, text)VALUES('$time', '$text')") or die(mysql_error());

  echo "Det er nu sat ind i databasen!";
} else {
  echo "Husk at skrive noget..!";
}
 
?>
Avatar billede nielspt Nybegynder
07. april 2006 - 19:18 #8
var det det, du mente?
Avatar billede mcardle Nybegynder
07. april 2006 - 20:35 #9
næsten ;-)...

Hvad er plejer du at skrive i formen? Skriver du hele linket eks:
<a href\"dit_link.php\">Her</a> eller
dit_link.php...?

//mcardle
Avatar billede nielspt Nybegynder
07. april 2006 - 22:21 #10
nårh :-)

Jeg plejer at skrive hele linket, altså
<a href\"dit_link.php\">Her</a>
Avatar billede mcardle Nybegynder
07. april 2006 - 22:32 #11
Det skal du ikke. bare skriv dit_link.php og træk det ud igen med:

<?php

$res = mysql_query("SELECT Link FROM database");
while ($row = mysql_fetch_array($res)){
extract($row);
echo "<a href=\"$link\">Her</a>";
}

?>

Du bruger extract til at lave det til variabler og så kan du sætte dem ind igen med $din_række. Altså, hvis du har en tabel med en række der hedder links, så kan du sætte dit link ind med $links.

//mcardle
Avatar billede showsource Seniormester
08. april 2006 - 01:33 #12
Skriver du
<a href=\"www.minside.dk\">her</a><br />

?????

Så prøv
<a href="www.minside.dk">her</a><br />
Avatar billede nielspt Nybegynder
08. april 2006 - 01:36 #13
showsource: nej nej - jeg skriver det sidste :-) altså <a href="www.minside.dk">her</a><br />


mcardle: Er det ikke lidt svært, da jeg ikke har et felt 'link' i min database.. Jeg har sådan set kun en 'text', hvori jeg lægger alt tekst inkl. links..
Avatar billede showsource Seniormester
08. april 2006 - 01:44 #14
ok, når du poster, vil PHP pr. default escape "farlige" tegn, og defor får du den første ved output (der er vist noget "dobbeltkonfekt" der)

Du kan prøve som en start at bruge

echo stripslashes($row["feltnavn"]);

Og ellers, prøv med "vis kilde" i din browser, så opdager du ofte hvad som er galt!

Og sidst, men ikke mindst, brug mysql_real_escape_string() ved INSERT !!!

http://dk.php.net/manual/da/function.mysql-real-escape-string.php

Kik på eks. 3
Avatar billede mcardle Nybegynder
08. april 2006 - 03:31 #15
Hvis du gør det du siger med kun tekst, så brug showsource's eksempel.

Det var bare hvis du havde nogle links, som du skulle sætte ind hist og her, så er den anden idé fin nok ;-)

når du lægger det op så brug addslashes(); og når du tager det ned igen, så stripslashes();, hvis den ikke gør det som default, som showsource siger.

//mcardle
Avatar billede nielspt Nybegynder
08. april 2006 - 11:43 #16
mcardle. ja jeg kunne egentlig godt finde på at have en 'links' række i mysql. det vil jeg lige se på..

showsource: tak - jeg vil se på det link!

Men ellers mange tak for hjælpen begge to! Kan man dele points? hvis ja - så smid lige et svar begge to :-)

Mvh. Niels
Avatar billede mcardle Nybegynder
08. april 2006 - 13:45 #17
Takker...

//mcardle
Avatar billede showsource Seniormester
08. april 2006 - 19:41 #18
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester