---
title: "' och \" i formulärsfält"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/175569-och-i-formulärsfält"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "MickeA.com"
published: "2008-11-28T15:47:56.000Z"
updated: "2008-12-22T14:14:53.000Z"
replies: 13
views: 750
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/175569-och-i-formulärsfält"
---

# ' och " i formulärsfält

## #1 — MickeA.com, 2008-11-28T15:47Z

Hej,

Jobbar på ett översättningssystem där man ska översätta massa strängar.
Jag har gjort så att x antal \<input type="text"\> skrivs ut, där man sedan kan översätta resp. sträng till olika språk.

Nu har jag dykt på lite problem...
Såhär ser min kod ut

```php
echo "<input type=\"text\" name=\"string_" . $res['item_id'] . "\" value=\"" . $value_text . "\" /></p>\n";
```

$value_text kan t.ex. innehålla:

```
Couldn't find any user with the specified nickname
Language <span style="color: #ff0000;">*</span>
```

I nuläget funkar den första strängen ovan. När den sistnämnde skrivs ut, blir resultatet såklart:

```
Language <span style=
```

Finns det någon bra lösning för att kunna visa både ' och "?
Har testat med bl.a. *htmlentities()* men det konverterar övrig htmlkod.

Permalänk: https://www.webforum.nu/p/175569

## #2 — Troxy, 2008-11-30T22:59Z

Använd [htmlspecialchars](http://se2.php.net/manual/en/function.htmlspecialchars.php) med ENT_QUOTES.

Permalänk: https://www.webforum.nu/p/2157894

## #3 — MickeA.com, 2008-11-30T23:16Z

> **Troxy skrev:**
>
> Använd [htmlspecialchars](http://se2.php.net/manual/en/function.htmlspecialchars.php) med ENT_QUOTES.

Jag var inne på det från början, problemet är att \< och \> blir &lt; resp. &gt; Tanken med det här systemet är att det ska vara lättarbetat och våra översättare har inte någon vana av HTML, därför vore det bra om det på något sätt gick att lösa utan att konvertera om tecken.

Möjligen om det går att konvertera dom i källkoden, men visa dom "normalt".

Jag har testat att köra med \<textarea\> och det funkar ju, problemet är att man kan skriva på flera rader då och det är inte heller bra.

Fler förslag?

Permalänk: https://www.webforum.nu/p/2157896

## #4 — Troxy, 2008-12-01T09:26Z

Jag förstår inte. Vill du inte omvandla HTML-koden för att visa den i ett input-fält?  :q 
Du kan ju inte ha taggar inuti ett value-attribut, så alla specialtecken måste omvandlas till entities.
Det är precis det som htmlspecialchars() gör.

Permalänk: https://www.webforum.nu/p/2157929

## #5 — MickeA.com, 2008-12-01T10:20Z

Det jag var ute efter var att kunna visa ' och " och samtidigt slippa konvertera \<, \> osv. i ett input fält, men det verkar ju inte som om det går.

Permalänk: https://www.webforum.nu/p/2157938

## #6 — The_Hulk, 2008-12-01T11:35Z

Titta på <http://se.php.net/manual/en/function.get-magic-quotes-gpc.php> och <http://se.php.net/manual/en/function.addslashes.php>

Permalänk: https://www.webforum.nu/p/2157946

## #7 — MickeA.com, 2008-12-01T13:03Z

Om jag använder dom där, blir det inte så att "\\" skrivs ut framför " och ' i textfälten?

Permalänk: https://www.webforum.nu/p/2157957

## #8 — Troxy, 2008-12-01T19:28Z

Slashes har inget med detta att göra...
Du måste nog ersätta \< och \> (plus några andra specialtecken) med sina respektive entities, annars blir det knasig markup.

```
<input type="text" name="string_1" value="Language &lt;span style=&quot;color: #ff0000;&quot;&gt;*&lt;/span&gt;" />
```

Permalänk: https://www.webforum.nu/p/2158037

## #9 — MickeA.com, 2008-12-01T19:37Z

Jo, har sett att det blir lite knasigt.
Bl.a. skrivs *&nbsp;* ut som *&amp;nbsp;*.

Ska kolla mer på det där imorrn, återkommer.

Permalänk: https://www.webforum.nu/p/2158041

## #10 — MickeA.com, 2008-12-22T10:41Z

Nu måste jag reda ut ett par saker...
När alla strängar skrivs ut i inputfälten har jag hittills kört *htmlspecialchars()*.

Det har funkat jättebra.
Då skrivs stängarna ut ungefär såhär:

```
&lt;strong&gt;Open an account&lt;/strong&gt;&lt;br /&gt;Easy registration!
```

Så långt är det rätt.
Nu är problemet att om jag matar in en ny sträng, som t.ex. innehåller 

```
<br />
```

...då blir problemet att det tidigare *&lt;* konverteras om till *&amp;lt;*

Så, hur ska datan sparas i databasen? Som "ren" kod eller som dess entity?

Tack,

Permalänk: https://www.webforum.nu/p/2160372

## #11 — Troxy, 2008-12-22T11:32Z

> **MickeA.com skrev:**
>
> Så, hur ska datan sparas i databasen? Som "ren" kod eller som dess entity?

Ren kod!  :) 
Omvandla till entities vid behov, t.ex. utskrift i value-attribut.
När webbläsaren postar formuläret så omvandlas entities tillbaka till sina respektive tecken.

Permalänk: https://www.webforum.nu/p/2160376

## #12 — MickeA.com, 2008-12-22T12:17Z

Okej, då är det bara att göra om lite då...
En sak till, om jag nu sparar ren kod i databasen och sen skriver jag ut det här i ett formulärsfält:

```
&lt;strong&gt;Open an account&lt;/strong&gt;&lt;br /&gt;Easy registration!
```

När jag sedan postar formuläret, ska jag köra html_entites_decode eller något sånt för att göra om &lt; till \<, eller sker det av sig själv?

Permalänk: https://www.webforum.nu/p/2160379

## #13 — Troxy, 2008-12-22T13:39Z

> **MickeA.com skrev:**
>
> När jag sedan postar formuläret, ska jag köra html_entites_decode eller något sånt för att göra om &lt; till \<, eller sker det av sig själv?

Webbläsaren fixar detta, du behöver inte göra något.

> **Troxy skrev:**
>
> När webbläsaren postar formuläret så omvandlas entities tillbaka till sina respektive tecken.

```php
<form method="post" action="post.php">
<input type="text" value="&lt;br&gt;" name="test">
<button type="submit">Post</button>
</form>

$test = $_POST['test']; //värdet på mottagarsidan blir: <br>
```

Permalänk: https://www.webforum.nu/p/2160382

## #14 — MickeA.com, 2008-12-22T14:14Z

Det blev jättebra det här, tack!

Permalänk: https://www.webforum.nu/p/2160388

---

Tråden på webben: https://www.webforum.nu/amne/php/175569-och-i-formulärsfält
