Notizie: se possiedi un dispositivo Android, prova Firefox per Android, un browser scattante e dinamico per navigare in ambiente mobile.

Autore Topic: Problema con le session PHP in FF18  (Letto 1006 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline lonewolf

  • Post: 2
Problema con le session PHP in FF18
« il: 10 Gennaio 2013 11:35:37 »
Buongiorno a tutti.
Ieri ho aggiornato il mio Firefox passando dalla versione 17.0.1 alla versione 18.0 e a partire da quel momento ho riscontrato un errore in un applicativo PHP che fino a un istante prima fuinzionava correttamente.
Il problema è il seguente:
Ho un programma (PHP) che legge informazioni su un database (Filemaker) e le mostra in formato tabella. Successivamente facendo click sulle singole righe della tabella si accede al dettagio del record, oppure con un apposito pulsante si procede con l'inserimento di un nuovo record. Per distinguere le due modalità, ossia visualizzazione dettaglio o inserimento di un nuovo record, utilizzo le session di PHP e, in particolare, imposto una variabile di di tipo $_SESSION richiamando PHP tramite jQuery.
La chiamata è la seguente:

            $('.advice').click(function() {
               var recId = $(this).attr('id');
               $.ajax({
                  url: "inc/setstatus.inc.php",
                  type: "POST",
                  data: "status=D",
                  dataType: "html"
               });   
               window.location.href = 'advice.php?recid=' + recId;
            });

mentre il programma richiamato è semplicemente questo:

<?php
   session_start();
   if(isset($_POST['status'])) {
      $_SESSION['status'] = $_POST['status'];
   }   
?>

la pagina advice.php richiamata in fonso allo script jQuery richiama il dettaglio del record e in questa pagina viene verificato lo stato della variabile $_SESSION['status'], che se contiene "D" deve visualizzare il record scelto, altrimenti deve entrare in modalità inserimento.

A mio parere in Firefox 18 è stata apportata qualche modifica tale per cui la pagina richiamata (advice.php) mi segnala che la variabile ststus non è stata trovata, mentre il tutto funziona correttamente in Firefox 17.

Spero di essere stato chiaro nella mia spiegazione.

 

Offline A35G

  • Post: 642
    • HackWorld - La Rinascita del Sapere -
Re: Problema con le session PHP in FF18
« Risposta #1 il: 10 Gennaio 2013 12:10:41 »
Mmm...non riscontro questo tipo di problema...il mio consiglio è quello di controllare meglio i vari script che dialogano tra loro.

P.S.: non ti fidare della sola funzione isset per controllare se una variabile esiste ed è settata...o meno...e per giunta assegni ad una variabile di sessione, un contenuto non controllato...controllalo anche se lo passi tu ;)

Usa una combinazione del genere per esempio:
Codice: [Seleziona]
<?php
session_start
();
if ( isset ( 
$_POST['status'] ) && !empty ( $_POST['status'] ) ) {
  
$_SESSION['status'] = htmlentities $_POST['status'] );
}
?>


Altro consiglio: associa alle tue sessioni un nome personalizzato; ti consiglio questo metodo in modo da non incorrere in problemi in caso di più applicativi aperti senza distinzione di sessione e con logout totale in caso di uscita da uno solo.

Esempio:
Codice: [Seleziona]
<?php
session_name
("MioApp");
session_start();
.....

Offline lonewolf

  • Post: 2
Re: Problema con le session PHP in FF18
« Risposta #2 il: 12 Gennaio 2013 10:23:48 »
Grazie A35G per i consigli.
Sono ababstanza nuovo di PHP e quindi lamia conoscenza del linguaggio è piuttoscto scarsa.

Teoricamente la variabile dovrebbe essere settata perché facendo click su un pulsante jQuery mi richiama la pagina php dove vado a scrivere la variabile $_SESSION['status'], passandogli direttamente una costante e in effetti tornando a FF 17 tutto funziona correttamente, mentre a partire da FF 18 sembrerebbe che la sessione venga persa e quindi quando richiamo la pagina che deve visualizzare il dettaglio del record ottengo il seguente messaggio:

PHP Notice:  Undefined variable: status in...

Ho provato anche la beta di FF 19, ma l'errore permane.

Grazie dell'aiuto!

Offline A35G

  • Post: 642
    • HackWorld - La Rinascita del Sapere -
Re: Problema con le session PHP in FF18
« Risposta #3 il: 13 Gennaio 2013 00:25:41 »
Da premettere che con un paio di aggiornamenti precedenti ho avuto qualche problemino con script jQuery che ho dovuto scrivere in modo migliore...

ottengo il seguente messaggio:

PHP Notice:  Undefined variable: status in...


Quindi non assegna il contenuto alla variabile...puoi incollare la parte intera sia dello script in js, sia dello script in PHP che sono colpevoli di non funzionare?

0 Utenti e 1 Visitatore stanno visualizzando questo topic.