Autor Zpráva
Bady
Profil *
Takze prelozim to:
mam stranku1 v tej je definovana neaka premenna $x=bublifuk... v tejto stranke1 kliknete na odkaz na stranku2... a v tej sa automaticky definuje premenna $x=bublifuk
Viem ze by bolo strasne pekne napisat do toho odkazku stranka2.php?x=bublifuk ALE to by vsetci videli co posielam...
Neviem, nie som moc good v php ale nebolo tam volaco take ze session? ci to som vedla?
DIK!
Anonymní
Profil *
Já také nejsem moc dobrej v PHP, ale možná by to šlo poslat skrytým atributem formuláře a metodou "post" ...
Karel
Peca
Profil
Přeně tak, dá se to řešit přes session. Všechny proměnné jsou na serveru a posílá se jenom jejich identifikátor. Podmínku je mít zapnuté cookies nebo tento identifikátor přidávat ke každému odkazu.
jozob
Profil
Bady
Anonymní a Peca to už načali, ja to trošku skonkretizujem.

1.) Použitie štandardných možností HTML
V tomto prípade ide o použitie neviditeľných formulárových prvkov.
<input type="hidden" value="hodnota" name="nazov_premennej" />


Tento tag vložiš do formulára, formuláru nastavíš metódu posielania na POST, formuláru určíš názov.
<form name="formular" action="" method="POST">

<input type="hidden" value="hodnota" name="nazov_premennej" />
</form>

Aby sa po kliknutí na odkaz odoslali premenné, do udalosti onclick daného odkazu pridaj javascript, ktorý odošle formulár pomocou metódy submit().
<form name="formular" action="" method="POST">

<input type="hidden" value="hodnota" name="nazov_premennej" />
</form>

<a href="stranka2" onclick="formular.submit()">Odkaz</a>


Odoslané premenné budú dostupné v poli $_POST;

2.) Použitie sessions
V tomto prípade sa využívajú možnosti PHP. Je to zložitejšia metóda na predávanie dát medzi súbormi, ale najbezpečnejšia, nakoľko aj v 1. prípade je možné "skryté" údaje prečítať a to priamo zo zdrojového kódu.
Najprv je potrebné inicializovať sessions pomocou príkazu sessions_start(), tým sa pridelí klientovi unikátne ID, ktoré slúži na identifikáciu dát, aby bolo jasné, ktoré dáta patria ktorému uživateľovi. Premenné sa ukladajú na disku serveru, obyčajne v tmp adresári. Ako už napísal Peca, je potrebné mať zapnuté cookies. Pokiaľ nie sú zapnuté cookies, ID sa odosiela pomocou metódy GET, priamo v odkazoch (premenná PHPSESSID).
Premenné sa deklarujú pomocou funkcie session_register("nazov_premennej"). S premennými sa pracuje pomocou poľa $_SESSION. Premenné sa "ničia" pomocou funkcie session_unset("nazov_premennej"). Celé sessions sa ukončujú pomocou funkcie session_destroy(), táto funkcia "zničí" všetky premenné, vrátane unikátného ID.
Po prejdení na inú stránku sa premenné uchovávajú v poli $_SESSION až do vtedy, kým neuplynie doba stanovená direktívou session.cookie_lifetime, alebo dovtedy, kým nepoužijeme funkciu session_destroy(). Direktíva session.cookie_lifetime je implicitne je nastavená na "0", čo znamená, že session cookie platí ("žije") až dovtedy, kým uživateľ neuzavrie prehliadač.

Príklad:

--- subor1 ---

<?php
session_start();
session_register("premenna1");
$_SESSION["premenna1"]="skuska sessions";
?>
Obsah premennej v 1. subore: <?=$_SESSIONS["premenna1"]?>
<a href="subor2">subor2</a>

--- subor2 ---
<?php
session_start();
?>
Obsah premennej v 2. subore: <?=$_SESSIONS["premenna1"]?>
<?php
session_destroy();
?>
Teraz uz v premennej nic nie je...



***
Prepáčte mi za dlhši komentár (článok :-)).
error414
Profil
Pokiaľ nie sú zapnuté cookies, ID sa odosiela pomocou metódy GET, priamo v odkazoch
jen pokud je to na serveru povoleno, ale casteji je to zakazano, kvuli bezpecnosti
Bady
Profil *
jozob
posielam pusu! :) diky!!!
Toto téma je uzamčeno. Odpověď nelze zaslat.

0