Avatar billede pissed_squirrel Nybegynder
22. marts 2004 - 20:51 Der er 14 kommentarer og
1 løsning

gem html i hidden input?

Hvordan er det muligt at smide alt det her ned i en input som er gemt uden at den skriver det til skærmen:

--
<b>Bold</b>
<font face='verdana' size='1' color='#FF0000'>Should be RED and Verdana</font>
<a href='http://www.google.dk'>Link</a>
--

Den fucker den op og bruger at udskrive det selv om det ikke skal og da det jo skal bruges som HTML kan jeg ikke strippe det

Nogle der kan hjælpe??
Avatar billede pissed_squirrel Nybegynder
22. marts 2004 - 20:53 #1
Der skulle selvfølgelig stå "prøver at udskrive" og ikke "bruger" ;)
Avatar billede technodance.dk Nybegynder
22. marts 2004 - 21:23 #2
havd mener du??
Avatar billede skovenborg Nybegynder
22. marts 2004 - 21:40 #3
mener du:
<input type="hidden" name="htmlkode" value="<b>Bold</b>
<font face='verdana' size='1' color='#FF0000'>Should be RED and Verdana</font>
<a href='http://www.google.dk'>Link</a>" />

Du kan så få den frem igen når du poster med:
$_POST['htmlkode']; præcis ligesom du ellers gør det.
Avatar billede Slettet bruger
22. marts 2004 - 21:41 #4
Prøv at køre det hele gennem htmlspecialchars() således:

$tekst="<b>Bold</b>
<font face='verdana' size='1' color='#FF0000'>Should be RED and Verdana</font>
<a href='http://www.google.dk'>Link</a>";

echo "<input type='hidden' name='skjulttekst' value='" . htmlspecialchars($tekst) . "'>";
Avatar billede pissed_squirrel Nybegynder
22. marts 2004 - 23:39 #5
Hvordan genopretter jeg så den kode der kommer ud af det med htmlspecialchars ??
Avatar billede Slettet bruger
22. marts 2004 - 23:50 #6
Har du prøvet, om den ikke automatisk er genoprettet, når den kommer tilbage til dit script? Det tror jeg nemlig den er, men ellers kan du bruge html_entity_decode($_POST['skjulttekst'])
Avatar billede olebole Juniormester
22. marts 2004 - 23:53 #7
<ole>

Hvad skal det bruges til? Skal du tage fat i indholdet på klienten (via JavaScript), kommer du let ud i problemer med, da du i JS skal bruge hexadecimal- eller oktal-værdier for special-tegn.

/mvh
</bole>
Avatar billede pissed_squirrel Nybegynder
23. marts 2004 - 17:37 #8
Crap, jeg kan ikke bruge html_entity_decode da jeg bruger PHP 4.1.2 og der hvor jeg har hosting bruger PHP 4.2.2

Skal lige have fat i deres support
Avatar billede Slettet bruger
23. marts 2004 - 20:35 #9
Ja, den er først med fra version 4.3, men det kan løses:

// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities($string)
{
  $trans_tbl = get_html_translation_table(HTML_ENTITIES);
  $trans_tbl = array_flip($trans_tbl);
  return strtr($string, $trans_tbl);
}

Koden er fra http://dk.php.net/manual/en/function.html-entity-decode.php
Avatar billede pissed_squirrel Nybegynder
23. marts 2004 - 22:23 #10
Det virker jo fornemt med den sidste funktion du har skrevet

Pointene er dine
Avatar billede pissed_squirrel Nybegynder
23. marts 2004 - 22:39 #11
Og dog, det virker fint hvis jeg ikke skal bruge det sammen med en form

her er min kode som det ikke virker med, du kan jo selv tjekke det der kommer ud af det

#Her starter koden

<?php

$med = "<b>Bold</b><BR><font face='verdana' size='1' color='#FF0000'>Should be RED and Verdana</font><BR><a href='http://www.google.dk'>Link</a>";

if($send == ""){

echo "<form method='POST' action='html.php'>";

echo "<input type='hidden' name='tekst' value='".htmlspecialchars($med)."'>";
   
echo "<input type='hidden' name='send' value='Sendit'>";
   
echo "<input style='BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 10px; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; FONT-FAMILY: Verdana;' type='submit' value='Select' name='B1'>&nbsp;";
echo "<input style='BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 10px; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; FONT-FAMILY: Verdana;' type='button' value='Back' onclick='java script:history.back()' name='B2'></p>";

echo "</form>";   

}else{

    function unhtmlentities($string)
    {
          $trans_tbl = get_html_translation_table(HTML_ENTITIES);
          $trans_tbl = array_flip($trans_tbl);
          return strtr($string, $trans_tbl);
    }
   
    $decode_html = unhtmlentities($tekst);

echo $med."<BR>-<BR>".$tekst."<BR>-<BR>".$decode_html;

}

?>

#Slut på koden
Avatar billede pissed_squirrel Nybegynder
23. marts 2004 - 22:52 #12
Hvis jeg ændre koden til dette, så virker den til dels, dog er der ikke rød farve hvor der skal være det og den ændre heller ikke fonten:

#Her starter koden

<?php

$med = "<b>Bold</b><BR><font face=\"verdana\" size=\"1\" color=\"#FF0000\">Should be RED and Verdana</font><BR><a href=\"http://www.google.dk\">Link</a>";

if($send == ""){

echo "<form method='POST' action='html.php'>";

echo "<input type='hidden' name='tekst' value=\"".htmlspecialchars($med)."\">";
   
echo "<input type='hidden' name='send' value='Sendit'>";
   
echo "<input style='BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 10px; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; FONT-FAMILY: Verdana;' type='submit' value='Select' name='B1'>&nbsp;";
echo "<input style='BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 10px; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; FONT-FAMILY: Verdana;' type='button' value='Back' onclick='java script:history.back()' name='B2'></p>";

echo "</form>";   

}else{

    function unhtmlentities($string)
    {
          $trans_tbl = get_html_translation_table(HTML_ENTITIES);
          $trans_tbl = array_flip($trans_tbl);
          return strtr($string, $trans_tbl);
    }
   
    $decode_html = unhtmlentities($tekst);

echo $med."<BR>-<BR>".$tekst."<BR>-<BR>".$decode_html;

}

?>

#her slutter koden
Avatar billede pissed_squirrel Nybegynder
23. marts 2004 - 22:53 #13
Og linket virker heller ikke helt som det skal
Avatar billede Slettet bruger
24. marts 2004 - 11:12 #14
Din PHP kører automatisk addslashes på input fra brugere.

Til gengæld ser det ud til at min første antagelse 22/03-2004 23:50:30 var korrekt: Koden er genoprettet, når du får den tilbage fra formularen, så du behøver ikke at bruge den funktion. Du skal bare bruge stripslashes.

En anden gang ville det være smart, hvis du bruger Vis kilde i din browser, så du kan se det egentlige output fra PHP istedet for en browsers fortolkning af det. Og så skriv resultatet af Vis kilde med her, så vi andre ikke skal kopiere til en editor og gemme på en PHP-server for at kunne se det.
Avatar billede pissed_squirrel Nybegynder
24. marts 2004 - 16:14 #15
Sorry...

Men tak for hjælpen
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