Domandina sulle variabili

Ciao a tutti :)

Premetto che sono abbastanza novizio nella programmazione in php, quindi se dico qualche cavolata scusatemi XD

Ad ogni modo volevo sapere se è possibile fare una cosa di questo genere e in caso positivo, come farla:

ho su un web server 2 files, b.php e c.php.

Nel file b.php io salvo una variabile chiamata $myVar nel $GLOBALS, tramite

mysitoinventato.it/b.php?myVar=value

Nel file c.php io che ho salvato la variabile nel b.php ( tramite la mysitoinventato.it/b.php?myVar=value ) posso utilizzarla, prendendola dal $GLOBALS.

Ora il problema è questo: un mio utente può accedere solo al c.php, come faccio a fargli prendere ed utilizzare il valore della variabile che però ho salvato io?

Spero di essermi spiegato ^^

un grazie in anticipo per tutte le risposte :)

inviato 8 anni fa
crova
modificato 8 anni fa
X 0 X

Cosa intendi per "ho salvato"? Le variabili in PHP vengono cancellate ad ogni richiesta dell'utente

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Normalmente per fare queste cose ci si affida ad altri mezzi, ad esempio le sessioni che sono una sorta di variabile che si mantiene durante tutta la sessione di navigazione del sito, oppure ai cookie, oppure ad un passaggio tramite la barra degli url tramite GET, oppure ad un database che può essere in qualsiasi forma, persino un file di testo.

Ma se salvi il dato in una variabile anche dichiarata globale, questa verrà cancellata nell'attimo in cui il navigatore passa da una pagina all'altra. Il Web è senza stato, ovvero non si ricorda nulla di ciò che c'era sulla pagina prima che tu la cambi o la aggiorni, per questo avevano inventato i cookie a suo tempo :)

risposto 8 anni fa
Marco Grazia
X 0 X

Ah capisco, quindi l'unico modo è effettivamente salvare il valore su un file o utilizzare un db.

Quale dei due metodi a parità di condizioni è più veloce ( nel mio caso il campo sarebbe solo 1)? e considerando che le richieste possono essere più di una decina in contemporanea, le letture e scritture su file da php sono asincrone ( stessa domanda anche per il db ) ? :)

Grazie per il vostro aiuto

risposto 8 anni fa
crova
X 0 X
Ah capisco, quindi l'unico modo è effettivamente salvare il valore su un file o utilizzare un db.

Non mi sembra che marcolino ti abbia suggerito solo queste due tecniche...

Questo articolo potrebbe fare al caso tuo:

http://www.phpnews.it/articoli/php/il-passaggio-delle-variabili-e-la-gestione-dello-stato/

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
Ah capisco, quindi l'unico modo è effettivamente salvare il valore su un file o utilizzare un db.

Non mi sembra che marcolino ti abbia suggerito solo queste due tecniche...

Questo articolo potrebbe fare al caso tuo:

http://www.phpnews.it/articoli/php/il-passaggio-delle-variabili-e-la-gestione-dello-stato/

 :bye:

E' perfetto :D grazie mille

risposto 8 anni fa
crova
X 0 X

Stavo leggendo un pò sul sito ufficiale ed ho trovato delle funzioni per operare sulla shared memory, potrebbe essere una soluzione valida per il mio problema? :)

riscrivo qui la mia situazione, per essere un pò più chiaro:

mettiamo caso di avere 3 persone A, B e C. E' possibile in qualche modo, far si che una variabile mandata tramite URL da A, possa essere condivisa con B e C?

cioè A manda una query con una variabile x.php?nome=Marco .

B e C che sono in posti diversi hanno bisogno di quel nome=marco. 

Grazie ancora a tutti per il vostro valido aiuto :)

risposto 8 anni fa
crova
X 0 X

Mi sa che tu vedi il problema dal lato sbagliato :)

Il Web non è asimmetrico, ma simmetrico con il server come punto centrale della simmetria.

A fa una richiesta al server Z.

B fa una richiesta al server Z.

C fa una richiesta al server Z.

A non può fare una richiesta a B direttamente se non tramite il server Z, e così via.

Z non deve far sapere ad A, B, C cosa A o B o C hanno fatto se non in termini di una elaborazione a posteriori, mi spiego meglio, se A immette un dato in pagina 1, questo dato non sarà immediatamente disponibile anche a B e C se non dopo che A ha premuto invio e il server non abbia elaborato il dato e B e C o Z non abbiano aggiornato la loro pagina.

Dopo di che chiunque si connetta a 1 avrà quel dato a sua disposizione.

Ma non puoi far si che se A immette il dato in 1 all'istante compare anche sulle pagine 2 e 3 che stanno visualizzando B e C, non è possibile fare questo.

Il Web è un sistema presentazionale dove A immette dei dati e B e C leggono il dato immesso, stop non è possibile altro.

Invero con Ajax si può fare qualcosa di asimmetrico, ma è ancora troppo indietro rispetto ad un sistema client/server asimmetrico puro come può essere che so un'applicazione scritta in Java (bada bene linguaggio Java non Javascript che è un'altra cosa).

risposto 8 anni fa
Marco Grazia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda