PHP Richiesta ajax non funzionante nei dispositivi IOS o macOS

Conta

Utente Iron
25 Marzo 2021
1
1
0
14
Sto lavorando ad un sistema di registrazione per questo sito: Bottlesbeach.eu
Fondamentalmente, quando un utente si registra o effettua il login, viene creato un cookie e all'interno di questo cookie è presente una stringa generata casualmente che verrà inserita anche nel database mysql nella tabella sessione . Quando si fa clic su Logout , il cookie dovrebbe essere cancellato e la stringa casuale all'interno del database mysql (l'ID di sessione della stringa) dovrebbe essere cancellata , questa azione di eliminare il cookie e la stringa di sessione nel database mysql l' ho fatta usando un post Ajax.

Index.php onclick log-out:
JavaScript:
    <?php 
$logged = false;
if (isset($_COOKIE["sessionid"])){
$logged = true;

?> 
    <script>
console.log("status: Logged");
var ahr = document.getElementById('ahr');
ahr.setAttribute('href', '');
ahr.innerHTML="Log-out";
ahr.onclick = function remokecookies() {
window.location = window.location + '#notlogged';
$.ajax({
type: "POST",
url: '/ajax.php',
data:{action:'removecks'},
cache: false,

});
}
window.onload = function() {
if(!window.location.hash) {
window.location = window.location + '#logged';
window.location.reload();

}
}

</script>

    <?
(Ovviamente ho inserito un reload perché altrimenti il testo del pulsante rimane come "log-out" anche se è stata eseguita la funzione ajax, e quindi il cookie è stato cancellato.)

Nell'indice ho creato una condizione, se il cookie c'è, significa che sei loggato, quindi in alto a destra ci sarà il pulsante di log out con la rispettiva funzione ajax onclick che ho mostrato in precedenza. Altrimenti verrà scritto login e cliccando su di esso si accederà al pannello di login.

Funzione Ajax (ajax.php):
PHP:
<?php
if($_POST['action'] == 'removecks') {
setcookie("sessionid", "", time() - 86400 * 30);
$hostname="";
$username="";
$password="";
$dbname="";
$ckvalue = $_COOKIE["sessionid"];
$conn = new mysqli($hostname,$username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
?> <script> console.log("Connection to db failed");</script><?
}
$query = "UPDATE users SET sessionid = '' WHERE sessionid = '$ckvalue'";
$stmt = $conn->prepare($query);
$stmt->bind_param("s", $sessionid);
$stmt->execute();
}

?>
[B]Tutto sembra funzionare nella versione desktop, ma da mobile (solo su dispositivi Apple) rimane il pulsante "log-out". Quindi, presumo che la funzione ajax non venga eseguita e il cookie non venga cancellato. Qualcuno saprebbe aiutarmi?
Grazie in anticipo! [/B]