webForumDet fria alternativet

Delikat problem med formulär

PHPur PHP

6 svar · 211 visningar · startad av oelbal

Medlem sedan jan. 20014 973 inlägg
Frågan#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?

Medlem 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. --

Medlem 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...

Medlem 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. --

Medlem 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!

Medlem sedan jan. 20014 973 inlägg
#6

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

Medlem 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]

142 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
138 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)