Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] gotowy skrypt nie działa
Forum PHP.pl > Forum > Przedszkole
habbakuk
Cześć. Mam gotowy skrypt umożliwiający logowanie się użytkowników. Dane (nazwa usera i hasło pobieraną są z pliku passwords.txt, mającego składnię: nazwa_usera:hasło). Oto skrypt:
  1. <?php
  2. @$pass = $_POST[&#092;"haslo\"];
  3. @$pass = $_POST[&#092;"user\"];
  4.  
  5. function checkPass($pass, $user){
  6. if(!$fd = @fopen(&#092;"passwords.txt\", \"r\")) return false;
  7. while(!feof ($fd)){
  8. $line = trim(fgets($fd));
  9. if(($pos = strpos($line, &#092;":\")) === false) continue;
  10.  
  11. $tempUser = substr($line, 0, $pos);
  12. if($tempUser != $user) continue;
  13.  
  14. $tempPass = substr($line, $pos + 1, strlen($line) - $pos);
  15.  
  16. if($tempPass != $pass) return false;
  17. else return true;
  18. }
  19.  
  20.  fclose($fd);
  21.  return false;
  22. }
  23.  
  24. if(!checkPass($pass, $user)){
  25.  echo(&#092;"<html><body><center>\");
  26.  echo(&#092;"<h2>Niepoprawne dane! Proszę spróbować ponownie.</h2>\");
  27.  echo(&#092;"</center></body></html>\");
  28.  }
  29. else{
  30.  include('index1.html');
  31. }
  32. ?>


I teraz w zależności od tego czy podam poprawne dane (tzn te z pliku) czy jakieś w ogólne z kosmosu to zawsze dostaję komunikat o nieprawidłowych danych. Co zrobić?
Pozdrawiam.
gu35t
daj:

@$pass = trim($_POST['haslo']);
@$pass = trim($_POST['user']);
habbakuk
Nic z tego:
  1. <?php
  2. @$pass = trim($_POST[&#092;"haslo\"]);
  3. @$pass = trim($_POST[&#092;"user\"]);
  4.  
  5. function checkPass($pass, $user){
  6. if(!$fd = @fopen(&#092;"passwords.txt\", \"r\")) return false;
  7. while(!feof ($fd)){
  8. $line = trim(fgets($fd));
  9. if(($pos = strpos($line, &#092;":\")) === false) continue;
  10.  
  11. $tempUser = substr($line, 0, $pos);
  12. if($tempUser != $user) continue;
  13.  
  14. $tempPass = substr($line, $pos + 1, strlen($line) - $pos);
  15.  
  16. if($tempPass != $pass) return false;
  17. else return true;
  18. }
  19.  
  20.  fclose($fd);
  21.  return false;
  22. }
  23.  
  24. if(!checkPass($pass, $user)){
  25.  echo(&#092;"<html><body><center>\");
  26.  echo(&#092;"<h2>Niepoprawne dane! Proszę spróbować ponownie.</h2>\");
  27.  echo(&#092;"</center></body></html>\");
  28.  }
  29. if(checkPass($pass, $user)){
  30.  include('index1.html');
  31. }
  32. ?>

Objawy są te same. Być może z plikiem txt jest coś nie tak? Wygląda on:
Kod
michal:1234
rafal:5678
gu35t
  1. <?php
  2. $pass = trim($_POST[&#092;"haslo\"]);
  3. $user = trim($_POST[&#092;"user\"]);
  4.  
  5. function checkPass($pass, $user){
  6. if(!$fd = @fopen(&#092;"passwords.txt\", \"r\")) return false;
  7. while(!feof ($fd)){
  8. $line = trim(fgets($fd));
  9. if(($pos = strpos($line, &#092;":\")) === false) continue;
  10.  
  11. $tempUser = substr($line, 0, $pos);
  12. if($tempUser != $user) continue;
  13.  
  14. $tempPass = substr($line, $pos + 1, strlen($line) - $pos);
  15.  
  16. if($tempPass != $pass) return false;
  17. else return true;
  18. }
  19.  
  20. fclose($fd);
  21. return false;
  22. }
  23.  
  24. if(!checkPass($pass, $user)){
  25. echo(&#092;"<html><body><center>\");
  26. echo(&#092;"<h2>Niepoprawne dane! Proszę spróbować ponownie.</h2>\");
  27. echo(&#092;"</center></body></html><form action=\"login.php\" method=\"post\">
  28. <input type=&#092;"text\" name=\"user\">
  29. <input type=&#092;"text\" name=\"haslo\">
  30. <input type=&#092;"submit\"></form>\");
  31. }
  32. else{
  33. include('index1.html');
  34. }
  35. ?>


mi dziala. pamietaj ze plik musi miec chmod do odczytu.
habbakuk
Działa, dzięki winksmiley.jpg
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.