von raiserle |
hmm
und diese fehlermeldung bekommst du immer, auch wenn du einfach mal was anders
einträgst?
ich seh da nicht wirklich warum der fehler passiert, aber einen logischen fehler 
in zeile 9 prüfst du ob der serialized_string1 ein array sein sollte...
kann er ja nicht sein, weil du oben auf uaaahhh das array zurück gibst.
"test"
was mich auch noch wundert, warum in dem string \"wert\" steht und nicht "wert"
dachte es liegt gerade am forum... machts aber nicht. ich würde dort darauf tippen
vielleicht weis jemand anderes noch ein rat, magic_quotes oder sowas
du kannst ja auch mal im quelltext gucken, was bei dem serialized string steht |
von elster |
Hallo,
Danke!
Sorry, ich überblicke noch nicht so ganz, was im serelized-Fall wichtig
ist.
ein array wird zunächst gleich nach der while-Schleifen-Anweisung
durch if-Kontrolle gefüllt, die y-markiert von nicht-markiert
unterscheiden soll:
1:
2:
3:
4:
5:
6: |
if ($vw['wun'] == 'y') {
$arr_y_alt[] = $vw['ligaid']; $c = ' checked=\'checked\'';
} else {
$arr_n_alt[] = $vw['ligaid']; $c =''; }
|
Anschließend folgt ein "Tabellengenerator" mit checkbox,die checkd darstellt
und diese zugleich in array sammelt (obiges könnt man auch weglassen ?...),
dann Tabelle und Form schließen:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10: |
echo "<tr> ...
<td><input type='Checkbox' name='u_wun[$vw[ligaid]]'$c></td>
</tr>\n"; }
echo "</table> \n";
$serialized_string1 = serialize($arr_n_alt);
echo "<input type='hidden' name='serialized_string1' value='$serialized_string1'>
</form>
|
Beim Abschicken und Wiederaufruf, gerät alles an folgende
beiden Kontrollstrukturen:
1:
2:
3:
4: |
// ------- Selektion chequen + dazu Spez.-query generieren ----------
if (isset($_GET['Sort'])) {
... |
uninteressant, sowie:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17: |
// ------- unserialize ----------
if (isset($_REQUEST['u_wun'])) {
reset($_REQUEST['u_wun']);
echo $serialized_string1." => echo \$serialized_string1<br>";
$uaaaaah = unserialize($serialized_string1);
if (!is_array ($serialized_string1)) {
echo "etwas ging schief, ein leeres Array initialisieren<br>";
// $serialized_string1 = array();
}
echo " <br>----uaaaaah-----<br>";
echo "<br>".$uaaaaah."<br>";
echo " <br>---------<br>";
|
das ergibt o.g. Fehler:
a:3:{i:0;s:1:\"6\";i:1;s:1:\"7\";i:2;s:2:\"11\";} => echo ...
Notice: unserialize() failed at offset 9 of 49 bytes in ...
etwas ging schief, ...
Dabei steht in einem nicht mit <pre> formatierten
Bereich der $GLOBALS
[arr_n_alt] => Array ( [0] => 6 [1] => 7 [2] => 11 )
sonst in verschiedenen Bereichen
[_REQUEST] => Array
[_POST] => Array
[HTTP_POST_VARS] => Array
G L O B A L S: Array
als
[serialized_string1] => a:3:{i:0;s:1:\"6\";i:1;s:1:\"7\";i:2;s:2:\"11\";},
sowie 1:
2:
3:
4:
5:
6:
7:
8:
9: |
[u_wun] => Array
(
[4] => on
[5] => on
[8] => on
[9] => on
[10] => on
) |
... hoffe, das ist jetzt nachvollziehbarer,
Grüße, Jörg |
von raiserle |
grrr..
wenn du den array mal hier posten könntest 
weil das serialize dort irgendwass escaped --> s:1:\"7\" oder auch davor
dann kann man damit mal probieren bzw besser gucken |
von raiserle |
hmmm schwer so zu sagen, ohne den zu übergenenen string zu sehn....
könnte aber an einem " oder \ liegen
sollte zwar normal nicht sein...aber... |
von elster |
Hallo & Danke!
habs erstmal mit seralize probiert,
Daten kommen nach abschicken auch an :
if (isset($_REQUEST['u_wun'])) {
echo $serialized_string1." => echo \$serialized_string1<br>";
$uaaaaah = unserialize($serialized_string1);
...
...
a:3:{i:0;s:1:\"6\";i:1;s:1:\"7\";i:2;s:2:\"11\";}
aber dann ?-|
Notice: unserialize() failed at offset 9 of 49 bytes in ...
das konnte ich noch nicht ergooglen.
Thread davor kuck ich gleich man duch ...
Grüße, J. |
|