Avatar billede compac Seniormester
07. maj 2006 - 16:38 Der er 12 kommentarer og
1 løsning

Inputsætning skal bibeholdes

Jeg har denne kode:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title> side 1</title>
</head>

<body>

<?php echo "$oplysning";
?>

<form method="POST" action=<?php echo $_SERVER['PHP_SELF']?>> 
  <p><input type="text" name="fast input" size="20" ></p>
  <p><input type="text" name="var input" size="20" value=<?php echo $oplysning ?>></p>
  <p><input type="submit" value="Knap" name="B1"></p>
 
</form>

</body>
</html>

Når jeg trykker på submit slettes felterne, hvilket der  ikke er noget usædvanligt i.
Hvordan bibeholder jeg teksten i det første inputfelt: fast input- selvom der er trykket på submit?
Jeg forventer det er noget php der skal til og jeg har derfor lagt spørgssmålet i denne gruppe.
Avatar billede fire-fox Nybegynder
07. maj 2006 - 16:43 #1
<input type="text" name="fast input" value="NONE" size="20"> måske
Avatar billede nielle Nybegynder
07. maj 2006 - 16:54 #2
<form method="POST" action=<?php echo $_SERVER['PHP_SELF']?>> 
<p><input type="text" name="fast input" size="20" value="<?=$_POST["fast input"]?>"></p>
<p><input type="text" name="var input" size="20" value=<?php echo $oplysning ?>></p>
<p><input type="submit" value="Knap" name="B1"></p>
</form>
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 17:04 #3
Det er nok harmløst, men man skal nu ved udskrift af ukendt tekst i et HTML-dokument bruge (noget i retning af)

<p><input type="text" name="fast input" size="20" value="<?=htmlentities($_POST["fast input"])?>"></p>

Og så skal du kigge lidt på om du også får brug for http://php.net/stripslashes
Avatar billede compac Seniormester
07. maj 2006 - 17:09 #4
I det første tilfælde skriver den blot ordet "none"
Idet andet bliver teksten ikke bibeholdt.
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 17:11 #5
Må vi se hvad du skriver?
Avatar billede compac Seniormester
07. maj 2006 - 17:20 #6
Jeg nåede, at afprøve dit eksempel også Erik - og resultatet af php.net er her:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title> side 1</title>
</head>

<body>

<?php echo "$oplysning";
?>

<form method="POST" action=<?php echo $_SERVER['PHP_SELF']?>>
<input type="text" name="fastinput" size="20" value=<?php echo htmlspecialchars(stripslashes($fastinput)); ?>>
  <p><input type="text" name="var input" size="20" value=<?php echo $oplysning ?>></p>
  <p><input type="submit" value="Knap" name="B1"></p>

</form>

</body>
Avatar billede olebole Juniormester
07. maj 2006 - 17:21 #7
<ole>

- og så er det nok klogt at undlade mellemrum i name-attributter. De er valide, men kan let give problemer, hvis man ikke er stiv i klient-scripting - og der evt. skal valideres på frontend'en  :)

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 17:22 #8
Jeg kan ikke se at du har prøvet det, som jeg eller nielle har skrevet. Prøv det lige, ik' ?
Avatar billede compac Seniormester
07. maj 2006 - 17:31 #9
Jeg ved ikke hvad jeg har overset, men nu virker nielle's eksempel.
Tak for hjælpen.
Læg et svar
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 17:32 #10
Ikke til mig, tak.
Avatar billede nielle Nybegynder
07. maj 2006 - 18:23 #11
Du må nok hellere gøre det på erikjacobsen's måde.

Man bør *aldrig* tage brugerens input og smide direkte ind på sin side. Det bør *altid* valideres imod ondsindet kode på en eller anden måde, og htmlentities() er et minimum i den sammenhæng.
Avatar billede olebole Juniormester
07. maj 2006 - 18:31 #12
nielle >> Nej, men 'htmlentities' og 'stripslashes' er et minimum - og af helt forskellige årsager. Den første kan beskytte mod visse former for X-domain scripting - den anden mod SQL-injection  ;o)
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 20:59 #13
Den anden beskytter også mod at siden ser tumpet ud.
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