php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Array als Parameter in der URL


 
Op@ U.
16-10-2002, 19:11 
 
Hallöchen!

Ich stehe mal wieder etwas auf dem Schlauch.
Ich möchte ein Array von einem Script in ein anderes Übergeben.
Sehe nur die möglichkeit es per Parameter mit

dateiname.php?array=$array

zumachen, aber das funzt leider nicht.
Gibts noch ne andere Alternative, auf möglichs einfache Weise ein Array zu übergeben?!?

Thx for possible help ...

 
goth
16-10-2002, 20:15 
 
Sicher gibt's 'nen einfacheren Weg aber:


$params="";
foreach ( $array AS $value ) {
$params.=($params==""?"":"&")."array[]=".urlencode($value);
}
$url="dateiname.php".($params==""?"":"?").$params;


sollte funzen ...

 
Op@ U.
16-10-2002, 20:55 
 
Thx für deinen Tip, aber die Möglichkeit kenne ich auch.
Wollte aber nicht ne ganze "Latte" an Variablen über die URL verschicken.

Dachte es gibt vielleicht auch noch ne "elegantere" Lösung?

 
goth
16-10-2002, 21:59 
 
Wenn's auf dem gleichen Server liegt ... 'ne Session ... :dontknow:

 
BlobBanana
16-10-2002, 22:30 
 
kann man da nicht was mit serialize() machen ... weiss aber nicht genau ... :dontknow: :dontknow:

 
TobiaZ
16-10-2002, 23:02 
 
@ BlobBanana:

OT: Hast wohl gefallen an dem serialize() gefunden, kann das sein?

 
BlobBanana
16-10-2002, 23:43 
 
Original geschrieben von TobiaZ
@ BlobBanana:

OT: Hast wohl gefallen an dem serialize() gefunden, kann das sein?

Habs ehrlich gesagt noch nie benutzt ... deswegen schreib ich hier ja auch nicht "ich bin mir sicher das es mit serialize() geht" sondern schaue mir die php-manual an und werfe einen zusaetzlichen Faktor in die Diskussion ein. Ob das nun bei der Loesung des Problems hilft sei mal dahingestellt ;) ;)

http://www.php.net/manual/de/function.serialize.php

und dort die "User Contributed Notes" anschauen ;)

 
TobiaZ
16-10-2002, 23:47 
 
Werds mir mal ansehen, bei gelegenheit. Vielleicht kann man das ja wirklich mal irgendwann gebrauchen :D

 
BlobBanana
17-10-2002, 00:03 
 
So habs nun mal ausprobiert (und endlich mal serialize() benutzt ;)):


serialize.php

<?php


$var=array("a","b","c");
$var=serialize($var);
$var=urlencode($var);

echo "<a href=\"ser2.php?var=$var\">weiter</a>";

?>


ser2.php

<?php

$var= $_GET["var"];
$var=stripslashes($var); //no need to urldecode...rather strip the slashes
$var=unserialize($var);

foreach($var as $elem) {
echo "$elem <br>";
}

?>


Man hat hier jedoch das gleiche wie bei goths loesung ... die url wird ganz schoen lang ...

Wenn man das array ueber POST uebergibt kann man sich das aber ersparen:

serialize.php

<?php

echo "<form action=ser2.php method=post>";

$var=array("a","b","c");
$var=serialize($var);
//$var=urlencode($var);

echo "<input type=hidden name=var value=$var>";
echo "<input type=submit value=\"SEND\">";
echo "</form>";
?>


ser2.php

<?php

$var= $_POST["var"];

$var=unserialize($var);

foreach($var as $elem) {
echo "$elem <br>";
}
?>

 
TobiaZ
17-10-2002, 00:12 
 
Das sieht schon sehr schön aus. Ich glaub das könnte spass machen, wenn mans denn braucht.

Muss man halt abwägen, was schöner ist.
a) ein schäbbiger Quelltext -> Für jeden Link ein ganzes Formular
oder
b) oder eine Unschöne Url -> Ellenlang

 
BlobBanana
17-10-2002, 00:32 
 
Jo ich musste bisher auch noch kein Array "transportieren" ... aber nu weiss ich wenigstens wie es geht ... ;) ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:30 Uhr.