Problema login con Safari

[email protected]

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.411
339
83
Se funziona con tutti gli altri, non potrebbe essere un problema di Safari e nelle sue impostazioni?
 

[email protected]

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:

[email protected]

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.411
339
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
 

[email protected]

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
820
18
18
60
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.
 

[email protected]

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
820
18
18
60
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.
 

[email protected]

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 [email protected] 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
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 0
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 7
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6

Discussioni simili