Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mój pierwszy system logowania na sesjach- pytanie
Forum PHP.pl > Forum > Przedszkole
Otepod
Napisałem swój pierwszy system logowania na sesjach. Mam pytanie. Wszystko jest ok, gdy istnieje użytkownik loguje normalnie,ale gdy plik z użytkownikiem nie istnieje to pojawia się błąd: Jak zrobić żeby pojawiał się tylko napis, że taki użytkownik nie istnieje? Na bezpieczeństwo logowania nie patrzcie bo wiem że jest dziurawy jak szwajcarski ser smile.gif.
Tutaj błąd co się pojawia:
Kod
Warning: fopen(Proba.ghgynh9): failed to open stream: No such file or directory in c:\usr\krasnal\www\test\trening.php on line 6

Warning: filesize(): Stat failed for Proba.ghgynh9 (errno=2 - No such file or directory) in c:\usr\krasnal\www\test\trening.php on line 7

Warning: fread(): supplied argument is not a valid stream resource in c:\usr\krasnal\www\test\trening.php on line 7


Tutaj kod:
login.php
  1. <?php
  2.  
  3.  
  4. $log= $_POST['nick'];
  5. $file= fopen("$log.ghgynh9", 'r'); 
  6. $read= fread ($file, filesize("$log.ghgynh9"));
  7. $lp= explode(':', $read); 
  8. $login= $lp[0];
  9. $pass= $lp[1]; 
  10.  
  11. if ($login== $_POST['nick'] && $pass== $_POST['pass']) {
  12.  
  13. $_SESSION['user']= $_POST['nick'];
  14. header ("Location: page.php"); 
  15.  
  16. } 
  17.  
  18. else 
  19.  echo 'Nie masz tu wstepu'; 
  20.  
  21. ?>

page.php
  1. <?php
  2.  
  3.  
  4. if (!isset($_SESSION['user'])) {
  5.  
  6. echo 'Nie jestes zalogowany tongue.gif';
  7. echo '<form action="login.php" method="post" > 
  8. Login: <input type="text" name="nick" /><br />
  9. <br />Haslo: <input type="password" name="pass" /><br />
  10. <br /><input type="submit" value="Loguj" /> <br />';
  11. echo '<br /> <a href="register.php">Zarejestruj sie</a> <br />';
  12.  
  13. } 
  14.  
  15. else 
  16.  echo 'Witaj, ' . $_SESSION['user'] , ' <a href="logout.php">wyloguj</a>';
  17.  
  18. ?>

register.php
  1. <?php
  2.  
  3.  
  4. $login= $_POST['nick'];
  5. $pass= $_POST['pass'];
  6. $plik= ("$login.ghgynh9");
  7.  
  8. if (file_exists("$login.ghgynh9")) {
  9.  
  10. echo 'Nick zajety tongue.gif';
  11.  
  12. } 
  13.  
  14. else {
  15.  
  16. $string= "$login:$pass";
  17. $file= fopen($plik, 'w+');
  18. fwrite($file, $string);
  19. fclose($file);
  20.  
  21. }  
  22.  
  23. ?>
  24.  
  25. <html>
  26. <body>
  27. <div id="form">
  28. <form method="post" >
  29. Nick: <input type="text" name="nick" /><br />
  30. <br />Haslo:<input type="password" name="pass" /><br />
  31. <br /><input type="submit" value="Rejestruj" /><br />
  32. </form> 
  33. </div>
  34. </body>
  35. </html>

logout.php
  1. <?php
  2.  
  3.  
  4. if (!isset($_SESSION['user'])) {
  5.  
  6. echo 'Nie byles zalogowany tongue.gif';
  7. echo '<form action="login.php" method="post" > 
  8. Login: <input type="text" name="nick" /><br />
  9. <br />Haslo: <input type="password" name="pass" /><br />
  10. <br /><input type="submit" value="Loguj" /> ';
  11.  
  12. }
  13.  
  14. else {
  15.  
  16. unset ($_SESSION['user']);
  17. echo 'Wylogowalo prawidlowo';
  18.  
  19. } 
  20.  
  21.  
  22. ?>
l0ud
Trochę źle to rozwiązałeś. Powinien być jeden plik z danymi userów, który później będziesz obsługiwał za pomocą explode() i implode() , ale ok. Najprostszym sposobem będzie wytłumienie funkcji pliku dodając @

to
  1. <?php
  2. $file= fopen("$log.ghgynh9", 'r');
  3. ?>


zamień na
  1. <?php
  2. @$file= fopen("$log.ghgynh9", 'r');
  3. ?>


ogólnie cały skrypt login.php powinien wyglądać mniej-więcej tak

  1. <?php
  2.  
  3.  
  4. $log= $_POST['nick'];
  5. if ($file= @fopen("$log.ghgynh9", 'r')) {
  6. $read= fread ($file, filesize("$log.ghgynh9"));
  7. $lp= explode(':', $read); 
  8. $login= $lp[0];
  9. $pass= $lp[1]; 
  10.  
  11. if ($login== $_POST['nick'] && $pass== $_POST['pass']) {
  12.  
  13. $_SESSION['user']= $_POST['nick'];
  14. header ("Location: page.php"); 
  15.  
  16. }
  17.  
  18. else {
  19.  echo 'Nie masz tu wstepu';
  20. }
  21.  
  22. }
  23. else {
  24. echo 'Brak użytkownika';
  25. }
  26.  
  27. ?>


Pisane od ręki, nie wiem czy zadziała winksmiley.jpg
Otepod
Dzięki smile.gif To mój pierwszy skrypt logowania. Bezpieczny to on nie jest, ale będzie bezpieczniejszy z czasem 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.