Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Menu ZALOGOWANI/NIEZALOGOWANI
Forum PHP.pl > Forum > Przedszkole
boro11
Witam, od dawna interesuję się tematyką www, ale do tej pory robiłem strony jedynie w xhtml/css, ale teraz z racji większej ilośc czasu postanowiłem nauczyć się czegoś ambitniejszego czyli PHP.
Do tego celu wymyśliłem sobie że napiszę skrypt dla strony z różnymi żartami itp.

Niestety stanąłem na podstawach..

Znalazłem skrypt rejestracji i logowania i zaadaptowałem go do mojej strony. Następnie podzieliłem stronę na sekcję (header i footer). Obecnie próbowałem zrobić menu które zmieniało by się w zależnośc od tego czy użytkownik jest zalogowany czy nie. Udało mi się nawet taki efekt osiągnąć ale ucinało mi większość strony bo jak ktoś nie był zalogowany to widział tylko kawałek z sekcji header. Trochę poszperałem i wynalazłem coś takiego:

  1. <div id="menu">
  2. <?
  3. if($_SESSION['login'])
  4. {
  5. ?>
  6. <ul>
  7. <li><div id="but1"><a href="/index.php">Home</a></div></li>
  8. <li><div id="but2"><a href="/poczekalnia.php">Poczekalnia</a></div></li>
  9. <li><div id="but3"><a href="/top.php">Top</a></div></li>
  10. <li><div id="but4"><a href="/wyloguj.php">Wyloguj</a></div></li>
  11. <li><div id="but5"><a href="/konto.php">Konto</a></div></li>
  12. </ul>
  13. <?
  14. }
  15. else
  16. {
  17. ?>
  18. <ul>
  19. <li><div id="but1"><a href="/index.php">Home</a></div></li>
  20. <li><div id="but2"><a href="/poczekalnia.php">Poczekalnia</a></div></li>
  21. <li><div id="but3"><a href="/top.php">Top</a></div></li>
  22. <li><div id="but4"><a href = "java script:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">Loguj</a></p></div></li>
  23. <li><div id="but5"><a href="/rejestracja.php">Rejestracja</a></div></li>
  24. </ul>
  25.  
  26. <?
  27. }
  28. ?>
  29. </div>


Wnioskuję z tego że wystarczyłoby znać nazwę sesji logowania żeby wszystko zadziałało i tu pojawią się problem..

Oto skrypt który jest odpowiedzialny za logowanie:

  1. <?
  2. $login = $_POST['login'];
  3. $haslo = $_POST['haslo'];
  4. $haslo = addslashes($haslo);
  5. $login = addslashes($login);
  6. $login = htmlspecialchars($login);
  7.  
  8. if ($_GET['login'] != '') { //jezeli ktos przez adres probuje kombinowac
  9. }
  10. if ($_GET['haslo'] != '') { //jezeli ktos przez adres probuje kombinowac
  11. }
  12.  
  13. $haslo = md5($haslo); //szyfrowanie hasla
  14. if (!$login OR empty($login)) {
  15. include("header.php");
  16. echo '<p class="alert">Wypełnij pole z loginem!</p>';
  17. include("footer.php");
  18. }
  19. if (!$haslo OR empty($haslo)) {
  20. include("header.php");
  21. echo '<p class="alert">Wypełnij pole z hasłem!</p>';
  22. include("footer.php");
  23. }
  24. $istnick = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM `uzytkownicy` WHERE `nick` = '$login' AND `haslo` = '$haslo'")); // sprawdzenie czy istnieje uzytkownik o takim nicku i hasle
  25. if ($istnick[0] == 0) {
  26. echo 'Logowanie nieudane. SprawdĽ pisownię nicku oraz hasła.';
  27. } else {
  28.  
  29. $_SESSION['nick'] = $login;
  30. $_SESSION['haslo'] = $haslo;
  31.  
  32. header("Location: indeks.php");
  33. }
  34. ?>



Czy jest ktoś w stanie powiedzieć mi jak nazywa się ta sesja logowania i czy w ogóle idę w dobry kierunku.

Jeśli zna ktoś może lepszy i prostszy system logowania+rejestracji, który będzie lepszy do tego celu również bardzo chętnie przyjmę tego typu pomoc rolleyes.gif
dziamber
W trzeciej linii pierwszego pliku podmień stary kod na:

  1. if($_SESSION['nick'] != "") {
Spawnm
Ale sieczka w kodzie.
Nigdzie nie dajesz session_start()
Turson
Nigdzie nie masz zdefiniowanego $_SESSION['login']
boro11
@Spawnm - session_start() jest zdefiniowane w indexie i headerze, a reszta jest zaincludowana do tegoż indexu że tak powiem. Nie wiem czy to będzie działać w taki sposób, ale wydaje mi się że powinno. Jeśli nie to dodam.

@dziamber - bardzo dziękuję Twoje rozwiązanie pomogło smile.gif

@TursoN - zdawałem sobie z tego sprawę dlatego się pytałem o nazwę jaką powinienem tam wpisać smile.gif
konole
Jak już tak bardzo chcesz się tego trzymać, to chociaż zamień na to:
Kod
<div id="menu">
    <ul>
        <li>
            <div id="but1">
                <a href="/index.php">Home</a>
            </div>
        </li>
        <li>
            <div id="but2">
                <a href="/poczekalnia.php">Poczekalnia</a>
            </div>
        </li>
        <li>
            <div id="but3">
                <a href="/top.php">Top</a>
            </div>
        </li>
<? if($_SESSION['nick'] == '') { ?>
        <li>
            <div id="but4">
                <a href="/wyloguj.php">Wyloguj</a>
            </div>
        </li>
        <li>
            <div id="but5">
                <a href="/konto.php">Konto</a>
            </div>
        </li><? } else { ?>
        <li>
            <div id="but4">
                <a href="java%20script:void(0)" onclick="document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">Loguj</a>
            </div>
        </li>
        <li>
            <div id="but5">
                <a href="/rejestracja.php">Rejestracja</a>
            </div>
        </li><? } ?>
        </ul>
</div>

Chociaż postaraj się unikać powtórzeń. wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.