To mój pierwszy post na tym forum ale nie pierwsza wizyta:) Zawsze znalazłem tu odp na moje problemy ale nie tym razem:( Siedzę już nad tym trzeci dzień...
Do rzeczy:
1. Loguję się na stronie poprzez formularz
<?php require_once('biblioteki.php'); naglowek('logowanie'); ?> <div id="log"> <fieldset> <legend> <h3>Moduł egzaminator</h3> </legend> <form action="log_index.php" method="post"> <p><label>Imię: <input name="imie"/></label></p> <p><label>Nazwisko: <input name="nazwisko"/></label></p> <p><label>Nr indeks: <input type="password" name="indeks"/></label></p> <input type="submit" value="zaloguj"/> </form> </fieldset> </div> <?php stopka(); ?>
2. Po zatwierdzeniu przenosi mnie do strony gdzie następuje sprawdzenie wpisanych danych i ustawienie sesji
<?php require_once('biblioteki.php'); naglowek('log_index'); if (($_POST['imie']) && ($_POST['nazwisko']) && ($_POST['indeks'])) { //proba logowania $imie = $_POST['imie']; $nazwisko = $_POST['nazwisko']; $indeks = $_POST['indeks']; if (loguj_admin($imie, $nazwisko, $indeks)) { //$uzytkownik = $indeks; //jezeli dana konbinacja jest w bazie to zgloszenie identyfikatora uzytkownika $_SESSION['uzyt_admin'] = $indeks; sprawdz_uzyt_admin(); menu_glowne_admin(); } else if (loguj_user($imie, $nazwisko, $indeks)) { $uzytkownik = $indeks; //jezeli dana konbinacja jest w bazie to zgloszenie identyfikatora uzytkownika $_SESSION['prawid_uzyt'] = $uzytkownik; sprawdz_prawid_uzyt(); tworz_HTML_URL('log_test_form.php', 'Rozpocznij test'); } else { } } else { sprawdz_uzyt_admin(); //naglowek('log_index'); menu_glowne_admin(); } stopka(); ?>
Teraz funkcje sprawdzające:
<?php function loguj_admin($imie, $nazwisko, $indeks) { $lacz = lacz_bd(); $zapytanie = "select * from administrator where imie = '".$imie."' and nazwisko = '".$nazwisko."' and indeks = '".$indeks."'"; $wynik = $lacz->query($zapytanie); if (!$wynik) { } if ($wynik->num_rows > 0) { return true; } else { return false; } } function sprawdz_uzyt_admin() { // sprawdzenie zalogowanie i powiadomienie, jeżeli nie { $indeks = $_SESSION['uzyt_admin']; $lacz = lacz_bd(); $zapytanie = "select imie, nazwisko from administrator where indeks = '".$indeks."'"; $wynik = $lacz->query($zapytanie); $wynik = wynik_bd_do_tablicy($wynik); foreach ($wynik as $rzad) { $imie = $rzad['imie']; $nazwisko = $rzad['nazwisko']; } //echo "Zalogowano jako ".$_SESSION['uzyt_admin']." "; tworz_HTML_URL('wylog.php', 'wyloguj'); //return true; } else { tworz_HTML_URL('logowanie.php', 'Logowanie'); stopka(); exit; // return false; } }
3. Kiedy wybieram już kolejną stronę sesja znika:(
-Wszystkie strony poza tą w pkt1 rozpoczynają się od session_start() - i nie ma przed tym innych znaków.
-Na localhost działa ok.
-I najciekawsze -> stronka jest na serwerze 4 dzień. Kiedy wrzuciłem ją wszystko chodziło, sesje działały. Po dwóch dniach sesja działa tylko na stronie z pkt2 a na pozostałych nie. Nie mam już siły do tego.
Ktoś podpowie?