Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 40
  1. #1

    problemi con sessioni e safari

    buongiorno a tutti...
    come da titolo, ho un problema con le variabili di sessione che non si aggiornano con safari versione 5
    (o per lo meno da mac in cui posso testare), mentre funziona su safari 9 e tutti gli altri browser...
    vi metto un po' di codice

    jquery che manda l'id della pagina
    codice:
        $('.MioMenu li a').click(function(){
            var menuPag=$(this).data('info');
            $.ajax({
                type:'POST',
                url:'funzioni.php',
                data: {menuPag:menuPag},
                dataType:'html'
            });
        });
    pagina funzioni.php dove fa la query
    Codice PHP:
    <?php 

    // SESSIONE LINGUA
    session_start();
    if (!isset(
    $_SESSION['langPage'])) {
        
    $lang 'it';
        
    $_SESSION['langPage'] = $lang;
    }
    if (isset(
    $_POST['langPag'])) {
        
    $lang $_POST['langPag'];
        
    $_SESSION['langPage'] = $lang;
    }
    $lang=$_SESSION['langPage'];


    // SESSIONE ID MENU PAGINA
    if (!isset($_SESSION['menuPage'])) {
        
    $menuPag '1';
        
    $_SESSION['menuPage'] = $menuPag;
    }
    if (isset(
    $_POST['menuPag'])) {
        
    $menuPag $_POST['menuPag'];
        
    $_SESSION['menuPage'] = $menuPag;
    }

        
    $menuPag=$_SESSION['menuPage'];
        echo 
    'sessione menu: '.$menuPag."<br />\r";
        echo 
    'sessione lang: '.$lang."<br />\r";
    e mi restituisce sempre
    sessione menu: 10
    sessione lang: itdove sbaglio?

    Grazie
    Claudia

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Le sessioni, così come tutto ciò che riguarda PHP, sono gestite dal server, quindi il funzionamento non dipende dal browser che usi.
    Sicura che non sia un problema tra il browser e jQuery?

  3. #3
    questo è il codice html dove la jquery legge il dato:
    [HTML]
    <ul class="sf-menu MioMenu">
    <li><a href="qualita.php" data-info="11">Qualit&agrave;</a></li>
    <li><a href="javascript:;">Contatti</a>
    <ul>
    <li><a href="contatti.php" data-info="13">Contatti</a></li>
    <li><a href="dove_siamo.php" data-info="7">Dove siamo</a></li>
    <li><a href="eventi_e_fiere.php" data-info="8">Eventi e fiere</a></li>
    </ul>
    </li>
    </ul>
    [\HTML]

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il consiglio che posso darti è di provare a mettere un alert da usare come debug, per esempio così
    codice:
    $('.MioMenu li a').click(function(){
            var menuPag=$(this).data('info');
    
            alert(menuPag);
    
            $.ajax({
                type:'POST',
                url:'funzioni.php',
                data: {menuPag:menuPag},
                dataType:'html'
            });
        });
    Così intanto vedi se contiene effettivamente il dato che ti serve.
    Se dovesse contenere il dato giusto, proverei a chiedere nella sezione Javascript dove sicuramente ne sanno di più, anche in caso di potenziali incompatibilità tra Safari 5 e jQuery.

  5. #5
    si si, l'avevo fatto.... e il risultato era sempre corretto.... mi restituisce l'id di data-info....

  6. #6
    La richiesta asincrona ($.ajax) viene lanciata contestualmente al click sul link, la pagina cambia subito dopo, io mi aspetterei che non funzioni su nessun sistema, in quanto la richiesta Ajax non ha il tempo di terminare.

    Credo sarebbe il caso di valorizzare una variabile in cima ad ogni file .php
    contatti.php
    Codice PHP:
    $menuPag=13 
    qualita.php
    Codice PHP:
    $menuPag=11 

  7. #7
    infatti era per quello che l'avevo messo in una sessione.....
    però per la scelta del menù può essere una soluzione... ma per il cambio lingua?
    non posso mettere <html lang="it"> fisso, in quanto al click sulla lingua mi ricarica la solita pagina ma con le query in lingua scelta

  8. #8
    Quote Originariamente inviata da claudia_c82 Visualizza il messaggio
    infatti era per quello che l'avevo messo in una sessione.....
    però per la scelta del menù può essere una soluzione... ma per il cambio lingua?
    non posso mettere <html lang="it"> fisso, in quanto al click sulla lingua mi ricarica la solita pagina ma con le query in lingua scelta
    Non so come è strutturato il tuo progetto quindi ti sarò di poco aiuto, per certo dovrai cercare soluzioni alternative alla chiamata Ajax al momento del click sul menu.

  9. #9
    ok... ci provo!

  10. #10
    Se il problema sono le lingue, potresti ricavarle direttamente dall'url delle pagine.
    Ovviamente gli url dovrebbero essere diversi:
    sito.it/contatti.php
    sito.it/en/contatti.php
    Una impostazione di questo tipo sarebbe utile anche in ottica SEO, avere lo stesso url per due lingue differenti non è il massimo per posizionarsi bene.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.