Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Mój pierwszy system logowania na sesjach- pytanie
-Otepod-
post
Post #1





Goście







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. ?>
Go to the top of the page
+Quote Post
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował l0ud 12.03.2008, 19:48:37


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
-Otepod-
post
Post #3





Goście







Dzięki smile.gif To mój pierwszy skrypt logowania. Bezpieczny to on nie jest, ale będzie bezpieczniejszy z czasem smile.gif.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 20:36