Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Lekka zmiana logowania
Forum PHP.pl > Forum > Przedszkole
CryWolf
Witam!
Oto dwa kody:

rejestracja.php
  1. <?php
  2. require_once "funkcje.php";
  3. pol_mysql();
  4.  
  5. if (!empty($_POST['login'])) {
  6. $login = $_POST['login'];
  7. $panstwo = $_POST['panstwo'];
  8. $gg = $_POST['gg'];
  9. $haslo = $_POST['haslo'];
  10.  
  11. $zapytanie = "insert into users values 
  12.  ('', '', '', '$login', '$gg', '$haslo', '$panstwo', '10000' ,'' ,'','','','','','','','','','')"; 
  13. mysql_query($zapytanie);
  14. echo 'Zarejestrowano! Teraz możesz się zalogować!<br><a href="index.php">Wróć do strony głownej</a>';
  15.  
  16.  
  17.  
  18. } else {
  19. echo '  
  20. <form action="rejestracja.php" method="POST">
  21. Login: <input type="text" name="login"><br>  
  22. GG: <input type="text" name="gg"><br>
  23. Hasło: <input type="password" name="haslo"><br>
  24. Państwo w grze: <input type="text" name="panstwo"><br>
  25.  
  26.  
  27. <input type="submit" value="Zmień">
  28. </form>'; 
  29. }
  30. ?>


funkcje.php FUNKCJA logowania wraz z połączeniem do bazy
  1. <center><body background="tlo.gif">
  2. <title>Tytul gry z funkcje.php</title>
  3.  
  4. <?php
  5.  
  6. function pol_mysql() {
  7. $db_host = localhost;
  8. $db_user = root;
  9. $db_pass = krasnal;
  10. $db_name = krasnal;
  11.  
  12. $lacz = mysql_pconnect($db_host, $db_user, $db_pass); 
  13. if(!$lacz) 
  14. { 
  15.  echo "Wystąpił błąd: Połączenie z bazą nie powiodło się."; 
  16.  exit; } 
  17.  
  18. //wybieramy bazę 
  19. if(!@mysql_select_db($db_name, $lacz)) { 
  20. echo '<b>Baza danych chwilowo niedostepna. Przepraszamy.</b>'; 
  21. }
  22. }
  23.  
  24.  
  25. function wy_form_logo() {
  26. echo '  
  27. <form action="index.php" method="POST">
  28. Login: <input type="text" name="login"><br>
  29. Hasło: <input type="password" name="haslo"><br> 
  30. <input type="submit" value="Zaloguj">
  31. </form>'; 
  32.  
  33. $login = $_POST['login'];
  34. $haslo = $_POST['haslo'];
  35. $_SESSION['user'] = $login;
  36. $_SESSION['pass'] = $haslo;
  37.  
  38. $pokazpieniadze = "SELECT login, haslo FROM users";
  39. $wykonaj = mysql_query($pokazpieniadze);
  40. while($wiersz = mysql_fetch_assoc($wykonaj)) {
  41.  
  42. if ($_SESSION['user'] == $wiersz['login'] && $_SESSION['pass'] == $wiersz['haslo']) {
  43. echo '<big><font color="white">Zalogowany! Kliknij <a href="start.php">tu</a> aby przejść dalej!';
  44. } else {
  45. echo '<br><br><a href="rejestracja.php">Rejestracja</a>';
  46. }
  47.  
  48. }
  49. }
  50.  
  51. ?>


Chodzi oto, że kombinowałem jak się da, żeby samemu zrobić logowanie wraz z rejestracją a jestem początkujący i udało się, lecz są małe problemy winksmiley.jpg Rezta potem wszytskio działa tylko, że w dziwny sposób wyświetla się 3 razy napis rejestracja i jak się zaloguje jeden z napisów (na górze) zmienia się w "Jesteś zalogowany, przejdź dalej..." a reszta tzn. jeszcze dwa linki do logowania zostają wraz z formularzem logowana. Mam nadzieję, że po przeczytaniu kod będziecie pewnie wiedzieli co jest źle.

Pozdrawiam i z góry dziękuję winksmiley.jpg

P.S.
Sprawdziłem, ilość napisów "rejestracja" zależy od ilości zarejestrowanych i wyświetla się to ELSE do czasu do kiedy nie znajdzie. Jak to naprawić? ;P
Crop
Nie wiem czy ci to pomoże ale ja do logowania używam kodu:
Kod
<?php
    #MODUŁ LOGOWANIA
    if ($_GET['action'] == 'login' && isset($_POST['login']) && isset($_POST['pass']))    {
    $query = mysql_query("select * from users where login='". $_POST['login'] ."'");
    $mysql = mysql_fetch_array($query);
    }
    if ($_GET['action'] == 'login' && $_POST['pass'] == $mysql[password] && isset($_POST['login']) && isset($_POST['pass']))    {
    $_SESSION['user'] = $mysql[login];
    $_SESSION['type'] = $mysql[type];
    echo "<script>location.href='?mod=login&action=test';</script>";
    }
    if ($_GET['action'] == 'login' && $_POST['pass'] =! $mysql[password])    {
    echo 'Zły login lub hasło';
    }
    if ($_GET['action'] == 'test' && isset($_SESSION['user']))    {
    echo 'Jeste¶ zalogowany';
    }
    
    if ($_GET['action'] == 'logout')    {
    session_destroy();
    echo "<script>location.href='?mod=login&action=test';</script>";
    }
    if ($_GET['action'] == 'test' && $_SESSION['user'] == '')    {
    echo 'Jeste¶ wylogowany';
    }
?>

znacznik code zostal użyty z powodu wstawiania przez bbcode php zbędnych slashy
Z MySQL łącze sie w pliku głównym
A zapomniałem plik jest u mnie ładowany przez plik index.php i ma strukturę modułową więc możesz sobie obciąć w plikach mod=login
CryWolf
Jestem początkujący i nie wiem nawet jakby to miało wyglądać jakbym chciał użyć tego w moim wypadku. Mógłbym prosić o jakieś wskazówki ale poprawnioną czesc kodu? Z góry dziekuje
in5ane
Napisałeś w pierwszym poście tak chaotycznie, że nie wiadomo za bardzo o co chodzi.

Chcesz napisać pod ten system logowania rejestracje?
Ziels
  1. <?php
  2. $found = false;
  3. while($wiersz = mysql_fetch_assoc($wykonaj)) {
  4.  if ($_SESSION['user'] == $wiersz['login'] && $_SESSION['pass'] == $wiersz['haslo']) {
  5.  echo '<big><font color="white">Zalogowany! Kliknij <a href="start.php">tu</a> aby przejść dalej!';
  6.  $found = true;
  7.  break;
  8.  }
  9. }
  10. if(!$found) echo '<br><br><a href="rejestracja.php">Rejestracja</a>';
  11. ?>


Zmień tak odpowiedni kawałek kodu :]
CryWolf
Skorzystałem z pomocy osoby wyżej i już logowanie działa jak trzeba, oto kod funkcji:

  1. <?php
  2. function wy_form_logo() {
  3.  
  4. echo '  
  5. <form action="index.php" method="POST">
  6. Login: <input type="text" name="login"><br>
  7. Hasło: <input type="password" name="haslo"><br> 
  8. <input type="submit" value="Zaloguj">
  9. </form>';
  10.  
  11.  
  12. $login = $_POST['login'];
  13. $haslo = $_POST['haslo'];
  14. $_SESSION['user'] = $login;
  15. $_SESSION['pass'] = $haslo;
  16.  
  17. $pokazpieniadze = "SELECT login, haslo FROM users WHERE login='$_SESSION[user]'";
  18. $wykonaj = mysql_query($pokazpieniadze);
  19. $found = false;
  20. while($wiersz = mysql_fetch_assoc($wykonaj)) {  
  21. if ($_SESSION['pass'] == $wiersz['haslo'] && $_SESSION['user'] == $wiersz['login']) {  
  22. echo '<big><font color="white">Zalogowany! Kliknij <a href="start.php">tu</a> aby przejść dalej!';  
  23. $found = true;  
  24. break;  }
  25. }
  26.  
  27. if(!$found) echo '<br><br><a href="rejestracja.php">Rejestracja</a>';
  28.  
  29. }
  30. ?>

Lecz mam jeszcze jedną sprawę, jak zrobić, że jeżli hasło lub/i login się nie zgadzają, żeby wyświetliło się "Zły login lub hasło!"? To już ostatnia sprawa. Będę wdzięczny, z góry dzięki

Pomoże ktoś?
Crop
Napisz sobie IF'a, który wyświetla informacje jeśli login lub hasło się nie zgadzają:
  1. <?php
  2. if ($_POST['wpisane_haslo'] =! $haslo_z_bazy) {
  3. echo 'zły login i/ lub hasło';
  4. }
  5. ?>

To chyba jasne że jeśli się wpisze zły login to hasło się nie będzie zgadzać:P
A ta na marginesie:
moim zdaniem twój kod nie będzie działać bo chyba ustawiasz od razu nazwę i hasło usera i jeśli się zgadza wyświetlasz info że jest ok, ale user i tak jest zalogowany:P (To tak na pierwszy rzut nie przyglądałem się)
CryWolf
Ok, pokombinuje, a logowanie działa normalnie, tak jak powinno winksmiley.jpg

EDIT:
Już wiem o co Ci chodziło, zmieniłem na takie coś:
  1. <?php
  2. function wy_form_logo() {
  3.  
  4. echo '  
  5. <form action="index.php" method="POST">
  6. Login: <input type="text" name="login"><br>
  7. Hasło: <input type="password" name="haslo"><br> 
  8. <input type="submit" value="Zaloguj">
  9. </form>';
  10.  
  11.  
  12. $login = $_POST['login'];
  13. $haslo = $_POST['haslo'];
  14.  
  15.  
  16. $pokazpieniadze = "SELECT login, haslo FROM users WHERE login='$login'";
  17. $wykonaj = mysql_query($pokazpieniadze);
  18. $found = false;
  19. while($wiersz = mysql_fetch_assoc($wykonaj)) {  
  20. if ($haslo == $wiersz['haslo'] && $login == $wiersz['login']) {  
  21. $_SESSION['user'] = $login;
  22. $_SESSION['pass'] = $haslo;
  23. echo '<big><font color="white">Zalogowany! Kliknij <a href="start.php">tu</a> aby przejść dalej!';  
  24. $found = true;  
  25. break;  }
  26. }
  27.  
  28. if(!$found) echo '<br><br><a href="rejestracja.php">Rejestracja</a>';
  29.  
  30. }
  31.  
  32.  
  33.  
  34.  
  35. ?>

Zaraz dodam z tym błędnym hasłem .
Crop
no i teraz jest ok:)
jak coś to polecam sie na przyszłość
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.