Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [MySQL][PHP] Zaloguj i zostań na stronie

Napisany przez: Testosteron 7.08.2012, 10:23:13

Witam. We wszystkich cms'ach mechanizm logowania wygl±da w ten sposób, że po wpisaniu poprawnych danych, formularz nika a zamiast niego pojawia się kilka linków, np. wyloguj, zmiana hasła, itp. Natomiast user pozostaje na tej samej stronie. Mam taki oto skrypt:

  1. <?php
  2. http://www.php.net/session_start();
  3. include('function.php');
  4.  
  5. if(http://www.php.net/isset($_POST['iduzytkownika']) && http://www.php.net/isset($_POST['haslo']))
  6. {
  7. // jeżeli użytkownik właśnie podjął próbę zalogowania
  8. $iduzytkownika = http://www.php.net/mysql_escape_string ($_POST['iduzytkownika'] ) ;
  9. $haslo = http://www.php.net/mysql_escape_string(koduj($_POST['haslo'] ) );
  10.  
  11. connect('', 'root', 'krasnal', 'anonse');
  12. $zapytanie = 'select * from users '
  13. ."where user='$iduzytkownika' "
  14. ." and password=('$haslo')";
  15.  
  16. $wynik = http://www.php.net/mysql_query($zapytanie);
  17. if(http://www.php.net/mysql_num_rows($wynik) > 0)
  18. {
  19. // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  20. $_SESSION['prawid_uzyt'] = $iduzytkownika;
  21. }
  22. }
  23. ?>
  24. <html>
  25. <body>
  26. <?php
  27. if(http://www.php.net/isset($_SESSION['prawid_uzyt']))
  28. {
  29. http://www.php.net/echo 'Użytkownik zalogowany jako: '.$_SESSION['prawid_uzyt'].'<br />';
  30. http://www.php.net/echo '<a href="wylog.php">Wylogowanie</a><br />';
  31. }
  32. else
  33. {
  34. if(http://www.php.net/isset($iduzytkownika))
  35. {
  36. // jeżeli próba logowania była nieudana
  37. http://www.php.net/echo 'Zalogowanie niemożliwe.<br />';
  38. }
  39. else
  40. {
  41. // nie było próby logowania lub nastąpiło wylogowanie
  42. http://www.php.net/echo 'Witaj <b>nieznajomy</b><br />';
  43. }
  44.  
  45. // tworzenie formularza logowania
  46. http://www.php.net/echo '<form method="post" action="login.php">';
  47. http://www.php.net/echo '<table>';
  48. http://www.php.net/echo '<tr><td>Identyfikator użytkownika:</td>';
  49. http://www.php.net/echo '<td><input type="text" name="iduzytkownika"></td></tr>';
  50. http://www.php.net/echo '<tr><td>Hasło:</td>';
  51. http://www.php.net/echo '<td><input type="password" name="haslo"></td></tr>';
  52. http://www.php.net/echo '<tr><td colspan="2" align="center">';
  53. http://www.php.net/echo '<input type="submit" value="Logowanie"></td></tr>';
  54. http://www.php.net/echo '</table></form>';
  55. }
  56. ?>
  57. <br>
  58. <a href="tylko_czlonkowie.php">Część członkowska</a>
  59. </body>
  60. </html>

Jak należy go przerobić, żeby po zalogowaniu nie przenosiło mnie do następnej strony?

Napisany przez: Shido 7.08.2012, 11:30:50

Jeżeli dobrze rozumiem to ten plik to login.php
Więc wystarczy z tego:

  1. http://www.php.net/echo '<form method="post" action="login.php">';

Pozbyć się wysyłania do innej login.php
  1. http://www.php.net/echo '<form method="post">';


Jeżeli to nie jest czysty skrypt o logowania na co mog± wskazywać tagi <html><body> ( bo jeżeli includujesz jaki¶ plik to nie dajesz w nim tagów bo one - zazwyczaj - powinny już być w tym głównym pliku ) to musisz wyodrębnić cały skrypt logowania do oddzielnego pliku i tam w formularzu również nie umieszczać "action" a cały skrypt logowania includować w miejscu gdzie chcesz je mieć.

Na pewno strasznie nie zrozumiale napisałem closedeyes.gif

Napisany przez: Testosteron 7.08.2012, 13:55:16

Dzięki. Niby taki szczegół a pomogło. Jak uważacie? Ten skrypt jest bezpieczny?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)