Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Rejestracja, logowanie i czytanie danych z tabeli
Forum PHP.pl > Forum > Przedszkole
Golgo
Witam!
Chciałbym stworzyć skrypt w którym byłaby możliwość rejestrowania, logowania użytkowników i aby ci użytkownicy mogli wprowadzać rekordy do tabeli, przy czym, żeby po zalogowaniu były widoczne rekordy wpisane przez danego użytkownika. W tym celu stworzyłem dwie tabele:
Tabela users, która wygląda tak id|nick|password
Tabela ksiazki, id|tytul
Oczywiście pola id w obu tabelach są kluczami podstawowymi oraz automatycznie się numerują.
oraz
index.html:
  1. <hmtl>
  2. <center><form action="login.php" method="post">
  3. Zaloguj się::<br>
  4. Nick: <input name="nick" type="text"/><br>
  5. Hasło: <input name="userpass" type="password"/><br>
  6. <input value="Zaloguj" type="submit"/>
  7. </form>
  8. <center><form action="register.php" method="post">
  9. Zarejestruj się:<br>
  10. Nick: <input name="nick" type="text"/><br>
  11. Hasło: <input name="userpass" type="password"/><br>
  12. <input value="Wyślij" type="submit"/>
  13.  
  14. </body>
  15. </html>


login.php
  1. <?php
  2.  
  3.  
  4. include('config.php');
  5.  
  6. $nick=$_POST['nick'];
  7. $userpass=$_POST['userpass'];
  8.  
  9.  
  10.  
  11.  
  12. mysql_connect($host,$username,$password);
  13. mysql_select_db($database) or die("Nie znaleziono bazy danych");
  14.  
  15. $query = "SELECT password FROM users WHERE nick='$nick'";
  16. $result=mysql_query($query);
  17. $a=mysql_result($result,0,"password");
  18.  
  19. if ($userpass == $a )
  20. {
  21. echo 'Zalogowany!<br>';
  22. echo '<a href="ksiazki.php">Inkubator</a>!<br>';
  23. }
  24. else
  25. {
  26. echo 'Niepoprawne dane!<br>';
  27. }
  28.  
  29.  
  30. ?>


register.php
  1. <?php
  2. include('config.php');
  3. $nick=$_POST['nick'];
  4. $userpass=$_POST['userpass'];
  5.  
  6.  
  7.  
  8. mysql_connect($host,$username,$password);
  9. mysql_select_db($database) or die("Nie znaleziono bazy danych");
  10.  
  11.  
  12. $query = "INSERT INTO users VALUES ('', '$nick', '$userpass')";
  13. mysql_query($query);
  14. echo 'Rejestracja przebiegła pomyślnie!<br>';
  15. echo '<a href="index.html">Powrót</a>';
  16.  
  17.  
  18. ?>

I wszystko ładnie, użytkownik jest dodawany do tabeli. Dalej zaczynają się schody. Gdyż plik w którym jest możliwość dodawania rekordów i wyświetlania ich wygląda tak:
ksiazki.php
  1. <meta http-equiv="Content-type" content="text/html"; charset=iso-8859-2"/>
  2. <title>testr</title>
  3. </head>
  4. <body vlink="#000000" link="#000000" alink="#000000" bgcolor="#bdb76b">
  5. <center><h3>Dodaj wpis</h3></center>
  6. <table cellpadding="0" cellspacing="0" border="1" align="center" bordercolor="black">
  7. <tr bgcolor="#CCFF66" style="font-weight : bold; text-align : center;">
  8. <td width="100">Tytul</td>
  9. </tr>
  10. <tr bgcolor="#FFFFCC">
  11. <form method="post" action="action.php">
  12. <td width="100"> <input type="text" size="10" name="tytul"></td>
  13. <tr>
  14. <td><input value="Wyślij" name="send" type="submit"> <input value="Wyczyść" name="reset" type="reset"></td>
  15. </tr>
  16.  
  17.  
  18. </form>
  19. </tr>
  20.  
  21.  
  22.  
  23. <br><br><br><br>
  24. <?php include('show.php');
  25. ?>
  26.  
  27.  
  28. </body>
  29. </html>


show.php
  1. <?php
  2. include('config.php');
  3.  
  4. $nick=$_SPOST['nick'];
  5. $userpass=$_POST['userpass'];
  6.  
  7. mysql_connect($host,$username,$password);
  8. mysql_select_db($database) or die("Nie znaleziono bazy danych");
  9.  
  10. $query="SELECT * FROM ksiazki, users WHERE users.nick = '$nick' ";
  11. $result=mysql_query($query);
  12.  
  13. $num=mysql_numrows($result);
  14.  
  15.  
  16. echo "<b><center>Stan Twoje ksiazki:</center></b><br><br>";
  17.  
  18. echo "<table border=".chr(34)."1".chr(34)." align=".chr(34)."center".chr(34)." cellpadding=".chr(34)."0".chr(34)." cellspacing=".chr(34)."0".chr(34).">
  19. <tr bgcolor=\"#ffd700\">
  20. <td width=".chr(34)."20".chr(34).">L.p.</td>
  21. <td width=".chr(34)."100".chr(34).">Identyfikator</td>
  22. <td width=".chr(34)."100".chr(34).">Tytul</td>
  23.  
  24. </tr></table>";
  25.  
  26.  
  27. $i=0;
  28. while ($i < $num) {
  29. $lp++;
  30. $identyfikator=mysql_result($result,$i,"id");
  31. $male=mysql_result($result,$i,"tytul");
  32.  
  33. echo "<table border=".chr(34)."1".chr(34)." align=".chr(34)."center".chr(34)." cellpadding=".chr(34)."0".chr(34)." cellspacing=".chr(34)."0".chr(34).">
  34. <tr bgcolor=\"#FFFFCC\">
  35. <td width=".chr(34)."20".chr(34).">".$lp."</td>
  36. <td width=".chr(34)."100".chr(34).">".$identyfikator."</td>
  37. <td width=".chr(34)."100".chr(34).">".$tytul."</td>
  38.  
  39. </tr></table>";
  40.  
  41. $i++;
  42. }
  43.  
  44.  
  45. ?>

I niestety nic się nie wyświtla. Więc zależy mi na tym by po zarejestrowaniu dodało użytkownika do bazy danych(i tak się dzieje). Następnie po zalogowaniu się, żeby dany użytkownik mógł dodawać własne rekordy do tabeli książki i żeby tylko jemu wyświetlały się tylko jego rekordy.
Będę wdzięczny za pomoc lub podpowiedzenie czego mam użyć by to coś działało smile.gif
Pozdrawiam
luniak
Przedewszystkim jeżeli chcesz żeby dany użytkowink widział tylko swoje wpisy to do tabeli z książkami dodaj kolumne user_id w która będzie miała odpowiednią wartość w zależności który użytkownik będzie coś do niej dodawać
pacior
Jeśli chcesz rejestrować logowania proponuje zrobić 3 tabele users_history z polami Id_user|Data|Sataus.
Gdzie w polu status będziesz przechowywał informacje na temat czy użytkownik się poprawnie zalogował czy nie.
Jeśli się zaloguje poprawnie to musi być wykonywany odpowiedni insert z odpowiednim statusem. Tak samo jeśli poda błędne dane.

Mam dla ciebie jeszcze 3 uwagi.
1. Staraj się nie pisać select * ... tylko wypisz wszystkie pola ponieważ jeśli dodasz jakąś nową kolumnę może ci się skrypt posypać
2. To samo dotyczy insertów nie piszemy insert into ksiazki values (...) tylko insert into (id,tytul) ksiazki values (...) poniewaz po dodaniu pola sie wywali
3. Wypadało by gdyby hasła były szyfrowane w bazie danych jedną z metod to md5($hasło) (wiem że tu trzeba się napisać ale później się to przydaje)
INSERT INTO users (id,nick,password) VALUES ('', '$nick', 'md5($userpass)')" oraz
if (md5($userpass) == md5($a) )
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.