Wątek przeniesiony 2024-02-26 00:20 z Python przez Riddle.

Jak poprawnie obsłużyć sesję?

0

Witam mam pewien problem , mianowicie kod rejestruje mi użytkownika pojawia się w bazie danych. Podczas logowania wyświetla jego imię z bazy. Ale po udanym logowaniu gdy chce puścić użytkownika dalej z jego zapisanym id to sie gubi gdzieś.. i wywala mnie na stronę logowania , tak jak w kodzie. Chce po udanym logowaniu przejść do storny /xxx.php a w niej przycisk do /xxx.php ale by uzytkownik mia swoje id ciagle bo nagle trafia na formularz ktory musi wypelnic ze swoim id. Jeśli źle tłumacze wybaczcie :D a więc tak
tak mam plik register.php login.php db.php . Połączenie z baza jest ponieważ podczas rejestracji widze użytkowników , ale gdy chce z pliku login.php przekierować na inny zachowując sesje to nie moge. Dziękuje za pomoc

register.php

<?php
include 'db.php'; 


if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $login = $_POST['login'];
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT); 
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];

    
    $sql = "INSERT INTO users (login, password, firstname, lastname) VALUES (?, ?, ?, ?)";

    try {
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$login, $password, $firstname, $lastname]);
        echo "Rejestracja przebiegła pomyślnie.";
    } catch (PDOException $e) {
        echo "Błąd podczas rejestracji: " . $e->getMessage();
    }
}
?>

<form method="post">
    Login: <input type="text" name="login" required><br>
    Hasło: <input type="password" name="password" required><br>
    Imię: <input type="text" name="firstname" required><br>
    Nazwisko: <input type="text" name="lastname" required><br>
    <input type="submit" value="Zarejestruj się">
</form>

login.php

<?php
include 'db.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $login = $_POST['login'];
    $password = $_POST['password'];

    /ie
    $sql = "SELECT * FROM users WHERE login = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$login]);
    $user = $stmt->fetch();


    if ($user && password_verify($password, $user['password'])) {
        echo "Logowanie pomyślne. Witaj, " . $user['firstname'] . "!";
    } else {
        echo "Błędny login lub hasło.";
    }
}
?>

<form method="post">
    Login: <input type="text" name="login" required><br>
    Hasło: <input type="password" name="password" required><br>
    <input type="submit" value="Zaloguj się">
</form>

db.php

<?php
$host = 'mysql8'; 
$db_name = ''; 
$db_user = ''; 
$db_password = ''; 

try {
    $pdo = new PDO("mysql:host=$host;dbname=$db_name", $db_user, $db_password);
    
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Nie można połączyć z bazą danych: " . $e->getMessage());
}
?>
2
  1. To jest PHP a nie Python...
  2. Nie widzę tu żadnych sesji...
0

Nie ma tutaj innej strony niż logowania i rejestracji.

0
Riddle napisał(a):

Nie ma tutaj innej strony niż logowania i rejestracji.

I nic do sesji nie jest zapisywane.

0

Wybaczcie juz jestm tak zjechany ze mi się miesza teoche

0
<?php session_start(); echo "loggedin: "; var_dump($_SESSION['loggedin']); echo "user_id: "; var_dump(isset($_SESSION['user_id'])); <!DOCTYPE html> <html lang="pl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Wprowadź Nowe Godziny</title> <style> body { font-family: Arial, sans-serif; background-color: #f0f0f0; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; height: 100vh; } .form-container { background-color: #ffffff; padding: 20px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); text-align: center; } .form-container select, .form-container input[type="date"], .form-container input[type="number"], .form-container input[type="text"], .form-container input[type="file"] { width: 100%; padding: 10px; margin-top: 10px; border: 1px solid #ccc; border-radius: 5px; box-sizing: border-box; } .form-container button { margin-top: 20px; background-color: #4caf50; color: #ffffff; padding: 12px 20px; border: none; border-radius: 5px; cursor: pointer; transition: background-color 0.3s; } .form-container button:hover { background-color: #45a049; } .confirmation { display: none; text-align: center; margin-top: 20px; } .confirmation.show { display: block; } </style> </head> <body>
<form id="workHoursForm" method="post" action="submit_hours.php" enctype="multipart/form-data">
Wybierz datę:
<input type="date" id="workDate" name="workDate" required="required"> <button type="button" onclick="nextPage('chooseDate', 'rate')">Dalej</button>
Podaj stawkę godzinową w DKK:
<input type="number" id="hourlyRateInput" name="hourlyRate" required="required"> <button type="button" onclick="nextPage('rate', 'workType')">Dalej</button>
Wybierz typ pracy:
<select id="type" name="type" required="required" onchange="displayWorkFields()"> <option value="none">-- Wybierz --</option> <option value="godzinowka">Godzinówka</option> <option value="pakiet">Pakiet</option> <option value="metry">Metry</option> </select>
<input type="number" id="hours" name="hours" min="0" placeholder="Ilość godzin">
<input type="text" name="workDescriptionGodzinowka" placeholder="Opis wykonywanej pracy" required="required">
<input type="text" name="unfinishedReasonGodzinowka" placeholder="Co nie zostało zrobione i dlaczego (opcjonalne)">
<input type="number" id="pricePerPackage" name="pricePerPackage" min="0" placeholder="Ile DKK za pakiet">
<input type="number" id="packagesCompleted" name="packagesCompleted" min="0" placeholder="Ile pakietów zrobionych">
<input type="number" id="peopleCountPackage" name="peopleCountPackage" min="0" placeholder="Ile osób robiło">
<input type="text" name="workDescriptionPakiet" placeholder="Opis wykonywanej pracy" required="required">
<input type="text" name="unfinishedReasonPakiet" placeholder="Co nie zostało zrobione i dlaczego (opcjonalne)">
<input type="number" id="meters" name="meters" min="0" placeholder="Ile metrów²">
<input type="number" id="pricePerMeter" name="pricePerMeter" min="0" placeholder="Ile za m² w DKK">
<input type="number" id="peopleCount" name="peopleCount" min="0" placeholder="Ile osób robiło">
<input type="text" name="workDescriptionMetry" placeholder="Opis wykonywanej pracy" required="required">
<input type="text" name="unfinishedReasonMetry" placeholder="Co nie zostało zrobione i dlaczego (opcjonalne)">
<input type="text" id="address" name="address" placeholder="Adres" required="required">
<input type="file" id="photoUpload" name="photos[]" multiple="multiple">
<small>Import zdjęć jest opcjonalny.</small>
<input type="hidden" id="totalHours" name="totalHours"> <button type="button" onclick="calculateAndSubmit()">Wyślij</button>
</form>
<script> function nextPage(currentPage, nextPage) { document.getElementById(currentPage).style.display = "none"; document.getElementById(nextPage).style.display = "block"; } function displayWorkFields() { const type = document.getElementById("type").value; document.getElementById("godzinowkaFields").style.display = "none"; document.getElementById("pakietFields").style.display = "none"; document.getElementById("metryFields").style.display = "none"; document.getElementById("additionalFields").style.display = "none"; if (type === 'godzinowka') { document.getElementById("godzinowkaFields").style.display = "block"; } else if (type === 'pakiet') { document.getElementById("pakietFields").style.display = "block"; } else if (type === 'metry') { document.getElementById("metryFields").style.display = "block"; } if (type !== 'none') { document.getElementById("additionalFields").style.display = "block"; } } function calculateAndSubmit() { const type = document.getElementById("type").value; let totalHours = 0; if (type === 'godzinowka') { totalHours = parseFloat(document.getElementById("hours").value); } else if (type === 'pakiet') { const pricePerPackage = parseFloat(document.getElementById("pricePerPackage").value); const packagesCompleted = parseFloat(document.getElementById("packagesCompleted").value); const peopleCountPackage = parseFloat(document.getElementById("peopleCountPackage").value); const hourlyRate = parseFloat(document.getElementById("hourlyRateInput").value); totalHours = (pricePerPackage * packagesCompleted) / (peopleCountPackage * hourlyRate); } else if (type === 'metry') { const meters = parseFloat(document.getElementById("meters").value); const pricePerMeter = parseFloat(document.getElementById("pricePerMeter").value); const peopleCount = parseFloat(document.getElementById("peopleCount").value); const hourlyRate = parseFloat(document.getElementById("hourlyRateInput").value); totalHours = (meters * pricePerMeter) / (peopleCount * hourlyRate); } if (type === 'none' || isNaN(totalHours) || totalHours <= 0) { alert("Proszę wybrać typ pracy i upewnić się, że wprowadzone dane są poprawne."); return false; } totalHours = Math.round(totalHours * 2) / 2; document.getElementById("totalHours").value = totalHours; document.getElementById("workHoursForm").submit(); return true; // Pozwala na przesłanie formularza } </script> </body> </html>

0

Nadal nigdzie nie ma zapisywania do sesji

0

kurde xD to jest login.php

<?php
session_start(); 
include 'db.php'; 

if (isset($_POST['logout'])) {
    session_destroy(); 
    header("Location: login.php"); 
}


if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['login'])) {
    $login = $_POST['login'];
    $password = $_POST['password'];

    
    $sql = "SELECT * FROM users WHERE login = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$login]);
    $user = $stmt->fetch();

    /
    if ($user && password_verify($password, $user['password'])) {
        $_SESSION['loggedin'] = true;
        $_SESSION['username'] = $user['firstname']; 
        
    } else {
        echo "Błędny login lub hasło.";
    }
}

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
    echo "Logowanie pomyślne. Witaj, " . $_SESSION['username'] . "!";

    echo '<form method="post"><input type="submit" name="logout" value="Wyloguj"></form>';
    echo '<a href="nowegodziny.php">Wpisz nowe godziny</a><br>';
    echo '<a href="przeglad.php">Mój przegląd</a>';
} else {
    // Formularz logowania
    ?>
    <form method="post">
        Login: <input type="text" name="login" required><br>
        Hasło: <input type="password" name="password" required><br>
        <input type="submit" value="Zaloguj się">
    </form>
    <?php
}
?>

a to jest plik na ktory ma być przekierowanie ale sesja chcialem by byla zachowywana

<?php
session_start();

include 'db.php'; 


if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
   
    echo "Witaj, " . $_SESSION['username'];
} else {
    // Użytkownik nie jest zalogowany
    header("Location: login.php"); 
    exit;
}
<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Wprowadź Nowe Godziny</title>
    <style>
         body {
            font-family: Arial, sans-serif;
            background-color: #f0f0f0;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        .form-container {
            background-color: #ffffff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            text-align: center;
        }
        .form-container select,
        .form-container input[type="date"],
        .form-container input[type="number"],
        .form-container input[type="text"],
        .form-container input[type="file"] {
            width: 100%;
            padding: 10px;
            margin-top: 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
            box-sizing: border-box;
        }
        .form-container button {
            margin-top: 20px;
            background-color: #4caf50;
            color: #ffffff;
            padding: 12px 20px;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        .form-container button:hover {
            background-color: #45a049;
        }
        .confirmation {
            display: none;
            text-align: center;
            margin-top: 20px;
        }
        .confirmation.show {
            display: block;
        }
    </style>
</head>
<body>
    <div class="form-container">
        <form id="workHoursForm" method="post" action="submit_hours.php" enctype="multipart/form-data">


            <div id="chooseDate">
                
                <h2>Wybierz datę:</h2>
                <input type="date" id="workDate" name="workDate" required>
                <button type="button" onclick="nextPage('chooseDate', 'rate')">Dalej</button>
            </div>

            <div id="rate" style="display:none;">
                
                <h2>Podaj stawkę godzinową w DKK:</h2>
                <input type="number" id="hourlyRateInput" name="hourlyRate" required>
                <button type="button" onclick="nextPage('rate', 'workType')">Dalej</button>
            </div>

            <div id="workType" style="display:none;">
                
                <h2>Wybierz typ pracy:</h2>
                <select id="type" name="type" required onchange="displayWorkFields()">
                    <option value="none">-- Wybierz --</option>
                    <option value="godzinowka">Godzinówka</option>
                    <option value="pakiet">Pakiet</option>
                    <option value="metry">Metry</option>
                </select>
                <div id="godzinowkaFields" style="display:none;">
                    <input type="number" id="hours" name="hours" min="0" placeholder="Ilość godzin"><br>
                    <input type="text" name="workDescriptionGodzinowka" placeholder="Opis wykonywanej pracy" required><br>
                    <input type="text" name="unfinishedReasonGodzinowka" placeholder="Co nie zostało zrobione i dlaczego (opcjonalne)"><br>
                </div>
                <div id="pakietFields" style="display:none;">
                    <input type="number" id="pricePerPackage" name="pricePerPackage" min="0" placeholder="Ile DKK za pakiet"><br>
                    <input type="number" id="packagesCompleted" name="packagesCompleted" min="0" placeholder="Ile pakietów zrobionych"><br>
                    <input type="number" id="peopleCountPackage" name="peopleCountPackage" min="0" placeholder="Ile osób robiło"><br>
                    <input type="text" name="workDescriptionPakiet" placeholder="Opis wykonywanej pracy" required><br>
                    <input type="text" name="unfinishedReasonPakiet" placeholder="Co nie zostało zrobione i dlaczego (opcjonalne)"><br>
                </div>
                <div id="metryFields" style="display:none;">
                    <input type="number" id="meters" name="meters" min="0" placeholder="Ile metrów²"><br>
                    <input type="number" id="pricePerMeter" name="pricePerMeter" min="0" placeholder="Ile za m² w DKK"><br>
                    <input type="number" id="peopleCount" name="peopleCount" min="0" placeholder="Ile osób robiło"><br>
                    <input type="text" name="workDescriptionMetry" placeholder="Opis wykonywanej pracy" required><br>
                    <input type="text" name="unfinishedReasonMetry" placeholder="Co nie zostało zrobione i dlaczego (opcjonalne)"><br>
                </div>
                
                <div id="additionalFields" style="display:none;">
                    <input type="text" id="address" name="address" placeholder="Adres" required><br>
                    <input type="file" id="photoUpload" name="photos[]" multiple><br>
                    <small>Import zdjęć jest opcjonalny.</small>
                </div>
                <input type="hidden" id="totalHours" name="totalHours">
                <button type="button" onclick="calculateAndSubmit()">Wyślij</button>
            </div>
        </form>
    </div>

    <script>
        function nextPage(currentPage, nextPage) {
            document.getElementById(currentPage).style.display = "none";
            document.getElementById(nextPage).style.display = "block";
        }

        function displayWorkFields() {
            const type = document.getElementById("type").value;
            document.getElementById("godzinowkaFields").style.display = "none";
            document.getElementById("pakietFields").style.display = "none";
            document.getElementById("metryFields").style.display = "none";
            document.getElementById("additionalFields").style.display = "none"; 
            if (type === 'godzinowka') {
                document.getElementById("godzinowkaFields").style.display = "block";
            } else if (type === 'pakiet') {
                document.getElementById("pakietFields").style.display = "block";
            } else if (type === 'metry') {
                document.getElementById("metryFields").style.display = "block";
            }
            if (type !== 'none') {
                document.getElementById("additionalFields").style.display = "block"; 
            }
        }

        function calculateAndSubmit() {
            const type = document.getElementById("type").value;
            let totalHours = 0;

            if (type === 'godzinowka') {
                totalHours = parseFloat(document.getElementById("hours").value);
            } else if (type === 'pakiet') {
                const pricePerPackage = parseFloat(document.getElementById("pricePerPackage").value);
                const packagesCompleted = parseFloat(document.getElementById("packagesCompleted").value);
                const peopleCountPackage = parseFloat(document.getElementById("peopleCountPackage").value);
                const hourlyRate = parseFloat(document.getElementById("hourlyRateInput").value);

                totalHours = (pricePerPackage * packagesCompleted) / (peopleCountPackage * hourlyRate);
            } else if (type === 'metry') {
                const meters = parseFloat(document.getElementById("meters").value);
                const pricePerMeter = parseFloat(document.getElementById("pricePerMeter").value);
                const peopleCount = parseFloat(document.getElementById("peopleCount").value);
                const hourlyRate = parseFloat(document.getElementById("hourlyRateInput").value);

                totalHours = (meters * pricePerMeter) / (peopleCount * hourlyRate);
            }

            
            if (type === 'none' || isNaN(totalHours) || totalHours <= 0) {
                alert("Proszę wybrać typ pracy i upewnić się, że wprowadzone dane są poprawne.");
                return false; // Zatrzymuje przesyłanie formularza
            }

            totalHours = Math.round(totalHours * 2) / 2; // Zaokrąglamy do najbliższej półgodziny
            document.getElementById("totalHours").value = totalHours;

            
            document.getElementById("workHoursForm").submit();

            return true; 
        }
    </script>
</body>
</html> 

0

Takie mieszanie html, php, js'a i sql to jest proszenie się o kłopoty.

0

@Dawid Nowak w pliku na który chcesz przekierować masz "niedomknięty php" (linijka 14). Wywali Tobie error. Pomijając ten błąd to kod powinien działać. Zmień w login.php linijkę od 11 do 29 na coś takiego:

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['login'])) {
	/*
    $login = $_POST['login'];
    $password = $_POST['password'];

    
    $sql = "SELECT * FROM users WHERE login = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$login]);
    $user = $stmt->fetch();
    */

    if (1 == 1) {
        $_SESSION['loggedin'] = true;
        $_SESSION['username'] = 'TestUser'; 
    } else {
        echo "Błędny login lub hasło.";
    }
}

i zobacz czy na tym Tobie zadziała. Jeżeli tak to masz gdzieś błąd w tej walidacji.

0
leonpro778 napisał(a):

@Dawid Nowak w pliku na który chcesz przekierować masz "niedomknięty php" (linijka 14). Wywali Tobie error. Pomijając ten błąd to kod powinien działać. Zmień w login.php linijkę od 11 do 29 na coś takiego:

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['login'])) {
	/*
    $login = $_POST['login'];
    $password = $_POST['password'];

    
    $sql = "SELECT * FROM users WHERE login = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$login]);
    $user = $stmt->fetch();
    */

    if (1 == 1) {
        $_SESSION['loggedin'] = true;
        $_SESSION['username'] = 'TestUser'; 
    } else {
        echo "Błędny login lub hasło.";
    }
}

i zobacz czy na tym Tobie zadziała. Jeżeli tak to masz gdzieś błąd w tej walidacji.

A sprawdzisz mi tutaj co robie nie tak ? Użytkownik się rejestruję trafia do bazy danych , ale podczas próby logowania ciągle wraca do strony logowania..gdy wpisuje zle hasło np to mam komunikat że niepoprawne hasło. Chce po prostu po kliknieciu zaloguj przekierować do pliku menu.php

plik db.php

<?php
$host = 'mysql8'; 
$db_name = '3ak';
$db_user = 'ak'; 
$db_password = ''; 

try {
    $pdo = new PDO("mysql:host=$host;dbname=$db_name", $db_user, $db_password);
    // Ustawienie opcji PDO na wyjątki
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Nie można połączyć z bazą danych: " . $e->getMessage());
}
?>


plik rejestracja.php

<?php
require_once 'db.php'; 
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $imie = $_POST['imie'];
    $nazwisko = $_POST['nazwisko'];
    $login = $_POST['login'];
    $haslo = password_hash($_POST['haslo'], PASSWORD_DEFAULT);

    try {
        $sql = "INSERT INTO pracownicy (imie, nazwisko, login, haslo) VALUES (?, ?, ?, ?)";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$imie, $nazwisko, $login, $haslo]);

        echo "Rejestracja udana. <a href='logowanie.php'>Zaloguj się</a>";
    } catch (PDOException $e) {
        echo "Błąd przy rejestracji: " . $e->getMessage();
    }
}
?>

<form method="post" action="rejestracja.php">
    Imię: <input type="text" name="imie">
    Nazwisko: <input type="text" name="nazwisko">
    Login: <input type="text" name="login">
    Hasło: <input type="password" name="haslo">
    <input type="submit" value="Zarejestruj się">
</form>


plik logowanie.php

<?php
session_start();
require_once 'db.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $login = $_POST['login'];
    $haslo = $_POST['haslo'];

    try {
        $sql = "SELECT id, imie, nazwisko, haslo FROM pracownicy WHERE login = ?";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$login]);
        if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            if (password_verify($haslo, $row['haslo'])) {
                $_SESSION['login'] = $login;
                $_SESSION['id'] = $row['id'];
                $_SESSION['imie'] = $row['imie'];
                $_SESSION['nazwisko'] = $row['nazwisko'];
                header('Location: menu.php');
                exit();
            } else {
                echo "Niepoprawne hasło";
            }
        } else {
            echo "Nie znaleziono użytkownika";
        }
    } catch (PDOException $e) {
        echo "Błąd logowania: " . $e->getMessage();
    }
}
?>

<form method="post" action="logowanie.php">
    Login: <input type="text" name="login">
    Hasło: <input type="password" name="haslo">
    <input type="submit" value="Zaloguj">
</form>


plik menu.php

<?php
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once 'db.php'; 
?>

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Panel użytkownika</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>

<div class="container">
    <?php
    if (isset($_SESSION['login'])) {
        echo "<div class='welcome-msg'>Witaj " . htmlspecialchars($_SESSION['imie']) . " " . htmlspecialchars($_SESSION['nazwisko']) . ", co dziś robimy?</div>";
        
        echo "<div class='action-buttons'>
                <a href='formularz.php' class='action-button'>Przejdź do formularza</a>
                <a href='#' class='action-button'>Inna akcja</a>
                <a href='wyloguj.php' class='action-button'>Wyloguj się</a>
              </div>";
        
        echo "<button id='showUserIdBtn'>Zobacz moje ID</button>";
        echo "<div id='userId' style='display:none;'>Twoje ID użytkownika to: " . htmlspecialchars($_SESSION['id']) . "</div>";
    } else {
        echo "Proszę użyć formularza do logowania.";
    }
    ?>
</div>

<script>
document.getElementById('showUserIdBtn').addEventListener('click', function() {
    var userId = document.getElementById('userId');
    userId.style.display = userId.style.display === 'none' ? 'block' : 'none';
});
</script>

</body>
</html>

0

Weź sobie po prostu zrób var_dumpa na sesji + die() i zobaczysz co tam masz

0

array(4) { ["login"]=> string(3) "111" ["id"]=> int(3) ["imie"]=> string(3) "111" ["nazwisko"]=> string(3) "111" } mam to czyli niby jest ok a i tak nie przekierowuje do pliku menu.php

0

A wchodzi Ci w ogóle do tego ifa z header('Location: menu.php');?

0

ale ciemniak ze mnie... chyba usunąłem niepotrzebnie wszystko z serwera , a korzystam z home.pl bo mam też coś takiego Warning: PHP Startup: open(session_data/sess_6rvh6orrg233aq76oa1ditlqr9, O_RDWR) failed: No such file or directory (2) in /logowanie/testy/logowanie.php on line 4

Warning: PHP Startup: Failed to read session data: files (path: session_data) in /logowanie/testy/logowanie.php on line 4
Połączenie z bazą danych nawiązane.array(4) { ["login"]=> string(3) "111" ["id"]=> int(3) ["imie"]=> string(3) "111" ["nazwisko"]=> string(3) "111" } rozumiem że musze mieć folder do zapisywania sesji tak ?

0

Nie, komunikat błędu wszystko Ci mówi przecież

No such file or directory (2) in /logowanie/testy/logowanie.php on line 4

Więc pewnie chodzi o to, że nie znajduje pliku db.php. Sprawdź, czy masz poprawną ścieżkę

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