Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Link do profilu usera
Forum PHP.pl > Forum > Przedszkole
Johnas
Witam! Mam rejestracje i logowanie w php na sesjach. Jest już napisana edycja profilu do tego dopisałem że pokazuje użytkownikowi jego dane, i liste zarejestrowanych. Zastanawiam się jak napisac funkcje która pozwoliła by innym useron na przeglądanie kogoś profilu. Podejrzewam też że sam nic nie wymyślę z moim poziomem PHP. Ale chce sie nauczyć dla tego proszę o wytłumaczenie jak takie coś zrobić, a nie pisanie za mnie smile.gif dziękuję za pomoc
sebekzosw
tworzysz plik profile.php i dopisujesz w adresie zmienną user_id czyli profile.php?user_id=1

i w pliku profile.php sprawdzasz czy istnieje zmienna $_GET['user_id'] i czy jest liczbą. Jeżeli tak to pobierasz do tablicy dane wszystkie usera o danym id. potem sprawdzasz czy tablica nie jest pusta - jak nie jest to dajesz info o profilu. Teraz zauwazylem ze chciales tylko opis a ja juz napisalem smile.gif

  1. if( isset($_GET['user_id']) AND is_numeric($_GET['user_id']) )
  2. {
  3. $user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id`=".mysql_real_escape_string($_GET['user_id'])." LIMIT 1;"));
  4.  
  5. if( !empty($user) )
  6. {
  7. //szczegoly profilu
  8. }
  9. else
  10. {
  11. echo 'Brak takiego użytkownika';
  12. }
  13. }
Johnas
Zrobiłem coś takiego ale nie wiem czemu nie działa sad.gif
Pomożecie?
  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. ?>
  4.  
  5. <?php include('header.php'); ?>
  6.  
  7. <h2>&raquo; Games2d.pl<-Gra dla wojowników<br />Profil:</h2>
  8. <div class="content">
  9. <?php
  10. include 'inc/db.php'; // połączenie się z bazą danych
  11. $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL
  12.  
  13.  
  14.  
  15. $wynik=mysql_fetch_assoc(mysql_query("SELECT * FROM $tabela WHERE
  16. id=".mysql_real_escape_string($_GET['user_id'])." LIMIT 1;"));
  17.  
  18. if (mysql_num_rows($wynik) == 1) {
  19. $informacja = mysql_fetch_array($wynik);
  20. $_SESSION["id"] = $informacja["id"];
  21. }
  22. ?>
  23. <?php
  24. echo 'Twoje dane:';
  25. $_POST['login'] = $_SESSION['login'];
  26. $_POST['imie'] = $_SESSION['imie'];
  27. $_POST['nazwisko'] = $_SESSION['nazwisko'];
  28. $_POST['id'] = $_SESSION['id'];
  29. $_POST['email'] = $_SESSION['email'];
  30. echo '<br />id:<b>'. $_SESSION['id'];
  31. echo '</b><br />imie<b>:'. $_SESSION['imie'];
  32. echo '</b><br />nazwisko<b>:'. $_SESSION['nazwisko'];
  33. echo '</b><br />email:<b>'. $_SESSION['email'];
  34. echo '</b><br />login:<b>'. $_SESSION['login'];
  35. echo '</b>';
  36. ?>
  37. </div>
  38. <?php include('footer.php'); ?>
muk4
  1. $_POST['login'] = $_SESSION['login'];
  2. $_POST['imie'] = $_SESSION['imie'];
  3. $_POST['nazwisko'] = $_SESSION['nazwisko'];
  4. $_POST['id'] = $_SESSION['id'];
  5. $_POST['email'] = $_SESSION['email'];


Zmienne na odwrót np.:

  1. $_SESSION['login'] = $_POST['login'];
  2. $_SESSION['imie'] = $_POST['imie'];


Przypisujesz zmiennej z lewej strony wartość zmiennej z prawej.
Johnas
Dalej nie działa... Dodam że ten kod działa jak był wcześniej bo mam w ten sposób napisane pokazywanie własnego profilu a chcę aby pokazywało kogoś profil...
Dodam też że to jest błąd w linii 19 a oto kod błędu:
Kod
Warning: mysql_num_rows() expects parameter 1 to be resource, array given in C:\xampp\htdocs\profile.php on line 19
sebekzosw
zamiast

  1. if (mysql_num_rows($wynik) == 1) {
daj
  1. if (!empty($wynik)) {
Johnas
Zrobiłem tak jak napisałeś a teraz mam że jak wpisze id użytkownika jakiegoś i jestem zalogowany to pokazuje moje dane, a jak jestem wylogowany to nie pokazuje danych tylko napisy:
Kod
imie:
nazwisko:
email:

itd. Ale nie ma pobranych danych z mysql.
gigzorr
print_r($wynik; pod zapytaniem , co zwraca?
Johnas
$wynik jest użyty tylko w profilu użytkownika aby on sam mógł zobaczyć własne dane. A teraz tutaj to dałem ale nie wiem czemu tutaj nic nie zwraca. Może gryzie się z tym drugim.

  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. ?>
  4.  
  5. <?php include('header.php'); ?>
  6.  
  7. <h2>? Games2d.pl<-Gra dla wojowników<br />Profil:</h2>
  8. <div class="content">
  9. <?php
  10. if( isset($_GET['user_id']) AND is_numeric($_GET['user_id']) )
  11.  
  12. {
  13.  
  14. include 'inc/db.php'; // połączenie się z bazą danych
  15. $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL
  16.  
  17.  
  18.  
  19. $dane = mysql_fetch_assoc(mysql_query("SELECT * FROM $tabela WHERE `id`=".mysql_real_escape_string($_GET['user_id'])." LIMIT 1;"));
  20.  
  21.  
  22.  
  23.  
  24. if (!empty($dane)) {
  25.  
  26. echo 'Twoje dane:';
  27. $_SESSION['login'] = $_POST['login'];
  28. $_SESSION['imie'] = $_POST['imie'];
  29. echo '<br />id:<b>'. $_SESSION['id'];
  30. echo '</b><br />imie<b>:'. $_SESSION['imie'];
  31. echo '</b><br />nazwisko<b>:'. $_SESSION['nazwisko'];
  32. echo '</b><br />email:<b>'. $_SESSION['email'];
  33. echo '</b><br />login:<b>'. $_SESSION['login'];
  34. echo '</b>';
  35.  
  36. //Tu mają być dane? Jak je pobrać
  37. }
  38.  
  39.  
  40. else
  41. {
  42. echo 'Brak takiego użytkownika';
  43. }
  44. }
  45. ?>
  46. </div>
  47. <?php include('footer.php'); ?>



Tak teraz wygląda kod ale nie wiem jak te dane pobrać. Powiem że wszystko działa ponieważ jak wpisze id usera którego nie ma to kod zwraca błąd:
Kod
Nie ma takiego użytkownika
ale jak wpisze swoje id to standard: nie ma danych


@EDIT

Dobra rozkminiłem. Wystarczyło zmienić
Kod
echo '<br />id:<b>'. $_SESSION['id'];

na:
Kod
echo '<br />id:<b>'. $dane['id'];


Dziękuje za pomoc winksmiley.jpg temat do zamknięcia. Pozdro
Kenobi
Ale jeśli masz 2 zmienne dodaj do 2 i następnych .="". np.
  1. $zmienna = $_POST['imie'];
  2. $zmienna .="".$_POST['nazwisko'];
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.