| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
zmarius81
Data înscrierii: 23/Apr/2004
Mesaje: 5
Locație: Dap.Ro
|
| Trimis: Vin Apr 23, 2004 1:17 pm Titlul subiectului: Problema de problema cu sesiuni .... |
|
|
Cum pot sa salvez o valoare de tip resursa ....
Cu sesiuni am incercat si nu merge ....
Sa va explic mai bine un pic.
Daca fac ceva de genu, bineinteles dupa session_start ();
$_SESSION ['connect_id'] = ftp_open ("__host__");
atunci in $_SESSION ['connect_id'] am o resura ... sa zicem un pointer la host.
Daca de exemplu in alta pagina, dupa session_start();, am nevoie de aceasta resursa sa zicem pentru o comanda oarecare aceasta se face automat zero, adica
$_SESSION ['connect_id'] = 0;
chestie verificata personal.
Cum am verificat?
print_r ($_SESSION) in prima pagina si print_r($_SESSION) in a doua pagina .... |
|
| Sus |
|
TheWanderer
Data înscrierii: 05/Apr/2004
Mesaje: 142
Locație: Bucuresti
|
| Trimis: Vin Apr 23, 2004 6:45 pm Titlul subiectului: |
|
|
Mai, daca te-ai fi uitat in manualul de php ai fa vazut ca spune destul de clar ca variabilele de tip resursa nu pot fi inregistrate cu o sesiune.
Nu ai cum sa salvezi o resursa. Gandeste-te putin ce ar insemna sa poti salva o conexiune MySQL... tii deschis soket-ul asa la infinit pana cand se hotaraste user-ul sa sa conecteze iar. La fel si in cazul fisierelor ... le tii deschise non stop si nu le mai inchide nimeni. Nu se poate. |
|
| Sus |
|
zmarius81
Data înscrierii: 23/Apr/2004
Mesaje: 5
Locație: Dap.Ro
|
| Trimis: Sâm Apr 24, 2004 7:21 pm Titlul subiectului: |
|
|
Da ai dreptate, m-am documentat si nu se poate dace asa ceva, cel putin deocamdata, m-am uitat si prin forumurile de la Php.Net, si prin helpurile mai noi si asa e cum zici ...
Mersi ... |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Sâm Apr 24, 2004 8:34 pm Titlul subiectului: |
|
|
zmarius81 a scris: ...cel putin deocamdata...
Nu e vorba de 'deocamdata'. Conceptual, o resursa nu poate fi 'persisted' (exact cum a mai spus cineva... ce fac, tin socketi deschisi pana se schimba legea ? etc...). Poti sa persisti starea resursei (de ex: string de conectare, + o descriere a starii resursei... dar asta e dementa :)).
De altfel, una din caractersiticile HTTP este faptul ca e stateless, iar chestia asta cu sesiunile e doar o carpeala, conceputa pentru a asigura un mecanism de persistenta pentru HTTP.
Cu alte cuvinte, faptul ca 'resource' nu se poate salva in sesiune nu e o limitare a PHP-ului. |
|
| Sus |
|
zmarius81
Data înscrierii: 23/Apr/2004
Mesaje: 5
Locație: Dap.Ro
|
| Trimis: Dum Apr 25, 2004 8:18 am Titlul subiectului: |
|
|
Cu alte cuvinte ceea ce ma intereseaza pe mine adica sa parsez intr-o sesiune o resursa deocamdata nu se poate in Php sau ma rog in versiunile care sunt, posibil sa versiunile viitoare ....
Dar totusi cum pot trimite o variabila de tip resursa dintr-un fisier php in altul ... :arrow: |
|
| Sus |
|
TheWanderer
Data înscrierii: 05/Apr/2004
Mesaje: 142
Locație: Bucuresti
|
| Trimis: Lun Apr 26, 2004 11:05 am Titlul subiectului: |
|
|
Faci variabila de tip resursa globala si in felul asta va fi disponibila in toate scripturile.
an style="color: #000000"><?php global $cnt;
$cnt=mysql_connect(....)
.
.
. |
|
| Sus |
|
zmarius81
Data înscrierii: 23/Apr/2004
Mesaje: 5
Locație: Dap.Ro
|
| Trimis: Lun Apr 26, 2004 11:26 am Titlul subiectului: |
|
|
Am sa incerc si varianta asta ...
Mersi ... |
|
| Sus |
|
zmarius81
Data înscrierii: 23/Apr/2004
Mesaje: 5
Locație: Dap.Ro
|
| Trimis: Lun Apr 26, 2004 12:21 pm Titlul subiectului: |
|
|
Da am incercat si cum ai zis tu, chestia asta care o zici tu include urmatoarea problema:
register_globals = On
si de obicei toate serverele din motive de securitate aceasta valoare este setata pe Off deci pica si varianta cu global. :D
Oricum a fost o idee ... |
|
| Sus |
|
TheWanderer
Data înscrierii: 05/Apr/2004
Mesaje: 142
Locație: Bucuresti
|
| Trimis: Lun Apr 26, 2004 2:38 pm Titlul subiectului: |
|
|
Deci si asta cade...
Poti sa faci incluziuni multiple. In mainfile deschizi conexia si apoi faci incluziuni. In fisiserele incluse variabila va exista!
an style="color: #000000"><?php // a,php
<?php
global $test;
$test="100";
require_once("b.php");
?>
////////////////////////////////////////
// b.php
<?php
die($test);
?> |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Mar Apr 27, 2004 12:02 am Titlul subiectului: |
|
|
zmarius81 a scris: Da am incercat si cum ai zis tu, chestia asta care o zici tu include urmatoarea problema:
register_globals = On
si de obicei toate serverele din motive de securitate aceasta valoare este setata pe Off deci pica si varianta cu global. :D
Oricum a fost o idee ...
Ce legatura are ?
register_globals=on iti inregistreaza variabilele primite prin POST, GET sau cookie in namespace-ul global. Cu ce afecteaza asta (sau lipsa acestei setari) declararea unei variabile ca globale ?
In alta ordine de idei, ascultati sfatul unui om batran. NICIODATA nu folositi variabile globale pentru a transmite argumente de ici-colo. Repet, NICIODATA.
Rezolvari exista duium (functii, clase cu membrii statici, singletoane, etc, etc).
De ex:
<?php
function getConnection()
{
static $connection = null;
if ($connection === null)
$connection = mysql_connect(...);
return $connection;
}
?>
si in loc de:
<?php
global $cnt;
mysql_xxx($cnt, ...);
?>
o sa ai:
<?php
mysql_xxx(getConnection(), ...);
?> |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |