Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z otworzeniem odpowiedniej strony po logowaniu
Forum PHP.pl > Forum > PHP
zabeckis84
Panowie mam problem z ktorym nie moge sobie poradzic. Mam strone, na ktorej wstawilem skrypty z rejestracja. Rejestracja przebiega pomyslnie i teraz chce zrobic logowanie. Przy rejestracji skrypt utwarza plik, w ktorym w 1 lini zapisuje login i haslo a w 2 lini zapisuje cyfre 1. Po zalogowaniu sie laduje sie strona 1.php na ktorej trzeba wypelnic formularz. Po wypelnieniu formularza skrypt otwiera plik z danymi urzytkownika i obok istniejacej juz w 2 lini 1 dopisuje jeszcze jedna 1. Wszystko po to, aby przy nastepnym logowaniu urzytkownik nie musial ponownie wypelniac formularza. Chce zrobic w taki sposob, zeby przy logowaniu zczytywana byla z pliku wartosc 2 lini, i jesli bedzie tam 1 to skrypt otwiera strone 1.php a jesli jest tam 11 to skrypt otwiera strone 11.php Niestety nie moge tego zrobic. Moj kod wyglada nastepujaco:

  1. <?php
  2.  
  3. function checkPass($user, $pass)
  4. {
  5. $login = $_POST['login'];
  6. if(!$fd = @fopen("users/$login.pas", "r")) return 1;
  7. $result = 2;
  8. while (!feof($fd)){
  9. $line = trim(fgets($fd));
  10. $arr = explode(":", $line);
  11. if(count($arr)<2)
  12. continue;
  13.  
  14. if($arr[0] != $user)
  15. continue;
  16.  
  17. if($arr[1] == $pass){
  18. $result = 0;
  19. break;
  20. }
  21.  
  22. else
  23. break;
  24. }
  25. fclose($fd);
  26. return $result;
  27. }
  28.  
  29. if(isSet($_SESSION['zalogowany'])){
  30. header("Location:$x[1].php");
  31. }
  32.  
  33. else if(!isSet($_POST["haslo"]) || !isSet($_POST["login"])){
  34. $_SESSION['komunikat'] = "Wprowadz nazwe uzytkownika i haslo:";
  35. include('form.php');
  36. }
  37.  
  38. else{
  39. $val = checkPass($_POST["login"], $_POST["haslo"]);
  40. if($val == 0){
  41. $_SESSION['zalogowany'] = $_POST['login'];
  42. header("Location:$x[1].php");
  43. }
  44.  
  45. else if($val == 1){
  46. $_SESSION['komunikat'] = "Blad serwera. Zalogowanie nie bylo mozliwe!";
  47. include('form.php');
  48. }
  49.  
  50. else if($val == 2){
  51. $_SESSION['komunikat'] = "Nieprawidlowa nazwa uzytkownika lub haslo";
  52. include('form.php');
  53. }
  54.  
  55. else {
  56. $_SESSION['komunikat'] = "Blad serwera. Zalogowanie nie bylo mozliwe";
  57. include('form.php');
  58. }
  59. }
  60.  
  61. ?>
  62.  
  63. <div align="center">
  64. <h2>
  65.  
  66. <?php
  67. if(isSet($_SESSION['komunikat']))
  68. echo $_SESSION['komunikat'];
  69. else
  70. echo "Enter username and password:";
  71. ?>
  72. </h2>
  73.  
  74. <form name="formularz1" action="login.php" method="POST">
  75. <b>Username:</b>
  76. <br>
  77. <input type="text" name="login">
  78. <br>
  79. <b>Password:</b>
  80. <br>
  81. <input type="password" name="haslo">
  82. <br><br>
  83. <input type="submit" value="Log in!">
  84. </form><br><br>
  85. Don't have account jet? <a href="register.htm">register now!</a>
  86. </div>


Jak widzicie przy poleceniu ladowania strony skrypt ma otworzyc strone $x[1].php (31 i 43 linia kodu). zmienna $x ma przybierac wartosc 1 lub 11 a wartosc ta ma byc pobierana z pliku users/$login.pas. Wiem, ze w skrypcie musze wstawic cos takiego $x=file('users/$login.pas'); zmienna $login zczytywana jest w momencie logowania zeby porownac ja z haslem. Mam teraz takie pytanie gdzie mam w kodzie wstawic $x=file('users/$login.pas'), poniewaz jak nastepuje odwolanie do strony to wyskakuje mi komunikat, ze taka strona nie istnieje a moze robi sie to w zupelnie inny sposob ?
franki01
Jeżeli wstawiasz to file() dokładnie tak jak napisałeś, to nic dziwnego, że nie działa smile.gif Apostrofy (') zamień na cudzysłowie ("):
  1. $x=file("users/$login.pas");
  2. $str = trim($x[1]); # $x[1] przed tym może zawierać znak nowej linii


Wstaw to do linijki 31. i 43., a w header() zamiast $x[1], wstaw to $str.
zabeckis84
niestety dalej wywala komunikat ze strona nie istnieje sad.gif
franki01
Która strona nie istnieje? Jest error z PHP, czy przenosi na inną stronę, ale ona jest błędna? Jeżeli błąd jest do PHP, to jak on brzmi? A jeżeli przenosi na inną stroną, ale tam jest błąd 404, to jaki jest URL?
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.