Avatar billede hav0k Nybegynder
26. oktober 2003 - 18:49 Der er 37 kommentarer og
1 løsning

Slå html koder fra i tagwall?

Jeg har lavet en ganske alm. php-gæstebog, men kom lige i tanke om en vigtig ting: Hvordan slår jeg html koder fra? For det er temmelig vigtigt eftersom folk jo kan efterlade grimme scripts, hvilket jeg personligt ikke har lyst til..

//Hav0k
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 18:51 #1
når du udskriver så blot


  print htmlentities($dintekst);
Avatar billede hav0k Nybegynder
26. oktober 2003 - 18:56 #2
men hvad så hvis jeg også samtidig gerne vil have den der nl2br med?
Avatar billede hav0k Nybegynder
26. oktober 2003 - 18:56 #3
er det så bare nl2br(htmlentities($mintekst));  ?
Avatar billede martinbk Nybegynder
26. oktober 2003 - 19:00 #4
du kan jo altid splitte det lidt op
$text = nl2br($mintekst);
$text = htmlentities($mintekst);
print $mintekst;
Avatar billede ohmish Nybegynder
26. oktober 2003 - 19:04 #5
inden du smider i databasen (eller hvad du nu bruger):

$dintekst = mysql_escape_string(htmlspecialchars(stripslashes($dintekst)));
Avatar billede ohmish Nybegynder
26. oktober 2003 - 19:06 #6
hmm.. nej glem det jeg skrev :)
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:08 #7
hmm.. sys ik det går så godt.. nu bliver html koden som er skrevet bare endnu mere rigtig... den skal FULDSTÆNDIGT slås fra.. så man ikke engang kan skrive <h5>blah</h5> og lave noget stor tekst..

se selv på http://cs.gagag.dk under tagwall
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:09 #8
ohmish.. hva mener du..? kan det bruges det der escape_string?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:14 #9
Du kan jo også lige rette fejlen i holybulls indlæg

$text = nl2br($mintekst);
$text = htmlentities($text);
print $text;
Avatar billede martinbk Nybegynder
26. oktober 2003 - 19:15 #10
altid noget her er nogen som er vågne, self. skal det være $text variablen og ikke $mintekst
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:20 #11
erikjacobsen.. det virker heller ikke.. som du kan se kommer der slet ingen tekst nu når jeg skriver det.. (se selv)
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:22 #12
Vis os da din kode ;)
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:25 #13
oki lige et øjeblik så ;)
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:26 #14
if($tag_write){
    $date_array = getdate();
    $date = $date_array["mday"] . "/" . $date_array["mon"] . "-" . $date_array["year"];
    mysql_query("INSERT INTO tagwall (date, header, author, email, text) VALUES ('$date', '$header', '$author', '$email', '$text')") or die(mysql_error());;
}

$offset = (isset($_GET['offset'])) ? $_GET['offset'] : 0; // Hvis ikke $offset er sat, sættes den til 0
$pr_side = 5; // Antal resultater pr. side

$query_tagwall = mysql_query("SELECT id, date, header, author, email, text FROM tagwall ORDER BY id DESC LIMIT $offset,$pr_side") or die(mysql_error());;
while($data = mysql_fetch_row($query_tagwall)){
    echo "<table width=\"98%\" class=\"standard\"><tr><td><b>$data[2]" . "</b></td><td align=\"right\">$data[1]" . "</td></tr>
    <tr><td colspan=\"2\">";       
    $text1 = nl2br($data[5]);
    $text1 = htmlentities($tekst1);
    echo $text1;     
    echo "<br><div align=\"right\"><i>Af <a href=\"mailto:$data[4]" . "\">$data[3]" . "</a></i></div></td></tr></table><br><br>";
}

sådan.. bare ignorer det der $offset og $pr_side - det har jeg styr på :P
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:27 #15
htmlentities($text1);
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:29 #16
og har prøvet at skrive print istedet for echo ved $text1
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:31 #17
ja... nu er det gjort.. men som du nu kan se kommer det der javascript ting der alligevel.. og det var egentlig det jeg gerne ville forhindre
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:33 #18
Hvad mener du? Hvis folk skriver HTML-tags herunder <script...> så bliver
det bare vist. Det er vel fair nok - det var det de skrev. Tænk hvis
eksperten.dk fjernede tags... ;))
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:36 #19
det er da ik smart hvis en fyr skriver <script..>script som sørger for at ens IE browser går amok eller lign..</script..>

det var jo det jeg ville forhindre.. det kan man måske ikke?
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:41 #20
ups.. me bad.. jeg har ik noget imod at der står <script..> osv.. sålænge de ikke virker.. og det er jo det de gør lige nu i hvert fald..med det i har sagt jeg sku gøre.. har du selv set det på: http://cs.gagag.dk ?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:42 #21
Nej, jeg kan ikke se noget på din tagwall i min browser - jeg gættede bare ;)
Avatar billede hav0k Nybegynder
26. oktober 2003 - 19:46 #22
Well.. hva gør jeg så??
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 19:59 #23
Gør hvad? Hvorfor?
Avatar billede hav0k Nybegynder
26. oktober 2003 - 20:19 #24
eh.... der sker jo stadig ik det med at html koderne bare bliver vist som rene html koder.. de bliver brugt som en del af kildekoden..
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 20:23 #25
jeg forstår ikke hvad du mener ;(
Avatar billede hav0k Nybegynder
26. oktober 2003 - 20:26 #26
tror vi begge misforstår hinanden.. har du lige prøvet at være inde på tagwallen på http://cs.gagag.dk ?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 20:30 #27
Jeg kan ikke se den i min browser
Avatar billede hav0k Nybegynder
26. oktober 2003 - 20:30 #28
Det fjerde nyeste indlæg.. er vi begge enige om at der er noget kode som der bliver vist outputtet af? Det er jo det jeg ik vil have..
Avatar billede hav0k Nybegynder
26. oktober 2003 - 20:31 #29
ah.. har du ik IE??? hmmm men som sagt så kig på det jeg skrev herover
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 20:35 #30
Jeg forstår ikke hvad du skriver, desværre.
Det er desværre helt urimeligt at forlange at besøge en ukendt side
med en så usikker browser som IE, beklager.
Avatar billede hav0k Nybegynder
26. oktober 2003 - 20:42 #31
okaj.. går ik selv så meget op i den slags..

Men wtf.. tror bare jeg lukker spørgsmålet så...
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 20:44 #32
Du bestemmer ;)

Hvis det er fordi, der står slemme ting i de andre felter $data[3] og
$data[4], skal de vel bare have samme tur.
Avatar billede hav0k Nybegynder
26. oktober 2003 - 20:48 #33
$query_tagwall = mysql_query("SELECT id, date, header, author, email, text FROM tagwall ORDER BY id DESC LIMIT $offset,$pr_side") or die(mysql_error());;
while($data = mysql_fetch_row($query_tagwall)){
    echo "<table width=\"98%\" class=\"standard\"><tr><td><b>$data[2]" . "</b></td><td align=\"right\">$data[1]" . "</td></tr>
    <tr><td colspan=\"2\">";       
    $text1 = nl2br($data[5]);
    htmlentities($tekst1);
    echo $text1;     
    echo "<br><div align=\"right\"><i>Af <a href=\"mailto:$data[4]" . "\">$data[3]" . "</a></i></div></td></tr></table><br><br>";
}

Sådan ser det ud nu.. bare lige så du ku vide det.. det burde da virke right? Hvis jeg har lavet en fejl i det så sig til, så laver jeg lige et nyt emne og giver dig nogle point ;)
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 20:54 #34
Du skal rette linien
htmlentities($tekst1);
til
$text1=htmlentities($text1);
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 20:56 #35
Måske er det mig der skal undskylde - mit indlæg kl. 19:27:37 var bare
en hurtig måde at sige at der var en stavefejl, åbenlys stavefejl, synes
jeg. Jeg tog ikke hele linien med - synes ikke det var nødvendigt.
Jeg regnede med at du ville se den og rette det der skulle til - du
har da trods alt præsteret en pæn mængde php kode i forvejen.

Nej tak, du skal ikke oprette nye spørgsmål for at give mig point.
Avatar billede hav0k Nybegynder
26. oktober 2003 - 21:02 #36
Nu virker det squ.. få dine point her:  og tak for hjælpen :)

http://www.eksperten.dk/spm/419140
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 21:03 #37
Læs lige hvad jeg skriver.
Avatar billede hav0k Nybegynder
30. oktober 2003 - 15:52 #38
hehe.. jeg oprettede vist den kommentar før du havde skrevet det før.. så nåede vist ik lige at se det :P
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