Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Logowanie, wyswietlanie zawartosci i plik tylko dla admina
Forum PHP.pl > Forum > Przedszkole
murgal
Witam,

Jestem początkujący i mam kilka drobnych pytan, mianowicie, mam skrypt po zalogowaniu wyswietla mi strone, chciałbym wyświetlić w niej wartość rekordu użytkownika zalogowanego

Plik:
  1. <?
  2. //inkludujemy plik z hasłami
  3.  
  4. include("conf.php");
  5.  
  6. //Laczenie z baza
  7. mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Nie można się połączyć z bazą: ".mysql_error());
  8. ?>
  9. <html>
  10. <head>
  11. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  12. <title>Strona po zalogowaniu</title>
  13. </head>
  14. <?
  15. if(isset($_SESSION['zalogowany']))
  16. {
  17. echo'Witaj!: '. $_SESSION['zalogowany'];
  18. echo'<br> <a href=wylogowanie.php>Wyloguj się</a>'
  19. ?>
  20.  
  21.  
  22.  
  23.  
  24.  
  25. <?php
  26. }
  27. else
  28. {
  29. Header('location: logowanie.php'); // jeżeli ktoś wchodzi na ta strone bez logowania to przenosi go do formularza logowania.
  30. }
  31.  
  32.  
  33. ?>



Chciałbym wyświetlić zawartość rekordu np. "ip" , jak tego dokonać?

Oraz pytanie, co dodać do pliku, aby mógł go oglądać tylko użytkownik o danym nicku (dostęp tylko dla admina), a jeśli nie jest zalogowany jako admin przekierowywuje go na inna strone?

Oraz jak w takim pliku jak powyżej dodać zawartość własnie tylko dla użytkownika o nicku admin?


Pozdrawiam
Kshyhoo
1. Użyj właściwego BBcode (php)
2. Przeszukaj wpierw forum - są wątki na ten temat.
3. Przeczytaj coś na temat sesji w php - po zalogowaniu wrzuć odpowiednie dane do sesji i potem w skryptach się na nie powołuj. Np:
  1. function istnieje($login, $haslo) {
  2. if ($login=="" or $haslo=="") return false;
  3. $haslo = md5($haslo);
  4. $wynik = mysql_query("SELECT * FROM logowanie WHERE login='$login' and haslo='$haslo' and status='1'");
  5. while($rekord = mysql_fetch_assoc($wynik)) {
  6. foreach($rekord as $key => $value) {
  7. $_SESSION['user'][$key] = $value;
  8. }
  9. }
  10. if (mysql_num_rows($wynik)==1) return true;
  11. return false;
  12. }
  13.  
  14. if (istnieje($_POST['login'], $_POST['haslo'])) { // zalogowanie
  15. $_SESSION['zalogowany'] = 'tak';
  16. $uid = (int)$_SESSION['user']['id_log'];
  17. $qry = mysql_query("SELECT * FROM logowanie WHERE id_log='$uid'");
  18. while($rekord = mysql_fetch_assoc($qry)) {
  19. foreach($rekord as $key => $value) {
  20. $_SESSION['user'][$key] = $value;
  21. }
  22. }
  23. $czas = time();
  24. $login = $_SESSION['user']['login'];
  25. mysql_query("INSERT INTO zalogowani SET login='$login', data=NOW()");
  26. // mysql_close();
  27. } else {
  28. echo ''; // jeżeli nie zalogowany
  29. }
  30.  
  31. if ($_SESSION['zalogowany']=='tak') {
  32. // tu zalogowani mogą wszystko
  33. }
  34. if ($_SESSION['user']['id_log'] == 1) {
  35. // tu może wszystko tylko ktoś, kto ma ID = 1 i jego dane są w sesji...
  36. }
murgal
Z logowaniem już sobie poradziłem,

Tylko mam problem,
chciałbym wyświetlić wszystkie wartości z całej bazy z rekordu "nick", jak tego dokonać?

Oraz jak wyświetlić konkretnemu użytkownikowi dane z jego rekordu ?
Mefiuu
nie rozumiem o co Ci dokładnie chodzi ale mniemam że o to:

  1.  
  2. $nick = mysql_query("SELECT nick FROM login");
  3. $i = 1;
  4.  
  5. while ($row = mysql_fetch_assoc($nick)) {
  6. echo 'Nick:'.$row['nick'].', numer:'.$i;
  7. $i++;
  8. }


Dzięki podobnemu do tego kodowi wyświetlisz wszystkie nicki z bazy
murgal
Dziękuje smile.gif

Jeszcze zapytam, jak mam sesje, i chciałbym wyświetlić rekord tylko użytkownika zalogowanego, jak mogę to zrobić?
daros17
przykład ze swojego skryptu:
  1. // twó kod
  2. $connection = mysql_query("select * from users WHERE login ='$login' AND pass ='$pass'")or die (mysql_error());
  3. while ($connection && $rekord = mysql_fetch_assoc($connection)) {
  4. $loginn = $rekord['login']; //zapisujemy login z bazy do zmiennej
  5. $passs = $rekord['pass'];
  6. }
  7. if($login != $loginn || $pass != $passs) { //jesli login i haslo zle lub jedno z nich
  8. echo 'Niepoprawny login lub/i haslo!';
  9. } elseif($login == $loginn && $pass == $passs) { // jesli ok to dalej
  10.  
  11. $_SESSION['login'] = $loginn; // zapisujemy login z bazy do sesji
  12.  
  13. echo 'Twoje dane to: <b>'.$_SESSION['login'].' '.$_SESSION['pass'];
  14. echo '<a href="index.php">Przejdz na strone glowna</a>';
  15. } else { //jesli blad
  16. echo 'Wystąpił nieoczekiwany błąd. Spróbuj ponownie.';
  17. }
  18.  
Mefiuu
do kodu daros17
można dodać wyświetlanie wszystkich danych danego użytkownika:

  1.  
  2. $select = mysql_query("SELECT * FROM login WHERE login='".$_SESSION['login']."'");
  3.  
  4. while ($row = mysql_fetch_assoc($select)) {
  5. // tu masz dostępne wszystkie pola danego usera.
  6.  
  7. }
  8.  
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.