pragmaMx Support Forum

alles für Webmaster => PhP & mySQL => Thema gestartet von: sidewind am 24 März 2003, 19:50:02

Titel: Arrayvarialbe wird nicht korrekt übergeben
Beitrag von: sidewind am 24 März 2003, 19:50:02
hi leutz,

komm schon wieder nicht weiter trotz buch (shame on me  :) )

hab eine mehrfachauswahlliste

  <select name=\"cat[]\" multiple size=\"$size\">";
....

in einer funktion. ich möchte die variable jetzt zu einer anderen funktion übergeben

header davon

  function blabal ($cat,....)
{
}

 der array lässt sich aber mit der foreach schleife nicht auswerten.
ein   echo count($cat);  ergibt nur 1 , obwohl mehrere einträge in dieser liste selektiert sind.

was mach ich falsch?
ich hoff ihr habt einen tipp für mich
Titel: Re: Arrayvarialbe wird nicht korrekt übergeben
Beitrag von: Andi am 24 März 2003, 20:17:19
Hi sidewind :)

wie wird die Funktion blabal() aufgerufen?
Wird das array dieser Funktion korrekt übergeben?

z.B. so:
$xx = blabal($cat);
bzw. so:
$xx = blabal($_POST["cat"]);

Titel: Re: Arrayvarialbe wird nicht korrekt übergeben
Beitrag von: sidewind am 24 März 2003, 20:39:57
die mehrfachauswhal liste ist in einem formular drinnen

 
<form action="blaba.php" method="post">
<select name="cat[]" multiple size=5>
<option value=1 name="Hallo" >
....
</select>
<input type="hidden" name="op" value="blabla">
<input type="submit" ..>
</form>
usw.

 

die funktion wird dann wie "nuke-üblich" in der blabla modul datei mit

switch ($op)
{

   case "blabla":
   blabal($cat);
   break;
}

aufgerufen

so wie jedes phpnuke  modul eben aufgebaut ist.

register_globals sind on deshalb ist das $POST Array noch nicht notwendig.
das brauch ich ja auch nicht oder, hoffe das sp2 wird das schon vorher erledigen , sonst müssten die ganzen module ja umgeschrieben werden..

ich hoffe es bringt dich meinem problem etwas näher..
danke dir schonmal!
Titel: Re: Arrayvarialbe wird nicht korrekt übergeben
Beitrag von: Andi am 24 März 2003, 20:59:43
Hmm, sieht eigentlich alles ok aus....

Schreib mal vor den Funktionsaufruf folgendes:

foreach($cat as $index=> $value) {
 ${$index} = $value;
 print "$index= ${$index}<br>";
 }
Mal sehen was dann angezeigt wird.

Yep, im VKP-Mxxx II (kein SP2 mehr) wird das auch ohne register_globals funktionieren.
Titel: Re: Arrayvarialbe wird nicht korrekt übergeben
Beitrag von: sidewind am 24 März 2003, 21:17:51
dank dir echt !!
jetzt funzt es

es hat daran gelegen da man lt. buch
folgenden code vor der foreach() schleife  verwenden sollte:

   if ($cat="") {$cat=array();

und das buch (php und mysql von kevin yank) hat 35 € gekostet.
ein witz

dank dir nochmal andi!
übrigens vkp maxi II hört sich gut an. ist wohl ziemlich viel verändert worden (gespannt bin)
Titel: Re: Arrayvarialbe wird nicht korrekt übergeben
Beitrag von: Andi am 24 März 2003, 21:28:49
 :redhead:  Naja, hatte ja damit dann nix zu tun....

Kleiner tip zum coden:
in der mainfile, ganz am Anfang, mit   error_reporting(15); die php-Fehlermeldungen explizit einschalten. Hilft meistens auf die Sprünge, wenns irgendwo klemmt.

Ja, wir haben uns entschlossen eine Version 2 des VKP aus dem SP2 zu machen. Es wurde soviel im Grund-System verändert, dass der Versionssprung gerechtfertigt ist.
ps. Dein Newsletterfix ist auch drin, Danke!