Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]localhost a serwer nie działa logowanie
Forum PHP.pl > Forum > Przedszkole
pikasso
Hej mam problem. Wrzuciłem stronę z logowaniem na serwer i przestało mi o dziwo działać logowanie sad.gif
Na localhost działa bez zarzutu, a na serwerze nie.

Oto wygląd kodu

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6. <?
  7.  
  8. #definicje stalych
  9. define("DATA", "users.dat");
  10. define("SESID", SESSION_NAME() . "=" . SESSION_ID());
  11.  
  12.  
  13.  
  14.  
  15. # zaloguj user-a
  16. function login($login, $passwd)
  17. {
  18.  $line = file(DATA);
  19.  foreach($line as $temp)
  20.  {
  21.    $str = explode(",", $temp);
  22.    if(chop($str[0])==$login && chop($str[1])==$passwd)
  23.    {
  24.      $_SESSION["USER_AUTH"]  = True;
  25.      $_SESSION["USER_LOGIN"] = $_POST["login"];
  26.      return True;
  27.    }
  28.  }
  29.  $login = htmlentities($login);
  30.  return False;
  31. }
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. # wyloguj user-a
  39. function logout()
  40. {
  41.  $_SESSION["USER_AUTH"]  = False;
  42.  $_SESSION["USER_LOGIN"] = Null;
  43. }
  44.  
  45.  
  46.  
  47.  
  48.  
  49. # czy uytkownik istnieje
  50. function user_exists($login)
  51. {
  52.  $line = file(DATA);
  53.  foreach($line as $temp)
  54.  {
  55.    $str = explode(",", $temp);
  56.    if(chop($str[0])==$login) return True;
  57.  }
  58.  return False;
  59. }
  60.  
  61.  
  62.  
  63.  
  64. # dodaje nowego uytkownika
  65. function add_user($login, $passwd)
  66. {
  67.  $files = fopen(DATA, "a");
  68.  flock($files, 2);
  69.  fputs($files, $login . "," . $passwd . "\n");
  70.  flock($files, 3);
  71.  fclose($files);
  72. }
  73.  
  74.  
  75.  
  76.  
  77. # sprawdza czy zalogowany
  78. function auth()
  79. {
  80.  return ($_SESSION["USER_AUTH"] == True);
  81. }
  82.  
  83.  
  84.  
  85. ?>



kodowane jest w md5 i zapisywane do pliku

  1. <?
  2. # start sesji
  3.  
  4. # biblioteka z funkcjiami
  5. include "func.php";
  6.  
  7. # logowanie, wylogowanie itp
  8. switch ($page)
  9. {
  10.  case "login"  :
  11.                  $login  = htmlentities(substr($_POST["login"], 0, 255));
  12.                  $passwd = htmlentities(substr($_POST["passwd"], 0, 255));
  13.                  login($login, md5($passwd));
  14.                  break;
  15.  
  16.  case "logout" : logout();
  17.                  break;
  18. }
  19. ?>




Proszę pomocy...

Przecież jest napisane jak jest funkcja ta przesyłana.
  1. <?php
  2. function login($login, $passwd)
  3. ?>


A czy jest na serwerze to nie wiem bo serwer mam na nazwa.pl
thm
strzelam:
  1. <?php
  2. switch ($_GET['page'])
  3. ?>

?
piaseq
Przydało by się trochę więcej informacji. Co to znaczy nie działa? Pojawiają się jakieś błędy? Patrząc na ten kod domyślam się, że zmienna $page jest przekazywana z formularza przez $_GET, a problem może tkwić w register_globals. Spróbuj użyć
  1. <?php
  2. switch($_GET['page'])
  3. ?>
Ale tak jak pisałem, bez dodatkowych informacji to tylko domysły.
pikasso
Nie działa to znaczy po prostu po wpisaniu hasła i loginu nic się nie dzieje.

o to adres
Kod
http://prograph.nazwa.pl/Inne/KSTEL%20exp/logowanie_php/index.php


Tak wygląda formularz logowania

Kod
<form action="index.php" method="post">
<input type="hidden" name="page" value="login">
<input type="hidden" name="<?=SESSION_NAME()?>" value="<?=SESSION_ID()?>">

Login<br>
<input type="text" name="login" value="<?=$_POST["login"]?>">
<br>

Haslo<br>
<input type="password" name="passwd" value="">
<input type="submit" name="submit" value="Loguj">

</form>
thm
Parse error: syntax error, unexpected ';', expecting ':' or '{' in /home/prograph/ftp/Inne/KSTEL exp/logowanie_php/session.php on line 6
piaseq
  1. <?php
  2. switch($_POST['page'])
  3. ?>
Powinno rozwiązać problem
pikasso
Teraz się zalogowałem ale nigdzie dalej nie mogę przejść. Zalogowało mi się i nie mogę przejść do panelu dla zalogowanych.
a tam mam generalnie dodawanie nowego użytkownika i innych danych.



Zadziałała funkcja

  1. <?php
  2. switch($_POST['page'])
  3. ?>
piaseq
Cytat(pikasso @ 25.10.2008, 20:23:41 ) *
Teraz się zalogowałem ale nigdzie dalej nie mogę przejść. Zalogowało mi się i nie mogę przejść do panelu dla zalogowanych.
a tam mam generalnie dodawanie nowego użytkownika i innych danych.

Bez kodu to znowu tylko domysły, ale może przejścia do innych sekcji strony też oparłeś o zmienne przekazywane przez $_POST i $_GET i dlatego nie działa. Poczytaj o tych tablicach oraz o register_globals, bo z tego co piszesz wynika, że nie zrozumiałeś dlaczego nie działało logowanie tylko wkleiłeś kod. Jest bardzo prawdopodobne, że jeżeli zrozumiesz na czym polegał problem, będziesz w stanie naprawić przechodzenie do innych sekcji strony.

Jeżeli mój kod zadziałał, nie obrażę się za kliknięcie "pomógł" pod odpowiednim postem winksmiley.jpg
pikasso
Przejść mogę wszędzie oprócz wylogowywania się i przejścia do opcji dla zalogowanych.
a to co przechodzi do następnej strony czyli dla zalogowanych wygląda tak .


Dla zalogowanych
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6. <table border=0 width=100%>
  7. <tr>
  8.  <th align=center> Dla zalogowanych
  9. </th>
  10. </tr>
  11. </table>
  12.  
  13. <p>
  14.  
  15. <?
  16. if(!auth())
  17. {
  18.  print "<p class=error align=center>Brak dostepu do zawartosci strony</p>";
  19. }
  20. else
  21. {
  22.  print "<a href=\"index.php?page=registration&".SESID."\">Nowe konto</a>\n";
  23.  print "Utwórz nowe konto na które będą mogli logowac się inni urzytkownicy";
  24.  print "<br>";
  25.  print "<br>";
  26.  print "<br>";
  27.  print "Opcje Książki Telefonicznej - Administracja panelem klienta";
  28.  print "<br>";
  29.  print "<br>";
  30.  print "<a href=\"index.php?page=dodaj&".SESID."\">Dodaj wpis</a>\n";
  31.  print "   |   ";
  32.  print "<a href=\"index.php?page=alladmin&".SESID."\">Usuń Wpis</a>\n";
  33.  print "<br>";
  34.  print "<br>";
  35.  print '<img src="../line.JPG">';
  36.  print "<br>";
  37.  print "<br>";
  38.    print "<br>";
  39.  print "<br>";
  40.  print "Opcje Książki Telefonicznej - Administracja panelem firmy";
  41.  print "<br>";
  42.  print "<br>";
  43.  print "<a href=\"index.php?page=dodajf&".SESID."\">Dodaj wpis</a>\n";
  44.  print "   |   ";
  45.  print "<a href=\"index.php?page=alladminF&".SESID."\">Usuń Wpis</a>\n";
  46.  print "<br>";
  47.  print "<br>";
  48.  print '<img src="../line.JPG">';
  49.  print "<br>";
  50.  print "<br>";
  51.    print "<br>";
  52.  print "<br>";
  53.  print "Opcje Książki Telefonicznej - Administracja panelem tel. alarmowych";
  54.  print "<br>";
  55.    print "<br>";
  56.  print "<a href=\"index.php?page=dodajalarm&".SESID."\">Dodaj numer alarmowy</a>\n";
  57.  print "   |   ";
  58.  print "<a href=\"index.php?page=alladminTA&".SESID."\">Usuń Wpis</a>\n";
  59.  print "<br>";
  60.  print "<br>";
  61.  print '<img src="../line.JPG">';
  62.  
  63.  
  64.  }
  65. ?>


A tutaj zamieszczam link do wszystkich pliczków php z których to korzysta
http://rapidshare.com/files/157488189/logowanie_php.rar.html

Proszę bardzo o pomoc smile.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.