Problema login con Safari

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao a tutti ,
vi chiedo una mano ....

Ho una piccola pagina web , che visualizza un calendario , alla quale si accede dopo un login .

Tutto funziona alla meraviglia con i più comuni browser ( chrome , firefox , edge , etc ) ma se si prova ad accedere al calendario usando Safari ... dopo aver inserito la password ed aver cliccato su " Entra " .... NON SUCCEDE NULLA .... il campo password si svuota ma non si viene reindirizzati alla pagina del calendario

Qualcuno sa darmi una dritta ?

Posto a seguire il codice della pagina di login

Grazie in anticipo

PHP:
session_start(); 
$password="MiaPassword";     
if (isset($_SESSION['login'])) { 
    if (isset($_POST['logout'])) {
        unset($_SESSION['login']);
        $messaggio = "Logout effettuato con successo!";
    } else {
        header("Location: login.php"); 
    } 
} else {
    if (isset($_POST['password'])) {
        if ($_POST['password'] == $password) {
            $_SESSION['login'] = "verificata";             
            header("Location: calendario.php");
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
Se funziona con tutti gli altri, non potrebbe essere un problema di Safari e nelle sue impostazioni?
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao Max e Ninja .... grazie per le risposte ....

Ho aggiunto exit; ... dopo header () .... ma non cambia nulla ....

Max ..... francamente non saprei se possa dipendere dalle opzioni di Safari .... sono un Androidiano convinto e il mondo Apple .... lo conosco pochissimo ...

non saprei .....
 
Ultima modifica:

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Qualcuno ha qualche idea su come si possa risolvere ??? ... .

io sto cercando un po ovunque in giro per il web .... ma non riesco a venirne fuori .....

.......
 

ninja72

Utente Attivo
15 Giu 2020
24
4
3
La logica della if non mi convince molto.

PHP:
if (isset($_SESSION['login'])) {
    header("Location: calendario.php");
    exit;
}elseif (isset($_POST['password'])) {
    if ($_POST['password'] == $password) {
        $_SESSION['login'] = "verificata";
        header("Location: calendario.php");
        exit;
    }
}

sulla pagina calendario.php ci sarà un link con riferimento una pagina di logout.php con codice simile a questo.

PHP:
session_start();
session_destroy();
header("Location: login.php");
exit;
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
La logica della if non mi convince molto.
Ma se funziona su tutti tranne che safari ci sarà un motivo? Se FF non da problemi credo poco a errori di codice, poi le vie del Signore sono infinite
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao

Nel frattempo ho scoperto cosa " non piace ".......e cioè che ci sia la compresenza di una SESSION ed un iFRAME .... E' questo che blocca il reindirizzamento.

Infatti se , senza modificare il codice , accedo all' URL puro della pagina di login ...e non dal suo iFRAME .....tutto funziona correttamente .

Il problema è che devo necessariamente usare un frame ......e non so come smarcare il problema

Suggerimenti ??
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Il problema è proprio di Safari, a leggere in giro per la rete, sembra essere dovuto al fatto che c'è una protezione su Cross-Site Tracking che è ON su Safari.
Ora, tu non puoi ovviamente metterla a OFF via software, se no addio protezione ;-) ne puoi chiedere a tutti quelli che visitano la tua pagina di farlo manualmente, se no fuggirebbero all'istante, penserebbero che c'è qualche tranello sotto.
Cosa puoi fare: cercare soluzioni in rete, magari iniziando a leggere qui: https://code-examples.net/it/q/9787af
Oppure ripensare completamente alla logica del tuo sito ed evitare l'uso di un iframe.
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Il problema è proprio di Safari, a leggere in giro per la rete, sembra essere dovuto al fatto che c'è una protezione su Cross-Site Tracking che è ON su Safari.
Ora, tu non puoi ovviamente metterla a OFF via software, se no addio protezione ;-) ne puoi chiedere a tutti quelli che visitano la tua pagina di farlo manualmente, se no fuggirebbero all'istante, penserebbero che c'è qualche tranello sotto.
Cosa puoi fare: cercare soluzioni in rete, magari iniziando a leggere qui: https://code-examples.net/it/q/9787af
Oppure ripensare completamente alla logica del tuo sito ed evitare l'uso di un iframe.
Ciao MarcoGrazia e grazie per la risposta,

in realtà è da un paio di giorni che giro in rete cercando una soluzione , ma senza risultati .

ho provato anche la soluzione dell'header proposta nell'articolo che mi hai suggerito :

<?php
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
?>

Ma non risolve nulla .... e le altre soluzioni proposte a seguire , sempre all'interno di quell'articolo , devo ammettere che sono già troppo complicate perchè riesca a testarle in completa autonomia...
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Non la risolve perché se leggi tutto l'articolo, ad un certo punto dice anche che Apple ha modificato quel sistema e quindi il codice P3P non lo accetta.
Purtroppo a problemi complessi, non ci sono risposte semplici.
 

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao a tutti , ho risolto grazie all' aiuto di un utente del forum iprogrammatori.it ... hormus ... che ringrazio ancora

Posto qui la soluzione nel caso possa essere di supporto a qualche altro utente ...

Esempio login.php con 0 byte di contenuto se si usa header Location.

PHP:
<?php
$location = true;
$logout = false;
$test = 'login';
$messaggio = $password = '';
if(session_start()) {
$password="MiaPassword";  
if (($logout = (!isset($_POST['password']) && isset($_SESSION['login'])))) {
    if (isset($_POST['logout'])) {
        unset($_SESSION['login']);
        $location = false;
        //restore session cookie samedomain header path /
        header('Location: login.php');
    }
} else {
    if (isset($_POST['password'])) {
        if ($_POST['password'] === $password) {
            $_SESSION['login'] = "verificata";            
            $location = false;
            //restore session cookie samedomain header path /
            header("Location: calendario.php");
        } else {
            $messaggio = "La password non corrisponde<br>";
        }
    }
}
}

?>
<?php
if($logout) {
$test = 'logout';
} else {
$test = 'login';
}
if($location): ?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $test; ?></title>
</head>
<body>
<form name="<?php echo $test; ?>" method="POST" action="login.php">
<?php if(!$logout): ?>
<input type="text" id="password" name="password" value=""><br>
<input type="submit"><br>
<?php else: ?>
<button type="submit" id="logout" name="logout">logout</button><br>
<?php endif; ?>
<?php echo $messaggio; ?>
</form>
</body>
</html>
<?php endif; ?>
<?php unset($location, $logout, $messaggio, $test, $password); $_POST = array(); ?>

Quando l'agente utente riconosce l'elemento frame effettua una seconda connessione per recuperarla tale codice html.
 
Ultima modifica:

Hormus

Utente Attivo
26 Giu 2020
83
10
8
Mi scusi Alex@1983 ma è hormus, sono lieto ad averla aiutato poiché vedevo il suo problema ovunque:D
EDIT: grazie per aver sistemato.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
F Problema con pagine login in PHP PHP 2
Fuego2806 [Joomla] Problema di login con il nuovo template Joomla 0
S problema con ajax semplice login script Javascript 8
L problema login con variabili PHP 7
S Problema con login e cookie PHP 5
S Problema di login con PDO PHP 2
P Problema con login e password PHP 54
L Problema con login in Dreamweaver CS5 PHP 2
I [PHP]Problema sito con form login in ogni pagina PHP 7
T problema con la finestra di login riservata PHP 1
B Problema con login pagina web-collegamento al db Classic ASP 7
Web93 PROBLEMA SITO WEB WORDPRESS - LOGIN DASHBOARD Programmazione 3
A problema form login sicuro PHP 0
S problema form login PHP 3
otto9due [risolto] Problema sessioni php e login PHP 5
S Problema nella pagina di registrazione e login PHP 2
M Email non valida - Problema login PHP 3
L problema login fatto da javascript PHP 1
A Problema SESSION e LOGIN PHP 1
P Problema di login jQuery 21
F problema login PHP 2
Web Designer Soluzione al problema Login su MyBB CMS (Content Management System) 0
Longo8 Problema al login su forum mrwebmaster Discussioni Varie 2
SolidSnake4 problema login php+ajax PHP 2
N Problema login.php help PHP 0
luix login. problema?. Classic ASP 27
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 0
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 1

Discussioni simili