Autor Zpráva
Anonymní
Profil *
Ahoj,
mám problém s předávání parametrů stránky přes pole SESSION do další stránky. Z nějakého důvodu se mi nepředají = pokud je uložím jako pole, pak je na další stránce prázdné pole; pokud je naskládám jako jednotlivé proměnné, tak se opět nepředají.
Nevím jestli to může být tím, že do SESSION vkládám moc hodnot?
Díky
Retal
Profil
To zjistíš přece jednoduše: předej si jako test jedinou proměnnou. Pokud se ti nepředá, děláš něco špatně.
Anonymní
Profil *
Pokud si předám jen jednu proměnnou, nebo jen několik, předá se v pořádku
24k
Profil *
jde o to jak to do te sessiony ukladas...

[code]
<?php
session_start();

$_SESSION['test']=array("a","b","c");
print_r($_SESSION['test']);
?>
[/code]

Melo by ti vypsat

Array ( [0] => a [1] => b [2] => c )
Anonymní
Profil *
24k Takhle to funguje bez problému. Ovšem když kliknu na odkaz, a načtu novou stránku, obsah $_SESSION["test"] je Array();
pokud si tam uložím např. $_SESSION["test"] = "ahoj"; tak se to předá v pořádku. Proto si s tím nevím rady. Posílám v SESSION více informací, které se všechny předají až na tohle pole
24k
Profil *
ted presne nevim jak to je, ovsem session_start(); mas v kazdem souboru ze? pokud tedy neincludujes stranky pres index.php ...

mozna by to chtelo pridat SID do odkazu.
Leo
Profil
A konkretni kod (podstatna cast) by nebyl? Takhle je to hadani naslepo kde mate chybu. Leo
Anonymní
Profil *
session start spouštím přes direktivu auto_prepend_file v .htaccess, taky používám session.use_trans_sid, takže není nutné je vkládat do odkazů, ale stejně to blbne i když je tam přidám:(


zpracování je zhruba následovně:



if (!empty($_SESSION["test"])) $_POST += $_SESSION["test"];
// zde je $_SESSION["test"] jenom Array()

...

<form method="POST" action="">
nastaveni selectu podle predanych post hodnot
</form>

...
zobrazeni vyhledanych zaznamu
...

zde je funkce, ktera provede vykresleni strankovani vysledku
uvnitr provedu

$_SESSION["test"] = $_POST; // zapamatuji si tak vybrane policka z formu

// print_r($_SESSION["test"]) vypise spravne obsah vsech hodnot

<a href="neco">1</a><a href="neco">2</a>...



Kdyz predam retezec, nebo jen jedno pole, preda se to spravne
Anonymní
Profil *
Pak je zajímavé že mi to nejede na hostingu nikde. Na lokálu to jede pod FF v pořádku, pod IE to dělá tuhle chybu.

Když si vypíšu obsah pole POST a ručně uložím hodnoty do $_SESSION["test"]["x"] = "y"... pak se předají taktéž správně

Chtěl jsem to vyřešit takhle abych se zbavil předávání přes GET, ale nakonec to asi budu muset udělat takto:(
Leo
Profil
Co si myslite, ze udela tohle

$_POST += $_SESSION["test"];

$_POST jsou data urcena ke cteni, ne zapisu, a navic pole, Leo
Anonymní
Profil *
Myslím že to připojí do pole POST pole v SESSION["test"], podle mě je to pole jako každé jiné, takže se do něj zapisovat dá, ostatně mi to vždycky fungovalo... každopádně mi to momentálně nedělá nic, protože SESSION je prázdné:(
Leo
Profil
Treba vam proste nestartuji session, Leo
Anonymní
Profil *
startují, však to tu píšu pořád že to jede, když tam přiřadím cokoliv jiného:)
Leo
Profil
Mozna by neskodilo, kdybyste se podival na zaklady prace s poli, viz muj prispevek o $_POST += .... Leo
krteczek
Profil
a co:

$_SESSION['data']=serialize($_POST);
//a na další stránce jen:
$data=unserialize($_SESSION['data']);

krteczek
Anonymní
Profil *
Kapituluji...nesmyslně se mi ty hodnoty ztrácejí, nepomáhá ani serialize, takže jsem to předělal na předaní přes GET, čemuž jsem se chtěl vyhnout...ale aspon to jede.

Díky za pomoc při bádání
Toto téma je uzamčeno. Odpověď nelze zaslat.

0