Logout con sessioni

Ho salvato su una sessione $_SESSION['ok_log'] se c'è stato il login o no.

Ora vorrei fare un logout sena però distruggere il file sessione, ma solo impostando $_SESSION['ok_log']=false.

Il fatto è che mi da sempre erroe...ho fatto una funzione in questo modo:

<?php 
   function logout()
   {   
      if(isset($_SESSION['ok_log']))
                      $_SESSION['ok_log']=false;
   }
?>

E la chaimo così:

<a href=# onclick="logout();">Logout</a>

Ma come ho detto non funziona...IE mi dice "Previsto oggetto" quando clicco sul link...

inviato 10 anni fa
blow
blow
1
X 0 X

facendo

onclick="logout();"

dovresti richiamare una funzione javascript, invece tu richiami una funzione php...

Per intenderci, lo script cerca una funzion JS di nome logout() che non riesce a trovare...

Per fare quello che vuoi tu puoi fare, ad esempio:

<a href="tuapag.php?azione=logout">Logout</a>

Nella pagina di logout:

if($_GET['azione'] == "logout")

{

    if(isset($_SESSION['ok_log']))

       $_SESSION['ok_log']=false;

}

o cmq una cosa del genere...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Ah non lo sapeovo, sai mica dirmi qual'è il metodo corretto per chiamare una funzione php?

risposto 10 anni fa
blow
blow
1
X 0 X
Ah non lo sapeovo, sai mica dirmi qual'è il metodo corretto per chiamare una funzione php?

Ad esempio:

function Somma($a,$b)
{
  $res = $a+$b;
  
  return $res;
}

$a = 1;
$b = 3;
$risultato = Somma($a,$b);

Quando fai onclick, onmouseover, onload ecc ecc...si aspetta di trovare una funzione javascript...

Potresti fare una funzione javascript con dentro del php, ma non so quanto convenga...

CMQ ti rimando alla documentazione ufficiale che spiegano sicuramente meglio di me:

http://www.php.net/manual/it/language.functions.php

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
modificato 10 anni fa
X 0 X

Quel modo lo sapevo, dicevo per richiamarle da link! Comunque grazie lostesso ho fatto come mi hai suggerito e va bene!

risposto 10 anni fa
blow
blow
1
X 0 X

blow, attento a non confondere il javascript con il PHP. Con il primo realizzi un programma che gira nel browser, quindi interagisce con l'utente direttamente. Il PHP invece gira sul server quindi lontano dall'utente e dal javascript. Il javascript quindi non può chiamare direttamente delle funzioni PHP ma si deve limitare a fare delle richieste al server.

E' un po' quello che accade con la ditta che vende materassi (PHP) e l'addetto (Javascript) che effettua le visite a domicilio (Browser). L'addetto, raggiunta la casa dell'acquirente, o ha già con se il materasso (risultato di una funzione PHP) oppure deve farselo spedire (href="tuapag.php?azione=logout"). Nota che il rappresentante non ha un suo telefono per contattare la ditta ma usa quello dell'acquirente (Il Javascript presente nella pagina html chiede al browser di effettuare richieste al server).

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

blow, attento a non confondere il javascript con il PHP. Con il primo realizzi un programma che gira nel browser, quindi interagisce con l'utente direttamente. Il PHP invece gira sul server quindi lontano dall'utente e dal javascript. Il javascript quindi non può chiamare direttamente delle funzioni PHP ma si deve limitare a fare delle richieste al server.

E' un po' quello che accade con la ditta che vende materassi (PHP) e l'addetto (Javascript) che effettua le visite a domicilio (Browser). L'addetto, raggiunta la casa dell'acquirente, o ha già con se il materasso (risultato di una funzione PHP) oppure deve farselo spedire (href="tuapag.php?azione=logout"). Nota che il rappresentante non ha un suo telefono per contattare la ditta ma usa quello dell'acquirente (Il Javascript presente nella pagina html chiede al browser di effettuare richieste al server).

 :bye:

 :rm_shifty:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Si, lo so, a volte faccio paragoni improbabili  :crazy:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ma il concetto è arrivato!  ;)

risposto 10 anni fa
blow
blow
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda