Autor | Zpráva | ||
---|---|---|---|
jok1955 Profil |
Zdravím všechny. Mám skript napsaný kdysi pro php 5 a teď tu zápasím s převodem na php 7.0
Warning: Invalid argument supplied for foreach() in je k tomuto kodu foreach($_SESSION["post"] as $key => $val) { if(isset($FormFilterArray[$key]["alias"])): $keyalias = $FormFilterArray[$key]["alias"]; endif; |
||
Keeehi Profil |
#2 · Zasláno: 4. 6. 2018, 19:01:21
jok1955:
To nesouvisí s PHP 5 nebo 7. Kód je správně v obou verzích. Problém prostě je, že v proměnné $_SESSION["post"] nemáš uložené pole. Máš tedy něco špatně v logice aplikace, tento kód je ale správně.
|
||
jok1955 Profil |
#3 · Zasláno: 4. 6. 2018, 20:31:33
To mě také napadlo, ale ten kód na druhém počítači, kde mám php 5.6. normálně funguje !? Já jsem samouk a tak některé postupy neznám a jsem rád když to funguje...není chyba v nastavení té SESSION? POST je přece pole ... takže bych měl SESSION nejprve nějak deklarovat?
|
||
pcmanik Profil |
#4 · Zasláno: 4. 6. 2018, 21:47:52
jok1955:
Keď si dáš var_dump($_SESSION["post"]); čo ti to ukáže?
|
||
jok1955 Profil |
#5 · Zasláno: 4. 6. 2018, 21:53:55
Je to NULL. Takže prázdné!? Jdu hledat ... psal jsem to totiž asi před 4 lety a od té doby se moje zájmy obrátily jinam...díky za pomoc a navedení...
|
||
Keeehi Profil |
#6 · Zasláno: 4. 6. 2018, 22:36:45
jok1955:
„není chyba v nastavení té SESSION? POST je přece pole“ Ano, $_POST je pole. V $_SESSION["post"] může být teoreticky cokoli. Pokud tam chceš mít data z $_POST , musíš si je tam někdy uložit. $_SESSION["post"] = $_POST Což někde v kódu mít budeš, když ti to jinde funguje. Ale bude to v nějaké části, kterou kód na tvém počítači ještě neprošel. Až se tam jednou dostane, začne ti fungovat i tato část.
Jelikož, jak je vidět, se ale ve tvém návrhu může vyskytnout případ, že v $_SESSION["post"] není pole, je správné to v kódu kontrolovat.
if(is_array($_SESSION["post"])) { foreach($_SESSION["post"] as $key => $val) { if(isset($FormFilterArray[$key]["alias"])) { $keyalias = $FormFilterArray[$key]["alias"]; } } } |
||
jok1955 Profil |
#7 · Zasláno: 5. 6. 2018, 11:56:59
Vzhledem k tomu, že script je jen k vygenerování html kodu na lokale, přešel jsem na php 5.6 a funguje to. Nevím a nebudu se tím zabývat. Díky za rady. JoK
|
||
Časová prodleva: 5 let
|
0