/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
<form>, escape-koder og kunsten at fjerne ~
Fra : Bjarne Wichmann Pete~


Dato : 04-07-02 22:26

Hej

Jeg sidder med en stump kode, hvor man indtaster en teks i fx. i en
<textarea>. Benytter man karaktererne som ", ' o.lign bliver de retuneret
som hhv. \" og \' *og* vist som \", \' etc. når jeg vil vise teksten i html
igen.

Hvad er fidusen i at disse karakterer bliver retuneret som "escaped"?

Næste problem er så at få konverteret disse escaped koder til html (&quot;
osv.). Jeg har ikke kunnet finde en funktion i PHP der kan gøre det for
mig, så jeg har lavet min egen. Problemet er at jeg ikke kan få ændret \"
(men \' går det fint med) og det forstår jeg ikke. Nogle idéer?

Her er så den lille stump kode der burde gøre det:

//Tilladte koder i teksten
$mk_koder[0][0] = "<b>";
$mk_koder[0][1] = "{b}";
$mk_koder[1][0] = "</b>";
$mk_koder[1][1] = "{bb}";
$mk_koder[2][0] = "<i>";
$mk_koder[2][1] = "{i}";
$mk_koder[3][0] = "</i>";
$mk_koder[3][1] = "{ii}";
$mk_koder[4][0] = "&rsquo;";
$mk_koder[4][1] = "\\'";
$mk_koder[5][0] = "&quot;";
$mk_koder[5][1] = "\\\"";


if ( $tekstfelt ) {
$filename = $aar . $maaned . $dag . "-" . date ( "His" );
$max = 5;

//Udskift lovlige html-koder med bogus
$count = 0;
while ($count <= $max ) {
$tekstfelt = str_replace ( $mk_koder[ $count ][ 0 ] ,
$mk_koder[ $count ][ 1 ] , $tekstfelt );
$count++;
}

//Strip teksten for html-koder
$tekstfelt = htmlspecialchars ( $tekstfelt );

//Indsæt lovlige html-koder igen
$count = 0;
while ($count <= $max ) {
$tekstfelt = str_replace ( $mk_koder[ $count ][ 1 ] ,
$mk_koder[ $count ][ 0 ] , $tekstfelt );
$count++;
}

Bjarne

 
 
Bjarne Wichmann Pete~ (04-07-2002)
Kommentar
Fra : Bjarne Wichmann Pete~


Dato : 04-07-02 22:49

.... og 2 sek efter falder man over bug'en... ;) ak ja..

Bjarne

Per Thomsen (05-07-2002)
Kommentar
Fra : Per Thomsen


Dato : 05-07-02 14:06


"Bjarne Wichmann Petersen" <nospam.nospam@mekanix.dk> wrote in message
news:3d24bd2d$0$16814$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Jeg sidder med en stump kode, hvor man indtaster en teks i fx. i en
> <textarea>. Benytter man karaktererne som ", ' o.lign bliver de retuneret
> som hhv. \" og \' *og* vist som \", \' etc. når jeg vil vise teksten i
html
> igen.
>
> Hvad er fidusen i at disse karakterer bliver retuneret som "escaped"?
>
[snip]

Fidusen er vist noget med at hvis man gerne vil sætte værdierne ind i en
database, så er det smart at de allerede er escapede.

Jeg tror nok at de fleste foretrækker selv at escape værdierne, hvis det er
nødvendigt. Det foretrækker jeg i hvertfald selv.

Men uanset hvad, så har du en php.ini som formentlig ligger i
C:\WINNT eller C:\WINDOWS på windows systemer
eller i
/usr/local/lib/php
på *nix systemer (er dog lidt usikker på om det er standard).

I denne er der en setting der hedder "magic_quotes_gpc_runtime"
eller noget i den stil. Og det er nok den der får det til at ske.
Hvis du sætter den til 'off', burde det ikke ske.
Hvis den allerede står til 'off'.. ja... så er det jo nok ikke den der får
det til at ske ;).

Herudover tænker jeg næsten at du kan få noget guf ud af funktionerne:
htmlspecialchars() <http://www.php.net/htmlspecialchars>
htmlentities() <http://www.php.net/htmlentities>

MVH Per Thomsen,
http://www.pert.dk/




Bjarne Wichmann Pete~ (05-07-2002)
Kommentar
Fra : Bjarne Wichmann Pete~


Dato : 05-07-02 14:57

Per Thomsen wrote:

> Men uanset hvad, så har du en php.ini som formentlig ligger i
> C:\WINNT eller C:\WINDOWS på windows systemer
> eller i
> /usr/local/lib/php
> på *nix systemer (er dog lidt usikker på om det er standard).

Mja, siderne skal op og ligge på et webhotel som jeg ikke lige styrer
opsætningen på så det er der ikke så meget at gøre ved. Andet end selv at
tilbagekonverterer! ,)

Men nu ved jeg da hvorfor den gør det! Takker! ,)

> Herudover tænker jeg næsten at du kan få noget guf ud af funktionerne:
> htmlspecialchars() <http://www.php.net/htmlspecialchars>
> htmlentities() <http://www.php.net/htmlentities>

Jojo... de bliver skam brugt flittigt ;)

Bjarne

-Martin- (06-07-2002)
Kommentar
Fra : -Martin-


Dato : 06-07-02 00:40

On Thu, 04 Jul 2002 23:26:21 +0200, Bjarne Wichmann Petersen
<nospam.nospam@mekanix.dk> wrote:

>Hej
>
>Jeg sidder med en stump kode, hvor man indtaster en teks i fx. i en
><textarea>. Benytter man karaktererne som ", ' o.lign bliver de retuneret
>som hhv. \" og \' *og* vist som \", \' etc. når jeg vil vise teksten i html
>igen.

Prøvet med <www.php.net/stripslashes> ?
og til at lave dem <www.php.net/addslashes>

Søg
Reklame
Statistik
Spørgsmål : 177520
Tips : 31968
Nyheder : 719565
Indlæg : 6408659
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste