Avatar billede tlunde Nybegynder
28. maj 2003 - 19:04 Der er 15 kommentarer og
1 løsning

Forum problemer.

Hejsa,
Jeg har lavet dette forum: www.thomaslunde.dk/forum/index.php

Men jeg har lidt problemer...Når man skriver et indlæg, og gerne vil have linieskift med, hvordan gør man det?? Lige nu, skriver den bare det hele ud i en køre, selvom man laver linieskift i text feltet.

En anden ting, jeg gerne vil have til at fungere, er hvis man skriver noget php kode ind i text feltet, så viser den det ikke? Hvordan får man det med også?

\ThomasLunde.dk
Avatar billede jakoba Nybegynder
28. maj 2003 - 19:09 #1
den tekst du gemmer bliver udskrevet efter html's regler, dvs mange blankteg eller linieskift bliver blot til eet mellemrum.

du kan evt bruge funktionen nltobr på din tekst før du gemmer den, så bliver linieskift erstattet med <br> som html forstår.
Avatar billede tlunde Nybegynder
28. maj 2003 - 19:16 #2
Er det noget der skal kobles på min SQL sætning, eller hvor skal det gøres?

Jeg fandt også lige ud af, at man heller ikke kan se links som lins. Hvordan får man det rettet?
Avatar billede tlunde Nybegynder
28. maj 2003 - 19:17 #3
lins=links
Avatar billede jakoba Nybegynder
28. maj 2003 - 19:26 #4
fx:
$sql_kommando = "
    INSERT
    INTO tabelnavn
      ( brugeridfeltnavn, kommentarfeltnavn, diversefeltnavne )
    VALUES
      ( $brugerid, '" .nltobr($kommentar) ."', $diversedata )
";

bemærk at sådan et funktionskald ikke lige kan skrives ind i en streng.

? "ikke kan se links som links" ?
Du kommer til at forklare problemet noget bedre hvis vi skal kunne hjælpe.

mvh JakobA
Avatar billede tlunde Nybegynder
28. maj 2003 - 19:32 #5
Det jeg siger er, at hvis jeg i text feltet skriver: www.eksperten.dk så kommer det ikke ud som et klikbart link, men også bare som tekst...
Avatar billede jakoba Nybegynder
28. maj 2003 - 19:35 #6
det kan du gøre med LJWEBS tagster. Den bliver pænt beskrevet her:
http://www.eksperten.dk/spm/162184
Avatar billede tlunde Nybegynder
28. maj 2003 - 19:39 #7
Ang. den nltobr kommando, har jeg lige prøvet et par gange, men uden held.
Men SQL kommando ser sådan ud:
INSERT INTO forum_main (dato, navn, email, kategori, overskrift, tekst, svar) VALUES ('$dato', '$navn', '$email', '$kategori', '$overskrift', '$tekst', '0')") OR DIE (mysql_error());

Men jeg kan ikke få den til at virke, når jeg indsætter den på $tekst pladsen?
Avatar billede tlunde Nybegynder
28. maj 2003 - 19:44 #8
Jeg har prøvet at erstatte '$tekst' med '" .nltobr($tekst) ."', men det vil den ikke rigtigt godtage...er det noget jeg gør forkert?
Avatar billede jakoba Nybegynder
28. maj 2003 - 19:57 #9
det var min fejl. jeg stavede funktionen galt. den hedder nl2br  (ciffer '2' istedet for bogstaverne 'to')
http://dk.php.net/manual/en/function.nl2br.php
Avatar billede tlunde Nybegynder
28. maj 2003 - 20:19 #10
Sådan, nu virker det sgu...takker!

Ved du så hvordan man får kode synlig?

Hvis jeg skriver <? test ?> og gemmer det sammen med noget andet tekst, så bliver det ikke vist når indlægget vises? Det vises bare som tomme mellemrum?

Jeg ville gerne have sådan, at ALT hvad man taster ind, kan ses i indlægget. Kan det lade sig gøre?
Avatar billede tlunde Nybegynder
28. maj 2003 - 20:21 #11
Det samme gælder for html kode. Det kan den heller ikke vise?
Avatar billede jakoba Nybegynder
28. maj 2003 - 21:28 #12
ting du vil have skrevet skal enten stå i filen udenfor php-klammerne

<?php
// phpkode her
?>
tekst der bare skal skrives her
<?php
echo "eller også skal det specifikt udskrives med echo eller print kommandoerne.";
?>

mvh JakobA
Avatar billede schaefner Juniormester
28. maj 2003 - 21:30 #13
Du bruger bare htmlspecialchars() på teksten:
http://www.php.net/htmlspecialchars
Avatar billede tlunde Nybegynder
28. maj 2003 - 22:59 #14
schaefner: Hvordan skal jeg bruge den htmlspecialchars() på min tekst? Skal den også ind i min SQL INSERT eller hvordan?
Avatar billede martinbk Nybegynder
29. maj 2003 - 00:29 #15
tlunde du skal kører htmlspecialchars() funktionen der hvor du hiver din tekst ud
UTESTET:
echo "htmlspecialchars($mintekststreng);";
Avatar billede tlunde Nybegynder
29. maj 2003 - 08:47 #16
Jeg fandt ud at det på en anden måde, og det var ved at indsætte dette stykke kode:
$tekst = stripslashes($tekst);
$tekst = str_replace("\"","&quot;",$tekst);
$tekst = str_replace("<","&lt;",$tekst);
$tekst = str_replace(">","&gt;",$tekst);
$tekst = str_replace("\n","<BR>",$tekst);
$tekst = str_replace("\\","&#92;",$tekst);
$tekst = str_replace("http://","",$tekst);
$tekst = ereg_replace("((w{3}|W{3})+.[a-zA-Z0-9:%_.~#-?&]+)",  "<a href=\"http://\\1\" CLASS=\"tekstlink\" TARGET=\"_blank\">\\1</a>",$tekst);
$tekst = ereg_replace("([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)", "<a href=\"mailto:\\1\" CLASS=\"tekstlink\">\\1</a>",$tekst);
$tekst = str_replace("'","&#39;",$tekst);

Men lidt points får i da for at hjælpe...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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