webForumDet fria alternativet

Skicka formulärdata OCH array i samma POST?

7 svar · 691 visningar · startad av mappo

mappoMedlem sedan apr. 2001664 inlägg
#1

Först en liten intro till de inblandade:

meny.html - innehåller ett formulär med en knapp som
m.h.a. POST skickar $variabel (som också kommer från
formuläret) till skript.php

skript.php - läser en fil från disken varje gång det körs

Det kan bli en hel del tryck på ovan nämnda knapp så för att spara in på
diskläsningar, tänkte jag göra om meny.html till meny.php vars enda
php-rad är att läsa in filen som $phpArray.

Nu vill jag alltså m.h.a. POST skicka både $variabel och $phpArray
från meny.php (med sitt html-formulär) till skript.php.

Hur göra?
Det fiffigaste vore ju ifall man kunde peta in $phpArray som ett andra
element i $_POST-array:en.

TulorkMedlem sedan aug. 2004903 inlägg
#2
<input type="hidden" name="minarray" value="<?php echo $minarray; ?>" />

Du tar sen emot det på andra sidan med $_POST['minarray']

Något sådant kanske? Är inte helt klar på vad du behöver :) men jag chansar. :birp

mappoMedlem sedan apr. 2001664 inlägg
#3

Du verkar ha fattat precis vad jag menar och jag uppskattar ditt förslag med en
hidden input. Jag hade ingen aning om att man kunde sätta <?php ?> i
value-parametern. Snyggt!, men jag tror inte att det där är helt rätt...

Jag har inte möjlighet att testa ditt förslag förrän ikväll, men det ska väl inte
vara ECHO där? Då skrivs väl variabeln bara till ordet 'Array' eller? Borde det inte
vara PRINT_R eller ARRAY_VALUES (eller båda) istället? Typ. Kanske. Liksom. :r

SPiNMedlem sedan mars 20007 896 inlägg
#4

Lagra arrayen i en sessions-variabel istället;

<?php
session_start();
...
$yourArray = array('value1', 'value2', 'value3');
$_SESSION['arraySession'] = serialize($yourArray);
...
<?php
session_start();
if(isset($_SESSION['arraySession']))
     $yourArray = unserialize($_SESSION['yourArray']);
...
TulorkMedlem sedan aug. 2004903 inlägg
#5

Gör som SPiN säger

mappoMedlem sedan apr. 2001664 inlägg
#6

Nu har jag löst det hela (jag cyklade hem på lunchen och kodade lite :p )

Jag fegade ur på sessioner - det kändes svårt.

meny.php läser in filen till array:en $phpArray och kör sedan implode på den
så att strängen $stringArray skapas. Denna skickas sedan via POST m.h.a.
en hidden input till skript.php som kör explode "tillbaka" till $phpArray.

Klart ;

TroxyMedlem sedan mars 20041 505 inlägg
#7

Hur gör du om strängen till en array? Med eval()?
Isf. är detta en extrem säkerhetsrisk egentligen eftersom det öppnar upp för utomstående att posta PHP-kod som körs direkt på servern.

mappoMedlem sedan apr. 2001664 inlägg
#8

Jag använder inte eval().

Som jag skrev, kör jag implode() på array:en för att få den till sträng
och sedan explode() på nämnda sträng för att återskapa original-array:en.

Det är mycket möjligt att det också utgör en säkerhetsrisk, det vet jag
ingenting om. :r

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