Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Pobranie danych zalogowanego użytkownika i wstawienie je w pole formularza zgłoszeniowego.
Forum PHP.pl > Forum > Przedszkole
vLeK
Posiadam stronę, na której użytkownik jest w stanie się zarejestrować a jego dane trafiają do bazy danych MySQL.
Użytkownik ma możliwość zalogowania się na stronie i jego poczynania śledzone są przez sesję.
Gdy użytkownik chce sfinalizować transakcję pojawia się pole formularza, które powinno być puste w przypadku gdy użytkownik nie jest zalogowany oraz powinno wypełnić się wprowadzonymi wcześniej w czasie rejestracji danymi. Jak mam dokonać, żeby dane tego użytkownika zostały wklejone w pola formularza?
Nie jestem w stanie sam sobie z tym poradzić i proszę o pomoc.
Szukałem, googlowałem i nic nie znalazłem. Może to już zmęczenie o tej porze, a bardzo zależy mi na rozwiązaniu.
Pozdrawiam.
PawelC
Tutaj masz przykład jak wstawić dane z bazy do pola textarea, z resztą danych i pól robisz tak samo:
Wstawienie danych z bazy do textarea
Oczywiście, zanim pobierzesz dane to musisz sprawdzić czy jest zalogowany, jeżeli tak to pobrać dane z bazy dla konkretnego usera.

W tym linku co podałem, koleś robi to samo co Ty, wprowadza dane z bazy do formularza i jest tam nawet kod działający smile.gif Krótko mówiąc słabo szukałeś smile.gif
vLeK
Dzięki za szybką odpowiedź, ale właśnie u mnie głównym problemem jest to, że nie wiem w jaki sposób mam sprawdzić czy podany użytkownik jest zalogowany i dopiero wtedy dostać się do jego danych zawartych w bazie.
Mimo wszystko dziękuję za szybką pomoc.
PawelC
Ja to robię w taki sposób:
  1. <?php
  2. if(isset($_SESSION['zalogowany']))
  3. {
  4.  
  5. echo 'Zalogowany jest: '. $_SESSION['zalogowany'];
  6. }
  7.  
  8. else
  9. {
  10. echo "Brak uprawnień!";
  11. }
  12. ?>

I w tym wypadku jeżeli $_SESSION['zalogowany'] jest pusta to oznacza, że użytkownik nie jest zalogowany, i wywali mu komunikat brak uprawnień, a jeżeli jest zalogowany to wyświetli mu Zalogowany jako....

Krótko mówiąc, sprawdzasz czy zmienna sesji do której jest przypisany login, w moim wypadku jest to $_SESSION['zalogowany] jest pusta, jeżeli jest to znaczy że nie jest zalogowany.

Zrób tak, że jeżeli jest zalogowany to pobierzesz dane z bazy i wstawisz w formularz, a jeżeli nie jest zalogowany to przekieruje go do formularza logowania smile.gif
vLeK
Noż jasna cholera. Wiem, że ciężko w to uwierzyć, ale właśnie tak kombinowałem. Kod zmieniłem na Twój żeby było mi prościej zrozumieć. Na stronie wyświetla mi że jestem zalogowany, więc teraz kwestią pozostaje wstawienie formularza z danymi zalogowanego użytkownika. Ten moment mnie przerasta i w sumie nie wiem czemu, bo do tej pory wydaje mi się zrobiłem kilka bardziej skomplikowanych rzeczy. Jeżeli mógłbym Cię prosić o napisanie krótkiego kodu, który wykona to zagadnienie, to Cię chyba ozłocę :-) Starałem się rozwiązać ten problem od 16 i miłym zakończeniem dnia, byłoby podpięcie tego cholernego samowypełniającego się formularza. Z góry dziękuję.

<?php
if(isset($_SESSION['user_id']))
{

echo 'Zalogowany jest: '. $_SESSION['user_id'];
// Rozumiem, że tu ma nastąpić połączenie z bazą danych i wybranie pól z tabeli "users" która dotyczy zalogowanego użytkownika.
// Tutaj powinien znajdować się formularz z "przeklejonymi" danymi
}

else
{
echo "Brak uprawnień!";
}
?>
PawelC
  1. <?php
  2. if(isset($_SESSION['user_id']))
  3. {
  4.  
  5. echo 'Zalogowany jest: '. $_SESSION['user_id'];
  6. mysql_connect('host','login','haslo');
  7. $user_id=$_SESSION['user_id'];
  8. $sql="select * from users where user_id='$user_id'";
  9. $row = mysql_fetch_array($sql);
  10. echo '<form method="POST" action="">';
  11. //dalsza część formularza
  12. }
  13.  
  14. else
  15. {
  16. echo "Brak uprawnień!";
  17. }
  18. ?>

Jakie masz kolumny w tabeli users? i jakie chcesz pobrać?
vLeK
Pola jakie potrzebuję pobrać to np. first_name, last_name, adres. W sumie, jeżeli pokażesz mi na jednym przykładzie to z resztą powinienem sobie poradzić. Zaraz wypróbuję to rozwiązanie i dam znać jakie sa rezultaty :-)
PawelC
  1. <?php
  2. if(isset($_SESSION['user_id']))
  3. {
  4.  
  5. echo 'Zalogowany jest: '. $_SESSION['user_id'];
  6. mysql_connect('host','login','haslo');
  7. $user_id=$_SESSION['user_id'];
  8. $sql=mysql_query("select * from users where user_id='$user_id'");
  9. $row = mysql_fetch_array($sql);
  10. echo '<form method="POST" action="">';
  11. echo '<input type="text" name="first_name" value="'.$row['first_name'].'"><br />';
  12. echo '<input type="text" name="last_name" value="'.$row['last_name'].'"><br />';
  13. echo '<input type="text" name="adres" value="'.$row['adres'].'"><br />';
  14. echo '</form>';
  15. }
  16.  
  17. else
  18. {
  19. echo "Brak uprawnień!";
  20. }
  21. ?>


# poprawka w kodzie
vLeK
Wykonałem kod i oto co otrzymałem za błąd:

Wystąpił błąd w skrypcie 'c:\usr\krasnal\www\uklad_strony\html\moduly\sprawdzenie.php' w wierszu 72:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Data/godzina: 6-7-2009 01:14:37
  1. <?php
  2. if(isset($_SESSION['user_id']))
  3. {
  4. $dane ="SELECT * FROM users ";
  5. $wynik = @mysql_query ($dane); // Wykonanie zapytania.
  6. echo 'Zalogowany jest: '. $_SESSION['user_id'];
  7. require_once ('./../mysql_connect.php'); // Nawiązanie połączenia z bazą danych.
  8. $user_id=$_SESSION['user_id'];
  9. $sql="select * from users where user_id='$user_id'";
  10. $row = mysql_fetch_array($sql);
  11. echo '<form method="POST" action="">';
  12. echo '<input type="text" name="first_name" value="'.$row['first_name'].'"><br />';
  13. echo '<input type="text" name="last_name" value="'.$row['last_name'].'"><br />';
  14. echo '<input type="text" name="adres" value="'.$row['adres'].'"><br />';
  15. echo '</form>';
  16. //dalsza część formularza
  17. }
  18.  
  19. else
  20. {
  21. echo "Brak uprawnień!";
  22. }
  23. ?>

Nie wiem czy to zmęczenie, ale to mnie przerasta :-/
PawelC
Nie nie ja zrobiłem błąd zabrakło mysql_query biggrin.gif tutaj
  1. <?php
  2. $sql="select * from users where user_id='$user_id'";
  3. ?>

Powinno być:
  1. <?php
  2. $sql=mysql_query("select * from users where user_id='$user_id'");
  3. ?>

Oczywiście kod w 8 poście poprawiony i działa, przynajmniej u mnie biggrin.gif

#Zmęczenie robi swoje tongue.gif
vLeK
Wystąpił błąd w skrypcie 'c:\usr\krasnal\www\uklad_strony\html\moduly\sprawdzenie.php' w wierszu 70:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Data/godzina: 6-7-2009 01:19:59

  1. <?php
  2. if(isset($_SESSION['user_id']))
  3. {
  4. echo 'Zalogowany jest: '. $_SESSION['user_id'];
  5. require_once ('./../mysql_connect.php'); // Nawiązanie połączenia z bazą danych.
  6. $user_id=$_SESSION['user_id'];
  7. $sql=mysql_query("select * from users where user_id='$user_id'");
  8. $row = mysql_fetch_array($sql);
  9. echo '<form method="POST" action="">';
  10. echo '<input type="text" name="first_name" value="'.$row['first_name'].'"><br />';
  11. echo '<input type="text" name="last_name" value="'.$row['last_name'].'"><br />';
  12. echo '<input type="text" name="adres" value="'.$row['adres'].'"><br />';
  13. echo '</form>';
  14. }
  15.  
  16. else
  17. {
  18. echo "Brak uprawnień!";
  19. }
  20. ?>

Niestety nadal nie śmiga. Faktycznie już jestem zmęczony, bo wcześniejszy mój kod był mocno spaprany jakimiś starymi próbami uruchomienia tego formularza ;P
PawelC
Mi wywala taki błąd co masz Ty, tylko wtedy gdy nie wybiorę bazy danych lub podam złą nazwę, w innym wypadku skrypt działa poprawnie.
vLeK
OK, działa. Wielkie dzięki :-)
guitar.gif
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.