Redirect sbagliato di SSI.php dopo login

Started by gfr1991, July 16, 2012, 09:13:11 AM

Previous topic - Next topic

gfr1991

Salve ragazzi, ho un problema.
Ho implementato sul mio sito il codice per permettere il login tramite il database del forum, come da file ssi.php. Però ho un problema: in sostanza, quando una persona prova a fare login sul mio sito viene rimandata al forum invece che alla pagina dove ha effettuato il login. L'unico modo per far funzionare il tutto è andare sul forum, fare logout e quindi rifare login tramite sito. Spero possiate aiutarmi, ecco il codice che ho inserito:
<?php
require("D:\inetpub\webs\accentosulladcom\public\simple\SSI.php"); 

if (
$context['user']['is_guest'])
{echo <<<EOD
<nav1>
<ul>
<li id="login">
<a id="login-trigger" href="#">
Log in <span>&#38;#x25BC;</span>
</a>
<div id="login-content">
<form action="http://www.accentosullad.com/public/simple/index.php?action=login2" method="post" accept-charset="ISO-8859-1">
<fieldset id="inputs">
<input id="user" type="text" name="user" placeholder="Username" required>   
<input id="passwrd" type="password" name="passwrd" placeholder="Password" required>
</fieldset>
<fieldset id="actions">
<input type="submit" id="submit" value="Accedi">
<label><input type="checkbox" name="cookielength" value="-1" checked="checked">Rimani collegato</label>
</fieldset>
</form>
</div>                     
</li>
<li id="signup">
<a href="">Registrati</a>
</li>
</ul>
</nav1>
EOD;
}
else
{
//You can show other stuff here.  Like ssi_welcome().  That will show a welcome message like.
//Hey, username, you have 552 messages, 0 are new.
echo '<nav1>''<ul>' '<li id="login">''<a id="login-trigger">'" Ciao "$context['user']['name'] , '</a>''</li>''<li id="signup">'ssi_logout(), '</li>''</ul>''</nav1>';
}
$_SESSION['login_url']='http://accentosullad.com/'.$_SERVER['PHP_SELF'];
$_SESSION['logout_url']='http://accentosullad.com/'.$_SERVER['PHP_SELF'];
?>
 

emanuele

mmm...prova qualcosa tipo:
$_SESSION['old_url'] = !empty($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
Però ti consiglio di mettere un po' più di controlli, altrimenti ad esempio se uno sbaglia il login verrebbe re-indirizzato sulla pagina del login...
Fai qualche prova e vedi. ;)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

gfr1991

Ciao, innanzitutto ti ringrazio per l'attenzione e la risposta rapida. Ti chiedo una specificazione: Dove dovrei inserire l'indirizzo di redirect?
Ah, ho scoperto un altro problema. Ammettendo che io sia loggato al forum perchè magari ho impostato il log permanente; se alla sessione successiva io sono connesso al forum, sul sito non viene mostrato. Quindi sul sito verrò autenticato come "guest", sul forum invece sarò loggato.
C'è qualche modo per ovviare (anche) a questo problema? Sembra come se SSI.php non sia in grado di riconoscere se io sia loggato o meno.

emanuele

SSI deve riconoscere se sei loggato, quindi ora il punto è: come stai determinando se sei loggato o meno nel tuo codice?
Per caso stai usando "sub-domini" differenti? (ad esempio forum.tuosito.it per il forum e www.tuosito.it per il sito?) In tal caso dovresti abilitare l'opzione dei cookie indipendenti dal sub-dominio (admin > configurazione > impostazioni server > cookies e sessione).


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

gfr1991

Ciao, il sito si trova in una cartella (public/simple/) e il sito per ora si trova in una cartella diversa (prova/), mentre successivamente sarà in root. Provo come mi hai detto e vedo se funziona. :)

emanuele



Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

gfr1991

Cioe  che ad ogni variabile $context dovrei sostituire "global $context"?

emanuele

Nope, aggiungi global $context; all'inizio dello script (prima dell'if).


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

gfr1991

Grazie.
Appena sono a casa provo a tutto e ti faccio sapere se funziona. Nel frattempo grazie ancora dell'aiuto.

emanuele



Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

gfr1991

Ciao; personalmente a me ora funziona, ma forse perchè ho eliminato tutti i cookie del sito; agli altri ancora non funziona e da lo stesso problema. Domani verificherò se a me continua a funzionare e comincerò a sperare che i cookie scadano :D
Sempre sul problema dei redirect: avrei bisogno di inserire un tag "rel="external"" nell'<a href="..."> che viene creato da ssi_logout, tu sai mica come si fa?
Ti ringrazio ancora.

emanuele

E' difficile sperare che i cookie scadano...se ad esempio hanno impostato "never" non scadranno che fra qualche anno... :P
Puoi però rinominare il cookie (da qualche parte in admin > config > server), così diverranno tutti invalidi e dovranno rifare tutti il login.

La funzione è nel file SSI.php, quindi apri il file, cerca la funzione ed aggiungi il rel al link. ;)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Advertisement: