Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z uaktualnieniem IP w bazie danych
Forum PHP.pl > Forum > Przedszkole
dunce
Witam mam problem z uaktualnieniem adresów ip w bazie danych .Chiałbym aby adresy ip uzytkowników którzy nie mają jeszcze wpisu w bazie uaktualniły się z pierwszym logowaniem , próbowałem już update i nic z tego. Baza 'users' tabela 'ip' Proszę o pomoc.
  1. <?php include "../base.php";
  2.  
  3. if (!empty($_SERVER['HTTP_CLIENT_IP'])){
  4. $ip=$_SERVER['HTTP_CLIENT_IP'];
  5. }elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  6. $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  7. }else{
  8. $ip=$_SERVER['REMOTE_ADDR'];
  9. }
  10.  
  11. if(!empty($_POST['username']) && !empty($_POST['password']))
  12. { $IP = $_SERVER['REMOTE_ADDR'];
  13. $username = mysql_real_escape_string($_POST['username']);
  14. $password = md5(mysql_real_escape_string($_POST['password']));
  15.  
  16. $checklogin = mysql_query("SELECT * FROM users WHERE EmailAddress = '".$username."' AND Password = '".$password."'");
  17.  
  18. if(mysql_num_rows($checklogin) == 1)
  19. {
  20.  
  21. $sql = "UPDATE users(ip) VALUES('$ip')";
  22. $row = mysql_fetch_array($checklogin);
  23. if ($row['Status'] != 'Blocked'){
  24.  
  25. $_SESSION['Username'] = $row['Username'];
  26. $_SESSION['UserID'] = $row['UserID'];
  27. $_SESSION['Status'] = $row['Status'];
  28. $_SESSION['LoggedIn'] = 1;
  29.  
  30. echo "ok";
  31. }
  32. else {
  33. echo 'Twoje konto zostało zablokowane!';
  34. }
  35. }
  36. else
  37. {
  38. echo "Podaj poprawny Adres e-mail i hasło";
  39. }
  40. }
  41. else {
  42. echo "Wypełnij wszystkie pola.";
  43. }
  44.  
  45. ?>
Daimos
  1. UPDATE users SET ip = '$ip'

a poza tym, nie wywołujesz nigdzie zapytania, podstawiasz tylko do zmiennej, daj mysql_query na $sql
dunce
  1. $sql = "UPDATE users SET ip = '$ip'"
  2. mysql_query($sql);

Nic nie daje
  1. $row = mysql_fetch_array($checklogin);
  2. if ($row['Status'] != 'Blocked'){
  3.  
  4. $_SESSION['Username'] = $row['Username'];
  5. $_SESSION['UserID'] = $row['UserID'];
  6. $_SESSION['Status'] = $row['Status'];
  7. $_SESSION['LoggedIn'] = 1;
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9. $sql = "UPDATE users SET ip = '$ip'";
  10. mysql_query($sql);
  11. echo "ok";
  12. }

zapisuje wszystkim userom moje ip
matiit
Bo nie wiesz jak używać UPDATE.
http://www.sqlcourse.com/index.html

Przyda Ci się
dunce
Mam dosyć odsyłaczy do innych stron lub google - ludzie pamiętajcie że nikt nie lubi forów gdzie zamiast pomagać odsyla sie gdzie indziej .
Jaki jest sens istnienia forum lub nawet działu w którym się nie pomaga .
Mam pomysł - wklejcie kod wyszukiwarki żeby zamiast odpowiedzi na zadane pytanie pokazywało się np. google i sprawa będzie załatwiona.
zebrowski1073
Proszę cię abyś napisał czy tym zapytaniem update chcesz zmienić id jednemu użytkownikowi czy wszystkim, bo jak jeden mądry informatyk powiedział mi że się nie da wszystkich rekordów zmienić jednym poleceniem przykła update

$zapytanie = 'update tabela id=$id where twój_klucz=$twoj_klucz ;
to naprzykła

$zapytanie = 'SELECT * from tabela ORDER BY twój klucz ASC' ;
potem

$p = mysql_query($zapytanie) ;

foreach($p as $kom)
{
$zapytanie = 'update tabela id=$id where twój_klucz=$p['twoj_klucz];
mysql_query($zapytanie) ;
}

gdzie $ip twoje ip ;


Może coś zapomniałęm dodać
dunce
Skrypt nie miał zapisu ip podczas rejestracji a w momencie jak go dodałem miałem już na stronce ok 100.000 userów .
Chcę aby teraz podczas logowania uaktualnił sie adres danego użytkownika w bazie danych. czyli - loguję się jako np. admin i w tabeli users i kolumnie ip gdzie wczesniej było 0 zapisze sie ip w postaci np 32.534.345.235. Teraz podczas próby rejestracji drugiego konta wyskoczy monit o dublowaniu kont
Nie chcę aby rejestrowali się podwójnie
nospor
@zebrowski1073 pleciesz trzy po trzy, podajesz jakies totalnie bledne przyklady.... czemu to ma sluzyc?

@dunce zacznij wkoncu uzywac BBCODDE PHP dla kodu PHP!

  1. $sql = "UPDATE users SET ip = '$ip' where UserID={$row['UserID']}";
zebrowski1073
Ja nie po Ip tylko po emailu i loginie loginie zrobił. Trzeba zadać pytanie do bazy danych czy taki użytkownik istnieje
np:

zapytanie = "SELECT * from users where email=".$email." and login=".$login ;

Jak dobrze pamiętam Pętlę z odpowiednimi informacjami takimi jak
taki email już jest zarejestrowany lub taki login jest zajęty musisz sam zrobić można zrobić przez javascrypt lub php
dunce
Dzięki przeogromne @nospor męczyłem się z tym ok tygodnia .
Taką pomoc to ja rozumiem oby więcej takich moderatorów .


---temat do zamknięcia---

Cytat(dunce @ 28.02.2014, 18:40:21 ) *
Mam dosyć odsyłaczy do innych stron lub google - ludzie pamiętajcie że nikt nie lubi forów gdzie zamiast pomagać odsyla sie gdzie indziej .
Jaki jest sens istnienia forum lub nawet działu w którym się nie pomaga .
Mam pomysł - wklejcie kod wyszukiwarki żeby zamiast odpowiedzi na zadane pytanie pokazywało się np. google i sprawa będzie załatwiona.


A wy którzy odsyłają do google lub innych stron - PAMIĘTAJCIE ŻE SZUKAJĄCY PROBLEMÓW NAPĘDZAJĄ FORUM -rozwiązujcie je a nie odsyłajcie .
nospor
@dunce to nie do konca tak....
Nikt tu na forum nie chce, by forum bylo napedzane przez leni patentowantowanych co czekają tylko na gotowca. Naprawde takich ludzi "napedzajacych" tutaj nie potrzebujemy. No i nie mowie, ze mam na mysli Ciebie. Podalem tylko przyklad, ze nie kazdy typ usera jest tu mile widziany.

Odsylanie do manuali bardzo czesto ma sens. Uzytkownicy bardzo czesto wychodzą z zalozenia, ze forum jest od tego by im wszystko podac na tacy.... Tak nie jest. Jak ktos sie pyta o banalną rzecz, ktora bardzo dobrze jest opisana w manualu lub bez problemu do odnalezenia w google, to sorki, ale to tylko żle o nim swiadczy i dostaje kopniaka wlasnie do manuala.

Tobie niestety tez by sie przydalo troche podstaw takich jak:
1)zapytania w php wykonuje sie przy uzyciu miedzy innymi przy uzyciu mysql_query a nie poprzez samo ich napisanie..... To tak jakbys napisal na karce liste zakupow do zrobienia i czekal az samo sie wszystko na stole pojawi
2) Podstawy skladni UPDATE.
To są rzeczy, ktore powinienies dowiedziec sie sam., gdyz są ogolnie dostepne, za darmo i są to podstawy podstaw.

Na przyszłość więc mniej krzycz, jak to napedzasz forum, a wiecej rob samemu. smile.gif
dunce
Niestety pragnę się niezgodzić z twoją wypowiedzią tylko konkretne zapytanie w wyszukiwarce pokieruje szukającego do waszej strony .Rozumiem że jest ona już rozbudowana i ma swoja renomę ale początki w których każdy problem był skrupulatnie rozpatrywany i rozwiązywany miało każde szanujące się forum, i niestety panie nospor ale właśnie tacy jak ja napędzają nawet to forum - bez nawet tak prostych zapytań to forum by nie istniało.
Problem jak widziałeś starałem się sam rozwiązać - nie każdy wie wszystko ale właśnie tu pojawia się wszechmocny INTERNET w którym jest wszystko jak to mówią "nie ma w gogle nie ma wogle' . i teraz ktoś inny szukający tego samego rozwiązania znajdzie konkretną odpowiedź a nie odesłanie do google.
Wiesz jak wkurza jak w google podczas poszukiwań rozwiązania w pierwszej dziesiątce znajdujesz stronkę np. waszą i wchodzisz w nia pełen nadziei a tu jakiś wał pisze "Poszukaj sobie w google to nie boli" I tak w koło macieju .

Pozdrawiam i oby to forum nie osiadło na laurach bo jest dobre.
nospor
Cytat
Wiesz jak wkurza jak w google podczas poszukiwań rozwiązania w pierwszej dziesiątce znajdujesz stronkę
A wiesz jak wkurza gdy na forum poraz milionowy pada pytanie:
czemu to sie nie wykonuje: $sql = 'tu zapytanie';
tylko i wylacznie dlatego ze panu leniwemu nie chcialo sie doczytac wpierw darmowego i po polsku kursu php + mysql? Forum naprawde nie jest na takie pytania.

Cytat
Pozdrawiam i oby to forum nie osiadło na laurach bo jest dobre.
Forum nie osiada na laurach. Forum jedynie stara sie wymusic na leniuszkach odrobine wiecej samodzielonosci. Na kazdym normalnym forum tak banalne pytania, wynikajace z lenistwa, są zamykane a w najlepszym stopniu komentowane.

Skoro łapiesz się za mysql, to wpierw powinienies zapoznac sie z podstawową obsługą mysql w php. Przychodzenie na forum z pytaniem, czemu napisanie zapytania nie powoduje jego wykonania swiadczy, że nie zapoznales się wpierw z podstawą.
Przychodzenie na forum z zapytaniem, które jest totalnie niepoprawne składniowo, swiadczy, ze nie raczyles zajrzec do manuala by zobaczyc jak skladnia zapytania powinna wygladac.

Forum nie sluzy na poprawianiu podstawowej skladni za leniuszka. Wszystko to jest opisane w dostepnej za darmo dokumentacji. Tutaj nie trzeba wertowac google by znalezc odpowiedz. Tutaj wystarczy zajrzec do manuala mysql lub php w zaleznosci od problemu.
dunce
Zmuszony jestem przyznać Ci rację faktem jest że niektórzy pragną napisać strone bez wiedzy i za darmo zadając pytania na różnych forach a niektóre pytania kierują bez sensu i to po raz wtóry .
Pozdrawiam i mam nadzieję że nastepny raz jak zwrócę się z problemem na waszym forum nie będę kojarzony z "leniuszkiem" bo nawet najlepsi nie są wszechwiedzącymi i każdy może czegoś nie wiedzieć lub przeoczyc i żaden manual nie pomaga wiedzieć wszystkiego.
nospor
Cytat
" bo nawet najlepsi nie są wszechwiedzącymi i każdy może czegoś nie wiedzieć lub przeoczyc i żaden manual nie pomaga wiedzieć wszystkiego.
Zgadza sie, ale akurat Twoje pytanie tutaj zadane, do takich nie nalezalo wink.gif

Cytat
Pozdrawiam i mam nadzieję że nastepny raz jak zwrócę się z problemem na waszym forum nie będę kojarzony z "leniuszkiem"
I tak trzymac.

I zmien proszę te stopke. Tylko wzbudza niepotrzebne emocje wink.gif
To nie jest rozkaz, jedynie prośba.
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.