Brak widoczności cookie.

0

Dzień dobry. Na moim lokalnym serwerze na localhost'cie wszystko działa. Jednak na dhosting, po wrzuceniu pliku na serwer (do katalogu public_html/test/) nie działają cookie. Po zalogowaniu nie widzi pliku cookie, albo może źle go koduje? Czort wie. Jak mogę to sprawdzić?

Mój plik, który odczytuje stan logowania, zwraca Niezalogowany a, co oznacza brak pliku cookie w php

<?php

    include_once 'cookie.php';
    include_once 'func.php';
    
    if (isset($_COOKIE['fill_abc_1f4dea']))
    {
        $id = checkForAccess($_COOKIE['fill_abc_1f4dea']);
        
        echo "Niezalogowany c<br>";
    
        if ($id != -1)
        {
            useDefaultDB();
            
            $res = executeQuery("SELECT fullname FROM logins WHERE id='$id'");
            
            if (!hasRows($res))
            {
                echo "Niezalogowany b";
                return;
            }
            
            echo $res->fetch_row()[0];
            return;
        }
    }
    
    echo "Niezalogowany a";

?>

Plik z logowaniem:

<?php
    if (!isset($_POST["log"], $_POST["pass"]))
        die("ERROR 1");
    
    include "func.php";
    include 'cookie.php';
    
    useDefaultDB();
    $res = executeQuery("SELECT id, login, password " . 
                        "FROM logins " .
                        "WHERE login='" . htmlspecialchars($_POST["log"]) . "' " .
                        "AND password='" . htmlspecialchars($_POST["pass"]) . "';");
   
    if (hasRows($res))
    {
        setCookieAfterLogin(600, $res->fetch_row()[0]);
        
        echo("OK");
    }
?>

Na lokalu działa. Na dhosting - nie. Nawet do nich dzwoniłem, czy mają jakieś blokady, ale powiedzieli, że nie. Może chodzi o katalog test?
Dzięki ;)

PS. Oczywiście hasło przesyłam zakodowane ;)

2

Zacznij może od sprawdzenia różnic w php.ini między dev a produkcją. Do sprawdzenia cookie.domain, cookie.path i cookie httpsonly

0

Kuźwa, gdzie tu można w internetach znaleźć opisaną listę ze wszystkimi parametrami ini_get_all("session");

Mam session.cookie_path = /

czy to może być powód?

  'session.cookie_path' => 
    array (size=3)
      'global_value' => string '/' (length=1)
      'local_value' => string '/' (length=1)
      'access' => int 7

I drugie pytanie: jak to zmienić? Nie mam dostępu do php.ini, jedynie do .htaccess i ew. przez php.

0

Znalazłem tu:

https://drupal.stackexchange.com/questions/75367/setting-cookie-domain-variable-for-specific-folder-structure
i tu:
https://www.php.net/manual/en/session.configuration.php#ini.session.cookie-domain

ale nie działa :(

Pozytyw jest taki, że w głównej domenie działa. Mogę utworzyć subdomenę i podpiąć pod nią ten katalog, ale fajnie jak nauczę się i z subkatalogu

1 użytkowników online, w tym zalogowanych: 0, gości: 1