Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Tworzenie profilu uzytkownika
Forum PHP.pl > Forum > PHP
Max Damage
Próbuję stworzyć profil użytkownika (tak jak np. na różnych forach).
Pierwszy skrypt wyświetla wszystkich użytkowników i linki:
  1. <?php
  2. $zapytanie2="select * from user order by user_id desc";
  3. $wynik2=$lacz->query($zapytanie2);
  4. while($wiadomosc2=$wynik2->fetch_assoc())
  5. {
  6. echo "<a href='profil.php?id=".$wiadomosc2['user_id']."'>".$wiadomosc2['nick']."</a>";
  7. echo '<br/>';
  8. }
  9. ?>

Po kliknięciu an link przenosi mnie na inną stronę gdzie mam zobaczyć profil swój lub innej osoby.
  1. <?php
  2. require_once('funkcje_wyswietl.php');
  3. require_once('prawidlowe_dane.php');
  4.  
  5. $id=$_GET['id'];
  6. $lacz=lacz_bd();
  7. $zapytanie="select * from user where user_id='$id'";
  8. $wynik=$lacz->query($zapytanie);
  9. if(isset($_SESSION['uzyt']))==$id
  10. {
  11.  while($wiadomosc=$wynik->fetch_array())
  12.  { 
  13.  echo '<br/>';
  14.  echo $wiadomosc['email'];
  15.  echo '<br/>'; 
  16.  echo $wiadomosc['haslo'];
  17.  echo '<br/>';
  18.  }
  19.  }
  20. else
  21. { 
  22. echo 'nie masz dostepu na to konto itd.';
  23. }
  24. ?>


Niestety wyświetla mi tylko błąd: syntax error, unexpected T_IS_EQUAL (w linii 10)
Czy to jest ogólnie rzecz biorąc poprawnie napisane? I co to za błąd, jak to naprawić tak aby wyświetlało to co chce?
vtuner
[left]
  1. <?php
  2. if(isset($_SESSION['uzyt']))==$id
  3. ?>


powinno być

  1. <?php
  2. if(isset($_SESSION['uzyt'])==$id)
  3. ?>

Max Damage
Hm, nom ok działa chociaż nie tak jak bym chciał. Teraz gdy nie jestem zalogowany pisze mi 'nie masz dostępu na to konto'. A gdy jestem zalogowany i wchodzę na swój profil pokazuje mi moje hasło i email, a gdy wchodzę na kogoś innego to pokazuje mi jego hasło i email.
Chciałem natomiast zrobić tak aby gdy jestem zalogowany pisało mi na moim profilu hasło i email, a na kogoś innego 'nie masz dostępu na to konto'.
Jak to powinienem mniej więcej przerobić ?
k@mil
sprawdz czy identyfikator (czy czym bys nie sprawdzal) uzytkownika zalogowanego jest rowny identyfikatorowi (albo cos innego) uzytkownika ktorego profil probujesz zmienic

chyba ze nie bardzo o takie cos ci chodzi
Kicok
Ja na twoim miejscu zacząłbym od sprawdzenia co zwraca isset" title="Zobacz w manualu PHP" target="_manual. Potem przeanalizowałbym jeszcze raz warunek, o którym była już mowa powyżej.
Max Damage
isset zwraca false gdy nie istnieje jakaś np. jakaś zmienna. Specjalnie ją tutaj napisałem aby wiedzieć czy ktoś jest zalogowany czy nie. Nie wiem co miałeś na myśli mówiąc mi o tym. Nie wiem nadal także jak to przerobić. Gdy ją usuwam to wszędzie mi pisze 'nie masz dostępu na to konto', niezależnie od tego czy jestem zalogowany czy nie. Może jakaś konkretniejsza podpowiedź ?
vtuner
sorry, zamiast:

  1. <?php
  2. if(isset($_SESSION['uzyt'])==$id)
  3. ?>


daj

  1. <?php
  2. if(isset($_SESSION['uzyt']) AND $_SESSION['uzyt']==$id)
  3. ?>
Max Damage
Niestety to też nie to. W ten sposób znów wszędzie wyświetla się : 'nie masz dostępu na to konto' niezależnie od tego czy jestem zalogowany czy nie :/
Ma ktoś może jeszcze jakieś pomysły?
vtuner
No to wyglada na to, że nie zapisuje Ci w sesji wartości ID.

Sprawdź co zwraca ci
  1. <?php
  2. echo $_SESSIOSN['uzyt']
  3. ?>
po zalogowaniu

Jeżeli będzie pusty to znaczy, że musisz poprawić przekazywanie danych do sesji.
Max Damage
Ehh, no tak, miałem w sesji przekazywany nick zamiast id użytkownika. Ale już sobie poradziłem. Dzięki wielkie za pomoc.
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.