Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] kilka problemow logowania.
Forum PHP.pl > Forum > Przedszkole
Glukozamina
Witam . Ściągnąłem z książki skrypt logowania . Samo logowanie działa bardzo dobrze . Teraz tak mam strone levy div w którym są linki i środkowy div w ktorym się pokazuje zawartość tych linków . I mam sobie skrypt logowania . Gdy się zaloguje wszystko jest ok pokazuje jesteś zalogowany jako xxx. Jednak kiedy klikne na jakiś link to ta informacja czy jestem zalogowany czy nie mi znika . Nie mam pojęcia jak to okiełznać żeby zawsze pisało że jestem zalogowany i nieważne na jaki link w stronie klikne i dopóki nie wcisne wyloguj się, i znowu pokaże formularz logowania aż do zalogowania się . Do tego jak mam formularz logowania gdy klikne zaloguj i jestem zalogowany chcę aby ten formularz mi zniknął a on dalej jest a pod nim że jestem zalogowany jako xxx.

levy div :
  1. <?php
  2. if(isSet($_SESSION['komunikat']))
  3. echo $_SESSION['komunikat'];
  4. else
  5. echo "Wprowadź nazwę i hasło użytkownika:";
  6. ?>
  7.  
  8. <form name = "formularz1"
  9. action = "index.php?go=9"
  10. method = "POST"
  11. >
  12. <table border="0" align="center"><tr>
  13. <td>Użytkownik:</td>
  14. </tr>
  15. <tr>
  16. <td>
  17. <input type="text" name="user">
  18. </td>
  19. </tr><tr>
  20. <td>Hasło:</td>
  21. </tr><tr><td>
  22. <input type="password" name="haslo">
  23. </td>
  24. </tr><tr>
  25. <td align="left">
  26. <a href="new_user.html">Rejestracja</a>
  27. </td></tr><tr>
  28.  
  29. <td align="left">
  30. <input type="submit" value="Wejdź">
  31. </td>
  32. </tr></table>
  33. </form>


srodkowy divw pliku index.php

  1. <?
  2. switch ($_GET['go'])
  3. {
  4.  case 9:
  5. include("rejestracja/login.php");
  6. break;
  7.  
  8. case 10:
  9. include("rejestracja/main.php");
  10. break;
  11.  case 11:
  12. include("rejestracja/logout.php");
  13. break; 
  14.  
  15. }
  16. ?>


login.php w folderze rejestracja
  1. <?PHP
  2. function checkPass($user, $pass)
  3. {
  4. /*sprawdzenie długości przekazanych ciągów*/
  5.  
  6. $userNameLength = strlen($user);
  7. $userPassLength = strlen($pass);
  8.  
  9. if($userNameLength < 3 || $userNameLength > 20 ||
  10.  $userPassLength < 6 || $userPassLength > 40){
  11. return 2;
  12. }
  13.  
  14. /*nawiązanie połączenia serwerem i wybór bazy*/
  15.  
  16. if (!$db_lnk = @mysql_connect("mysql3.yoyo.pl", "db486994", "xxxxxxxxxxxxxxxxxxxxx")){
  17. //echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...');
  18. return 1;
  19. }
  20.  
  21. if(!@mysql_select_db('db486994')){
  22. //echo('Wystąpił błąd podczas wyboru bazy danych: test...');
  23. return 1;
  24. }
  25.  
  26. /*wykonanie zapytania sprawdzającego poprawność danych*/
  27.  
  28. $query = "SELECT COUNT(*) FROM Users WHERE Nazwa='$user' ";
  29. $query .= "AND Haslo='$pass'";
  30.  
  31. if(!$result = mysql_query($query, $db_lnk)){
  32. //echo('Wystąpił błąd: nieprawidłowe zapytanie...');
  33. return 1;
  34. }
  35.  
  36. /*sprawdzenie wyników zapytania*/
  37.  
  38. if(!$row = @mysql_fetch_row($result)){
  39. //echo('Wystąpił błąd: nieprawidłowe wyniki zapytania...');
  40. return 1;
  41. }
  42. else{
  43. if($row[0] <> 1){
  44. return 2;
  45. }
  46. else{
  47. return 0;
  48. }
  49. }
  50. }
  51.  
  52. /* rozpoczęcie sesji i procedur logowania*/
  53.  
  54.  
  55. if(isSet($_SESSION['zalogowany'])){
  56. header("Location: index.php?go=10");
  57. }
  58. else if(!isSet($_POST["haslo"]) || !isSet($_POST["user"])){
  59. $_SESSION['komunikat'] = "Wprowadź nazwę i hasło użytkownika:";
  60. include('form.php');
  61. }
  62. else{
  63. $val = checkPass($_POST["user"], $_POST["haslo"]);
  64. if($val == 0){
  65. $_SESSION['zalogowany'] = $_POST["user"];
  66. header("Location: index.php?go=10");
  67. }
  68. else if($val == 1){
  69. $_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
  70. include('form.php');
  71. }
  72. else if($val == 2){
  73. $_SESSION['komunikat'] = "Nieprawidłowa nazwa lub hasło użytkownika.";
  74. include('form.php');
  75. }
  76. else{
  77. $_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.";
  78. include('form.php');
  79. }
  80. }
  81. ?>


main.php

  1. <?php
  2. if(!isSet($_SESSION['zalogowany'])){
  3. $_SESSION['komunikat'] = "Nie jesteś zalogowany!";
  4. include('form.php');
  5. exit();
  6. }
  7.  
  8.  
  9. ?>
  10.  
  11. Witaj: <?php echo $_SESSION['zalogowany'] ?>
  12. Pamiętaj o wylogowaniu przed opuszczeniem strony!
  13. <a href="index.php?go=11">Wylogowanie</a>


Pozdrawiam i czekam na odpowiedź.
ayeo
W każdym pliku musisz sprawdzać zmienną sesyjną ZALOGOWANY i jak co to ją po prostu wyświtlić.
Pozdrawiam!
Glukozamina
Jestem początkującym więc zabardzo mi to dużo nie mówi .Jak mam link do aktulaności i w środkowym div wyświetla mi aktualności.php to co w tym pliku powinno być ?
marcio
Patrz masz tutaj kawalek kodu ktory "powinien" odpowiadac za pokazaniu lub nie form do logowanie powinien on tak wygladac
  1. <?php
  2. if(isset($_SESSION['komunikat'])) {
  3. echo $_SESSION['komunikat'];
  4. }
  5. else {
  6.  
  7. echo('Wprowadź nazwę i hasło użytkownika:
  8. <form name = "formularz1"
  9. action = "index.php?go=9"
  10. method = "POST"
  11. >
  12. <table border="0" align="center"><tr>
  13. <td>Użytkownik:</td>
  14. </tr>
  15. <tr>
  16. <td>
  17. <input type="text" name="user">
  18. </td>
  19. </tr><tr>
  20. <td>Hasło:</td>
  21. </tr><tr><td>
  22. <input type="password" name="haslo">
  23. </td>
  24. </tr><tr>
  25. <td align="left">
  26. <a href="new_user.html">Rejestracja</a>
  27. </td></tr><tr>
  28.  
  29. <td align="left">
  30. <input type="submit" value="Wejdź">
  31. </td>
  32. </tr></table>
  33. </form>');
  34. }
  35. ?>

Chodzilo o to ze nawet jak ktos byl zalogowany to form i tak byl bo nie obioles go klamrami przynajmniej tak mi sie wydaje teraz powinno dzialac a to z tymi linkami nie zrozumialem
Glukozamina
NO gdy dane są poprawne i klikne zalogoj to tam gdzie chcę pokazuje mi się zalogoj . "Jesteś zalogowany jako xxx. Jednak gdy klikne w jakis odnośnik na stronce to to że jestem zalogowany jako xxx już mi znika . A ja chcę aby to jesteś zalogowany jako xxx było dopóki nie wcisne wyloguj . Kod za wyloguj mam także nie trzeba pisać snitch.gif

Ten kod co dałeś nadpisałem w pliku form.php i go zincludowałem do levego div czyli tam gdzie są linki . jednak nie pomogło nadal jest  to samo . Pokazuje się jesteś zalogowany jako xxx i nadal jest pokazany formularz logowa
ia .  Jak coś tutaj jest stronka

http://www.mojeproby.yoyo.pl/      nick okularnik hasło okularnik dla sprawdzenia problemu.
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.