Seite 1 von 1
Array Wert des Inputs an Output übergeben und ausgeben
Verfasst: Mi 28. Mär 2007, 11:08
von damian2you
Hallo
Habe im Input ein Array, welches ich gerne im Output verwenden würde.
Leider geht es aber mit einem Inputfeld nicht:
Code: Alles auswählen
echo "<input name=\"CMS_VAR[56]\" value=\"". $meinArray ."\" type=\"hidden\">";
wenn ich nun im Output CMS_VALUE[56] ausgebe, bekomme ich nur "Array"
zurück.
warum wird das Array nicht korrekt übergeben?
Muss ich es per JavaScript ins Inputfeld schreiben und nicht via Variable?
Herzlichen Dank Damian
Verfasst: Mi 28. Mär 2007, 11:16
von Dodger77
Ein <input> übergibt ja nur einen String und kein Array. Probier es doch mal analog zu:
http://www.contenido.org/forum/viewtopi ... highlight=
Verfasst: Mi 28. Mär 2007, 11:27
von damian2you
hmm...bekomme aber immer (wie damals auch) eine fehlermeldung im input bereich:
Code: Alles auswählen
Parse error: syntax error, unexpected '=' in C:\WebRoot\htdocs\contenido\includes\include.tplcfg_edit_form.php(423) : eval()'d code on line 175
mit "=" ist das "=" von
gemeint....
Verfasst: Mi 28. Mär 2007, 11:41
von Dodger77
Irgendwie halte ich auch:
für sinnvoller.
Verfasst: Mi 28. Mär 2007, 11:50
von damian2you
gleicher effekt:
Code: Alles auswählen
Parse error: syntax error, unexpected '=' in C:\WebRoot\htdocs\contenido\includes\include.tplcfg_edit_form.php(423) : eval()'d code on line 162
es scheint als können man so der CMS VARIABLE keinen wert zuweisen....
Verfasst: Mi 28. Mär 2007, 12:31
von Dodger77
Versuch es mal mit:
Code: Alles auswählen
$serializedArray = serialize($newArray);
echo "<input name=\"CMS_VAR[56]\" value=\"". $serializedArray ."\" type=\"hidden\">";
Verfasst: Mi 28. Mär 2007, 13:09
von damian2you
hmm...
also scheint prinzipell zu funktionieren:
Code: Alles auswählen
Quellcode Ausgabe Input:
<input name="C9CMS_VAR[56]" value="a:3:{i:0;s:2:"93";i:1;s:3:"110";i:2;s:3:"137";}" type="hidden">
Jedoch bekomme ich auf der Webseite dies:
bool(false)
Keine ahnung was das bedeutet....
ich habe nun folgende Codes:
Input:
Code: Alles auswählen
$serializedArray = serialize($newArray);
echo "<input name=\"CMS_VAR[56]\" value=\"". $serializedArray ."\" type=\"hidden\">";
Output:
Code: Alles auswählen
$serializedArray = "CMS_VALUE[56]";
$newItem = unserialize($serializedArray);
var_dump($newItem);
Resultate:
Input
Code: Alles auswählen
<input name="C9CMS_VAR[56]" value="a:3:{i:0;s:2:"93";i:1;s:3:"110";i:2;s:3:"137";}" type="hidden">
Output
Nur wie bekomme ich nun die werte des arrays (93, 110, 137) im Output?
danke vielmals für dein support!!
Verfasst: Mi 28. Mär 2007, 13:26
von emergence
input bereich: anstelle von
verwende mal
meiner meinung nach
liefert dann false wenn der wert schrott ist...
das addslashes im input bereich sollte das umgehen...
Verfasst: Mi 28. Mär 2007, 13:32
von damian2you
leider negativ...gleiches resultat...habe aber, so glaube ich, den fehler gefunden.
Wenn ich im Output nur den CMS_VALUE[56] Wert ausgebe, also ohne ihn umzuwandeln, bekomme ich nur die hälfte des Strings:
IST:
a:3:{i:0;s:2:
SOLL:
a:3:{i:0;s:2:"93";i:1;s:3:"110";i:2;s:3:"137";}
Anscheinend gibt es ein Problem mit den Anführungszeichen...wie kann ich das umgehen? Ideen?
thx
Verfasst: Mi 28. Mär 2007, 13:34
von emergence
damian2you hat geschrieben:leider negativ...gleiches resultat...
damian2you hat geschrieben:Anscheinend gibt es ein Problem mit den Anführungszeichen...wie kann ich das umgehen? Ideen?
du must schon in die konfiguration gehen und einmal speichern...
sonst wirkt sich das mit addslashes nicht aus... behebt eigentlich genau den sachverhalt...
falls das mit dem speichern auch nicht geht -> anstelle von addslashes htmlspecialchars verwenden...
Verfasst: Mi 28. Mär 2007, 14:01
von damian2you
bebkomme bei beiden auf der webseite dies:
Parse error: syntax error, unexpected T_LNUMBER in C:\WebRoot\htdocs\front_content.php(792) : eval()'d code on line 1433
Verfasst: Mi 28. Mär 2007, 14:07
von stese
versuche statt dem addslashes mal ein urlencode / urldecode - wenn das nicht klappt evtl. mal base64_encode/_decode
das funktioniert vll. besser
Verfasst: Mi 28. Mär 2007, 14:11
von damian2you
hallo
ich glaube nicht dass es an diesen funktionen liegt.
weil wenn ich ins Inputfeld meine Werte hardcodiert reinschreibe und die Hochkommas beachte also so
Code: Alles auswählen
echo "<input name=\"CMS_VAR[56]\" value=\"a:3:{i:0;s:2:\"93\";i:1;s:3:\"110\";i:2;s:3:\"137\";}\" type=\"hidden\">";
dann bekomme ich auf der Webseite trotzdem nur
warum schneidet es mir bei der ausgabe den grossen teil ab?
ist eine variable auf eine anzahl von zeichen beschränkt?
Verfasst: Mi 28. Mär 2007, 14:17
von damian2you
@stese: Sorry, hats recht gehabt...so gehts:
Input:
Code: Alles auswählen
$serializedArray = urlencode(serialize($newArray));
echo "<input name=\"CMS_VAR[56]\" value=\"". $serializedArray ."\" type=\"hidden\">";
Output:
Code: Alles auswählen
$serializedArray = "CMS_VALUE[56]";
$serialized_object = urldecode($serializedArray);
$newItem = unserialize($serialized_object);
print_r ($newItem);
@all: Vielen Dank für eure Hilfe, ohne euch hätte ich das nie und nimmer geschaft....und meinen Horizont massiv erweitert (-; Thx und Gruss Damian
Verfasst: Mi 28. Mär 2007, 14:18
von stese
das hat was mit den " zu tun - also auch das adslashes mag er nicht. sprich probiere mal bitte urlencode
die configs werden in der tabelle !PREFIX!_container_conf gesetzt - schau dir die mal an - das schaut komplett so aus, dass bei mehereren CMS_VARS diese wie eine url verknüpft werden:
50=1&51=2&52=0&
und später im oputput wieder getrennt.
die tabellenspalte ist vom typ text - sollte also genügend input verkraften