giorno settimanamesegiorno

Sono passati 88 giorni dall'inizio dell'anno che corrispondono a 13 settimane

Arcobaleno, domani sereno



* Chattina

Aggiorna Storia
  • mar: :resistere:
    Febbraio 15, 2022, 19:44:48
  • mar: Non mi ricordavo di essere un global moderator wauuuu Ok Prof ti lascio restaurare in pace!
    Febbraio 15, 2022, 19:43:56
  • mar: :Cartelli70:
    Febbraio 15, 2022, 19:41:14
  • mar: ad cazzum pure qui?
    Febbraio 15, 2022, 19:41:02
  • mar: ciaoooo sono in perlistrazione
    Febbraio 15, 2022, 19:40:44
  • mar: :okkey:
    Febbraio 15, 2022, 19:40:20
  • Loretta/Nina: ciao a tutti
    Ottobre 04, 2021, 19:23:02
  • Loretta/Nina: :tuffarsi:
    Settembre 21, 2021, 07:08:03
  • Loretta/Nina: Buon autunno a tutti
    Settembre 21, 2021, 07:01:35
  • nuvolotta: avventure testuali
    Luglio 06, 2020, 23:26:08
  • _jan_: ...gli ultimo però....!!
    Gennaio 14, 2019, 14:45:09
  • _jan_: vedi gli ultimi post in fondo.
    Novembre 24, 2018, 19:10:00
  • mar: Trovato :Amm9:
    Novembre 24, 2018, 18:57:51
  • mar: Chi cerca trova non vi trovo! :Cartelli2:
    Novembre 24, 2018, 18:57:05
  • mar: Vado a vedere le cartoline!
    Novembre 24, 2018, 18:52:38
  • mar: :Amore145:
    Novembre 24, 2018, 18:52:21
  • mar: :Amore178:
    Novembre 24, 2018, 18:52:07
  • _jan_: Welcome Visitor.  :Party133:
    Novembre 15, 2018, 10:03:24
  • Loretta/Nina: Benvenuto ligi  :Cartelli37:
    Ottobre 09, 2018, 13:19:25
  • nuvolotta: Cucù...  :Amore20:
    Settembre 16, 2018, 01:16:47
  • Loretta/Nina: :Party133:
    Settembre 01, 2018, 17:05:30
  • _jan_: Ciao ai visitors!!
    Settembre 01, 2018, 17:02:31
  • Loretta/Nina: :fischio: :979:
    Agosto 28, 2018, 16:20:48
  • ketty: ah beh, meno male. ora il tempo e' un po' brutto
    Agosto 26, 2018, 13:27:36
  • _jan_: No, no, soqquà. Ci passo ma....... non c'è mai nessuno. Ammiro Nuvolotta, solitaria e presente.
    Agosto 25, 2018, 10:34:41
  • ketty: ma Jan è andato in vacanza? :Cartelli70:
    Agosto 24, 2018, 20:51:59
  • ketty: ciao a tutti.
    Agosto 24, 2018, 20:50:12
  • nuvolotta: :faccina_fiore: ciao ragazzioli/ole...
    Agosto 19, 2018, 23:03:49
  • Loretta/Nina: :ciao: :Party133:
    Agosto 19, 2018, 20:24:28
  • _jan_: :Felici13:
    Agosto 04, 2018, 15:30:40
  • nuvolotta: Ferie... già fatte....
    Agosto 04, 2018, 09:54:58
  • _jan_: Auguri di buon onomastico a tutti gli Alfonso....
    Agosto 01, 2018, 11:10:21
  • _jan_: chiusp per ferie?
    Luglio 30, 2018, 19:50:58
  • _jan_: Buon onomastico a Donatella Seconda........ e la prima? :Shok145:
    Luglio 30, 2018, 06:59:38
  • _jan_: Buon onomastico a tutte le Marta.  :Amore20:
    Luglio 29, 2018, 07:44:31
  • _jan_: Ci sono altre nuove iscritte viste il 26 luglio 2018..... (mica saranno monache)....  :approva:
    Luglio 26, 2018, 18:39:04
  • _jan_: Oggi, 26 luglio 2018, abbiamo una nuova iscritta "Francesca".....Benvenuta Francesca.  :Party133:
    Luglio 26, 2018, 15:49:24
  • _jan_: Buon onomastico anche a tutte le Anna!!! .....
    Luglio 26, 2018, 10:30:21
  • _jan_: Auguri di Buon Onomastico a TUO..... (ogni giorno, credo)..... :sm269:
    Luglio 26, 2018, 10:28:52
  • ketty: ma.... quando è il tuo?
    Luglio 25, 2018, 19:52:19

* Emoticon aggiuntive e link al portale


Autore Topic: messaggio a tempo usando $_SESSION[] con JS  (Letto 3043 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline micdas

  • Administrator
  • Hero Member
  • *****
  • Post: 848
  • Sesso: Maschio
    • sito su Excel ed il suo vba
messaggio a tempo usando $_SESSION[] con JS
« il: Luglio 07, 2011, 00:02:32 »
Chiedo qui perchè penso che in PHP non sia fattibile.
Per semplicità le pagine le chiamo pag1, pag2, pag3 (tutte PHP)
La situazione è questa.
Da pag1 chiamo un form che si trova in pag2
Il processo al form lo eseguo in pag3 che con una redirect (header("location: pag1.php"); ) ritorna a pag1
Durante il processo possono verificarsi diversi eventi:
Esito positivo
Esito negativo
Esito positivo solo in parte
ecc
questi eventi li memorizzo nella variabile di sessione:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
$_SESSION['sess_messaggio'] .= "inserimento eseguito con successo: ";
$_SESSION['sess_messaggio'] .= "Errore nell'esecuzione di inserimento: ";
ed altro
Ritornando  a pag1 scrivo il messaggio, però se la variabile di sessione non viene in qualche modo cancellata, anche compiendo altre operazioni, il messaggio rimane sempre visibile.

Esiste un modo per poter cancellare (magari da JS) dopo un breve periodo di tempo la variabile del messaggio?

Ti ringrazio in anticipo  :Party133:.

 :ciao:

PS:
Dimenticavo che non posso, non debbo cancellare tutte le session perchè ci sono alcune sue variabili che mi servono sino alla fine dei lavori, ma solo quella del messaggio.
« Ultima modifica: Luglio 07, 2011, 00:07:10 da micdas »
E' stupido pensare di non aver bisogno degli altri

Offline HellDevil

  • Global Moderator
  • Full Member
  • ***
  • Post: 106
  • Sesso: Maschio
Re:messaggio a tempo usando $_SESSION[] con JS
« Risposta #1 il: Luglio 07, 2011, 09:54:57 »
Ovviamente non puoi modificare le variabili di sessione direttamente da javascript in quanto queste risiedono sul server mentre il javascript funziona lato client.

Puoi ovviare facendo una pag4 con solo lo svuotamento di quella variabile di sessione (es. mettendola a "" o a null) e chiami quella pagina con javascript dopo un tot di tempo (ovviamente se il tot di tempo è troppo lungo rischi che prima l'utente ti chiuda la pagina).

Come di consueto di seguito un esempio:

Codice: Non sei autorizzato a vedere i links. Registrati o Login
function openpag4(){
var w = 0;
var h = 0;
newwindow=window.open("pag4.php","pag4","width=" + w + ",height=" + h) ;
window.opener=self;
}

function closepag4(){
if(false == pag4.closed){
pag4.close ();
}else{
alert('Popup già chiuso!');
}
}

function pag4(){
window.setTimeout('openpag4()',10000); //apri la pag4 dopo 10 sec quindi la variabile di sessione si svuoterà dopo 10 sec
window.setTimeout('closepag4()',1000); //chiudi il popup un secondo dopo
}

poi

Codice: Non sei autorizzato a vedere i links. Registrati o Login
<body onload="pag4();">
e nella pag4

Codice: Non sei autorizzato a vedere i links. Registrati o Login
$_SESSION['sess_messaggio'] .= "";
Altrimenti puoi fare un frame invisibile che richiami sempre da js se non ti piace il popup con lo stesso sistema (richiama la pagina pag4.php).

Fammi sapere se ti serve altro.

Ciao
HellDevil
Tutti sanno che una cosa é impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa

Offline micdas

  • Administrator
  • Hero Member
  • *****
  • Post: 848
  • Sesso: Maschio
    • sito su Excel ed il suo vba
Re:messaggio a tempo usando $_SESSION[] con JS
« Risposta #2 il: Luglio 07, 2011, 17:37:01 »
 :ciao: Devil e grazie per la risposta.
Ho appena applicato lo script alla pagina che mi interessa
Ho creato la pag4.php con questo codice:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
session_start
();
$_SESSION['sess_messaggio'] = "";
?>


Ovviamente la variabile viene svuotata, però succedono anche alcune cose:
la pagina viene aperta in _blank coprendomi la pagina di lavoro (la pag1) e rimane aperta fino a quando non la chiudo manualmente.
Ho provato a cambiare l'istruzione
Codice: Non sei autorizzato a vedere i links. Registrati o Login
window.opener=self;in
Codice: Non sei autorizzato a vedere i links. Registrati o Login
window.opener=_self;ma non cambia nulla: la pagina continua ad aprirsi in "_blank" e così rimane fino a quando non la chiudo manualmente.
Altra cosa vien sempre fuori l'alert dello script.

Ti ringrazio per l'attenzione e ti chiedo scusa per i grattacapi che ti procuro  :Amore52:

 :ciao:
E' stupido pensare di non aver bisogno degli altri

Offline micdas

  • Administrator
  • Hero Member
  • *****
  • Post: 848
  • Sesso: Maschio
    • sito su Excel ed il suo vba
Re:messaggio a tempo usando $_SESSION[] con JS
« Risposta #3 il: Luglio 07, 2011, 23:22:38 »
Per facilitare la comprensione di quanto ho detto qui sopra ho preparato le 4 pagine simulando la vera situazione in cui mi trovo.
La prova si trova Non sei autorizzato a vedere i links. Registrati o Login
Nel mio browser ho il blocco delle popup per cui prima di aprire la popup mi viene il messaggio di FF: "Firefox ha impedito a questo sito una finestra popup".
Se la lascio bloccata la variabile non si azzera.
Se dico "permetti......" la variabile si azzera ma la popup si apre e resta aperta.
A parte il contenuto delle prime 2 pagine nella 3 e nella 4 ci sono queste istruzioni:
Pag3:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
session_start
();
$_SESSION['sess_messaggio'] = "Ritorno dal futuro";
header("location: pag1.php");
?>

Pag4:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
session_start
();
$_SESSION['sess_messaggio'] = "";
?>


Spero che l'esempio possa chiarire il problema.

 :ciao:
E' stupido pensare di non aver bisogno degli altri

Offline micdas

  • Administrator
  • Hero Member
  • *****
  • Post: 848
  • Sesso: Maschio
    • sito su Excel ed il suo vba
Re:messaggio a tempo usando $_SESSION[] con JS
« Risposta #4 il: Luglio 08, 2011, 09:28:15 »
Ho trovato  :n045:
Nella funzione openpag4()
Codice: Non sei autorizzato a vedere i links. Registrati o Login
function openpag4(){
var w = 0;
var h = 0;
newwindow=window.open("pag4.php","pag4","width=" + w + ",height=" + h) ;
window.opener=_self;
}
viene creata la variabile "newwindow".
Nella funzione closepag4()
Codice: Non sei autorizzato a vedere i links. Registrati o Login
function closepag4(){
if(false == pag4.closed){
pag4.close ();
} else {
alert('Popup chiuso!');
}
}
viene usata la variabile "pag4"
Provando a modificare in questo modo la funzione closepag4()
Codice: Non sei autorizzato a vedere i links. Registrati o Login
function closepag4(){
if(false == newwindow.closed){
newwindow.close ();
} else {
alert('Popup chiuso!');
}
}
la popup viene chiusa regolarmente.

 :Banane27:

Grazie per l'utile script   :Party133:
 :ciao: e alla prossima

PS
Macchè, sembrava, all'inizo, ma mi sono accorto che la popup continua a rimanere aperta  :testate:
« Ultima modifica: Luglio 08, 2011, 16:32:23 da micdas »
E' stupido pensare di non aver bisogno degli altri

Offline HellDevil

  • Global Moderator
  • Full Member
  • ***
  • Post: 106
  • Sesso: Maschio
Re:messaggio a tempo usando $_SESSION[] con JS
« Risposta #5 il: Luglio 08, 2011, 19:26:03 »
Per evitare i problemi di popup puoi sempre optare per la seconda soluzione che ti ho dato, i frame.
Crea un frame di dimensioni 0 che carica la pag4 da js in questo modo:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<iframe id="frame_pag4" width="0" height="0" scrolling="no" border="0" style="visibility:hidden" src="" />e nel js:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
function cambiaFrame(){
  var myFrame = document.getElementById("frame_pag4");
  myFrame.src = "pag4.php";
}
poi nel body:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<body onload="window.setTimeout('cambiaFrame()',10000);">
e nella pag4.php:
Codice: Non sei autorizzato a vedere i links. Registrati o Login
<?php
session_start
();
$_SESSION['sess_messaggio'] = "";
?>


Fammi sapere se va

Ciao
HellDevil
Tutti sanno che una cosa é impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa

Offline micdas

  • Administrator
  • Hero Member
  • *****
  • Post: 848
  • Sesso: Maschio
    • sito su Excel ed il suo vba
Re:messaggio a tempo usando $_SESSION[] con JS
« Risposta #6 il: Luglio 08, 2011, 21:09:49 »
Grazie Devil  :Party133:
ora sembra funzionare bene, evitando anche il fastidioso sfarfallio di prima dovuto al cambio pagina.
Ovviamente farò ancora alcuni test e  se tutto continua a procedere bene la storia si può chiudere qui. Ovviamente ho rmandato la pagina modificata on line.

Per mantenere la validazione alla pagina nell'iframe metto di default una pag5 completamente vuota. Sembra non creare problemi. Allo scadere del tempo prefissato ho notato che viene regolarmente sostituita
Anche alla pag4, anzichè lasciarla vuota, ho dato, dopo la session, il minimo di tag html, sempre per non perdere la validazione.

 :ciao:    :Cartelli36:

PS: il link è sempre Non sei autorizzato a vedere i links. Registrati o Login
E' stupido pensare di non aver bisogno degli altri