Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    37

    jquery & session_destroy

    buongiorno a tutti

    avrei bisogno di pareri su una cosa particolare

    ho una confirmation box, dove se clicco li tasto di conferma voglio che mi distrugga i dati di sessione.
    La distruzione dei dati funziona, il problema è che va sempre in esecuzione il session_destroy anche senza che si apre la confirmation box

    vi allego il codice

    <script>
    function exit(){
    var testo=$('#testo').val();
    var mittente=$('#mittente').val();
    if(testo!="Scrivi qui il tuo messaggio" || mittente!="Scrivi qui il mittente"){
    var v = confirm("sicuro di voler uscire?");
    if(v==true){
    alert(v);
    var sess=<?=$_SESSION['id']?>;
    alert(sess);
    <?php
    echo"alert('da php..');";
    session_destroy();
    ?>
    }
    else if(v=false){
    alert(v);
    event.preventDefault();
    }
    }
    }
    </script>

    Lo script parte con onclick="exit()" su un link.
    Cosa sto sbagliando??

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    37
    ok, php viene eseguito sempre prima di javascript, chiaro.

    La mia soluzione di prima quindi è totalmente da scartare.

    Vediamo però se almeno quest'altra soluzione possa essere più corretta

    index.php

    function exit(){
    var testo=$('#testo').val();
    var mittente=$('#mittente').val();
    var sess=<?=$_SESSION['id']?>;
    if(testo!="Scrivi qui il tuo messaggio" || mittente!="Scrivi qui il mittente"){
    alert('distruggere la sessione');
    $.ajax({
    url: "destroy_session.php",
    type: "POST",
    data: "id="+sess,
    dataType: "html/text",
    success: function(html){
    alert('distrutta '+html);
    }
    });
    }
    }

    destroy_session.php

    <?php
    session_start();

    echo $_SESSION['id'];

    session_destroy();

    ?>

    è molto simile ad altri pezzi che ho già sviluppato altrove ma l'ultimo alter dice solo "distrutta". Cosa sbaglio?

  4. #4
    Ti consiglio di usare i tag [code] e [php] per inserire il tuo codice nel forum, che lo rende più leggibile. Comunque se non viene stampato l'id della sessione vuol dire che non gli viene passato correttamente. Per cominciare al posto di:

    codice:
    var sess=<?=$_SESSION['id']?>;
    io scriverei

    codice:
    var sess = '<?php echo $_SESSION["id"]';
    È sempre meglio usare i tag per esteso, e gli apici intorno non guastano mai.
    All'interno del file php credo che session_destroy() vada chiamato prima che ci sia stato dell'output sullo schermo, quindi quell'echo devi spostarlo altrimenti il comando successivo non dovrebbe funzionare.

    Comunque prova a fare la prima modifica e riferisci. Prova anche a passare un altro parametro di prova, tipo "test" impostato ad un valore fisso per vedere se quello viene passato e stampato correttamente, se così non fosse il problema è nel javascript.
    Visita il mio blog e canale YouTube dedicati a programmazione web e sicurezza informatica.

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.