webForumDet fria alternativet

Delikat problem med formulär

6 svar · 211 visningar · startad av oelbal

oelbalMedlem sedan jan. 20014 973 inlägg
#1

Låt oss säga att jag har kanske 10 olika formulär på en sida, alla med olika antal variabler att skicka. All data från dessa forumlär skall sedan, oberoende på antal satta varibaler, tas emot av en funktion.

Sedan skall funktionen kolla _ALLA_ satta variabler som skickats, namnen vet vi inte, utan allt som kommer från $HTTP_POST_VARS skall gås igenom med htmlspecialchars().

Hur kan detta se ut?

SPiNMedlem sedan mars 20007 896 inlägg
#2

Det går inte, då måste du ha ett gigantiskt formulär. Endast den data i nuvarande formulär skickas, så det är omöjligt att ta emot från de andra formulären.

Eller så förstod jag dig fel?

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

oelbalMedlem sedan jan. 20014 973 inlägg
#3

Eller så förstod jag dig fel?

Ja ;)

Vad jag söker är en funktion som kan kolla allt som skickas, vare sig det är 4,5 eller 6 variabler. Från vilket formulär som helst på min sida.

Typ bara som en generell funktion som filtrerar bort all skit som elaka användare kan tänkas skicka...

Kanske en vag förklaring, men hinner inte skriva mer nu...

SPiNMedlem sedan mars 20007 896 inlägg
#4

Ah, då gör man så här:

while ( list ( $nyckel, $värde ) = each ( $HTTP_POST_VARS ) ) { // Alternativt $_POST
    // I $nyckel hamnar fält-namnet
    // I $värde hamnar dess värde
    $värde = htmlspecialchars ( $värde );
}

Hur man löser så att man vet från vilket formulär som det skickades ifrån vet jag inte, jag känner på mig att det inte går. Du kan ju alltid lägga in värdet i ett hidden-field i varje formulär.

------------------
SPiN, bjorne.w@telia.com

-- Wise men talk because they have something to say; fools, because they have to say something. --

ChavezMedlem sedan maj 20001 953 inlägg
#5

Jikes :l

Foreach blir renare, enligt mig:

foreach($HTTP_POST_VARS as $nyckel => $värde) { // Alternativt $_POST
    // I $nyckel hamnar fält-namnet
    // I $värde hamnar dess värde
    $värde = htmlspecialchars ( $värde );
}

Dock blir det ju precis samma resultat.

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Sveriges PHP-portal nr 1!

oelbalMedlem sedan jan. 20014 973 inlägg
#6

Tack! Jag var inne på SPIN's lösning, men fick det inte att fungera tillfredställande. :)

oelbalMedlem sedan jan. 20014 973 inlägg
#7

Löste det nu själv, på ett i mitt tycke, ännu bättre sätt, som jag tror funkar...

while ($each_var = each($HTTP_POST_VARS))
{
  $res = htmlspecialchars($each_var[1]);
}

MEN, istället upptäckte jag att htmlspecialchars() inte fungerar som det skall. Enligt manualen skall både ' och " göras om till & #039; respektive & quot;, men jag får istället /' och /". Vad kan detta bero på?

[r] stavfel

[Redigerat av oelbal den 12 jan 2002]

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)