Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapisywanie usera do bazy danych!
Forum PHP.pl > Forum > Przedszkole
woxala123
Witam mam taki plik który zapisuje dane o userze. Ale chcę jeszcze by zapisywał usera odwiedzanej strony. Ale coś mnie nie wychodzi. Proszę o podpowiedż.
Wszystko zapisuje lecz nie zapisuje usera w kolumnie `username`
  1. $ip = $_SERVER['REMOTE_ADDR']; //Przypisujesz Zmiennej IP.
  2. $REQUEST_URI = $_SERVER['REQUEST_URI'];
  3. $username = $_SESSION['MM_Username'];
  4. $czas = date("H:i:s"); //Przypisujesz zmiennej czas.
  5. $data = date("d-m-Y"); //Przypisujesz Zmiennej Date..
  6.  
  7. mysql_connect ("localhost", "xxx", "xxx"); //Łączysz Się z Bazą
  8. mysql_select_db ("xxx"); //Wybierasz Bazę
  9. $zapytanie = "INSERT INTO `ip` (`id`, `ip`, `czas`, `data`, `REQUEST_URI`, `username`) VALUES ('', '$ip', '$czas', '$data', '$REQUEST_URI', '$username')";//Przypisujesz zmiennej Zapytanie
  10. mysql_query($zapytanie); //Wykonujesz Zapytanie
  11. mysql_close(); //Zamykasz połączenie
rad11
http://php.net/manual/pl/function.mysql-errno.php dodaj mysql_error ponadto jeżeli kolumna id jest autoincrement i kluczem to nie musisz jej dorzucać do zapytania tym bardziej w ten sposób.
woxala123
Ale nadal nie zapisuje do bazy danych sesji usera do kolumny useranme.
rad11
A masz session_start() gdzieś? Bo tutaj to ja tego nie widzę.
woxala123
Mam wyżej. Ale tego nie kopiowałem.

A czyy idż tym tokiem myślenia żeby pobrać wartość sesji username z tabeli userlogin i wtedy zapisać z tymi pozostałymi danymi w tabeli ip?

Zrobiłęm już taką zmienną

$username = sprintf("SELECT * FROM userlogin WHERE username = %s", GetSQLValueString($colname_Recordset1, "text"));
Ale nadal nie zapisuje co tutaj jest grane?

Widzę że jest to ciężki temat by zapisać usera który odwiedzał naszą stronę
nospor
No wlasnie nie jest to wcale ciezki temat.... sprawdz co masz w tej sesji a nie kombinujesz jak kon pod gorke...
woxala123
Zadam nie mądre pytanko jak to zrobić?
nospor
Po co bierzesz sie za 'tak skomplikowane' rzeczy, skoro nie potrafisz jeszcze wyswietlic zawartosci zmiennej?? Moze wpierw by przerobic troche podstaw?

print_r($_SESSION);

Lektura obowiazkowa:
Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy
woxala123
Sesja na pewno jest, gdyż wyświetla mi nazwa usera który jest zalogowany w swoim profilu, tylko chce by dopisywał się do tabeli ip jakie strony oglądał.

A może jego id dopisywać?
nospor
Ja sie nie pytam, czy sesja napewno jest czy nie... ja sie pytam, co ona zawiera...

print_r($_SESSION);
pokaz jej zawartosc.
woxala123
Okey zrobiłem plik estowy i pokazuje to:
Array
(
[MM_Username] => robert
[MM_UserGroup] =>
)

Okey zrobiłem plik estowy i pokazuje to:
Array
(
[MM_Username] => robert
[MM_UserGroup] =>
)


Z czasem trzeba też podpowiedzieć by zrobić plik testowy i wtedy wiadomo o co gra. Nie zawsze ktoś jest bystry tak jak wy.
nospor
Ja cie nie prosilem o plik testowy. Ja prosilem bys dal print_r($_SESSION); w pliku,ktory rzekomo ci nie dziala. Do tego nie trzeba byc bystrym, bez przesady
woxala123
Witam!
No cóż nospor podszedłem do tego tematu dziś na spokojnie i udało mi się to rozwiązać. Dobrze szedłem jednak tokiem perwszego skryptu który tu publikowałem ale teraz po modyfiakcji wygląda tak i działa. Jeszcze sprawdzę czy działa na serwerze zewnętrznym.
  1. $user = $_SESSION['MM_Username'];
  2. $ip = $_SERVER['REMOTE_ADDR']; //Przypisujesz Zmiennej IP.
  3. $REQUEST_URI = $_SERVER['REQUEST_URI'];
  4. $czas = date("H:i:s"); //Przypisujesz zmiennej czas.
  5. $data = date("d-m-Y"); //Przypisujesz Zmiennej Date..
  6.  
  7. mysql_connect ("localhost", "xxx", "xxx"); //Łączysz Się z Bazą
  8. mysql_select_db ("xxx"); //Wybierasz Bazę
  9. $zapytanie = "INSERT INTO `ip` (`id`, `user`, `ip`, `czas`, `data`, `REQUEST_URI`) VALUES ('', '$user', '$ip', '$czas', '$data', '$REQUEST_URI')";//Przypisujesz zmiennej Zapytanie
  10. mysql_query($zapytanie); //Wykonujesz Zapytanie
  11. mysql_close(); //Zamykasz połączenie
viking
Po co rozbijasz datę i czas na dwie wartości? Trzymaj to razem w bazie jako datetime albo timestamp. REQUEST_URI jest wartością niebezpieczną, narażasz się na atak.
woxala123
Wiem o tym na razie jest wszystko w razie testowania różnych opcji. Teraz będę zmieniał szybko bazę ip. Choćby datę i czas w jednej kolumnie trzymać itp. Dzięki viking za wskazówki.
Na pewno jeszcze będę miał parę pomysłów do realizacji i chętnie skorzystam z waszej wiedzy. Z góry dzięki za podpowiedzi i nie ważne czy może były złośliwe czy też nie. Ale dają torpedę by dalej poznawać tajniki php i sql. No i w końcu muszę jeszcze objąć rozumowanie pdo.
Pozdrawiam.
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.