Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] blokowanie userow po nicku.
gigzorr
post 26.07.2010, 15:30:38
Post #1





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

Ostrzeżenie: (0%)
-----


witam. zrobilem sobie tabele "zablokowany" i w niej kolumny ->
id
login
mine_login
wartosc-zablokowany


Kazdy zalogowany uzytkownikow , ma dostep do pola zablokuj usera , i jak wpisze nick to ma byc zablokowany ten user tylko dla tego co go blokowal, tzn wyslal info.

Dla kolumny wartosc-zalobkowany ustawilem wartosc 1 auto , czy przy insercie juz niby bedzie zablokowany ale insert nie ma where wiec idk jak mam dodawac mine_login , tzn login usera zalogowanego ktory wyslal login usera do zablokowania.
Czyli to tak wyglada:
  1. $blokuj = $_POST['blokuj'];
  2.  
  3. $query = "INSERT INTO zablokowany(login) values('".$blokuj."')" or die(mysql_error());
  4. $result = mysql_query($query);
  5. if ($result)
  6. {
  7. echo 'Użytkownik został zablokowany.';
  8. }


Ale teraz przy wysylaniu wiadomosci , chce zeby sprawdzalo ->
  1. $sql = "SELECT zablokowany-wartosc FROM zablokowany WHERE mine_login = '".$_SESSION['zalogowany_user_login']."'" or die(mysql_error());
  2. print_R($sql);
  3. //$sql = 'select * from rejestracja';
  4. $result = mysql_query($sql);
  5. $test = mysql_fetch_array($result,MYSQL_ASSOC);
  6. if ($test['zablokowany-wartosc'] == 1)
  7.  
  8. {
  9. echo 'zablokowany!';
  10. }


Ale jak widac , to jest juz bez sensu po where
  1. $sql = "SELECT zablokowany-wartosc FROM zablokowany WHERE mine_login = '".$_SESSION['zalogowany_user_login']."'" or die(mysql_error());


Dziekuje za jakiekolwiek podpowiedzi.
Go to the top of the page
+Quote Post
tehaha
post 26.07.2010, 15:54:01
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


po pierwsze to do bazy dodawaj id zablokowanych użytkowników a nie ich nick
- user podaje nick jaki ma być zablokowany -> sprawdzasz czy taki użytkownik istnieje i próbujesz pobrać jego ID, następnie to ID dodajesz do tabeli zablokowani

2. nie bardzo rozumiem Twój problemu,
- w tabeli blokowani musisz mieć więcej pól: ID użytkownika, który ustawia blokowanie oraz ID użytkownika, który ma być blokowany potem kiedy on chce wysłać wiadomość do jakiegoś użytkownika to sprawdzasz czy istnieje taki rekord w tabeli zablokowani posługując się ID wysyłającego i adresata wiadomości

Ten post edytował tehaha 26.07.2010, 15:54:31
Go to the top of the page
+Quote Post
PanGuzol
post 26.07.2010, 15:59:48
Post #3





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

Ostrzeżenie: (0%)
-----


  1. INSERT INTO zablokowany(login,mine-login) VALUES('logindozablokowania','twojlogin')

To jest rozwiązanie w oparciu tego co masz, ale lepiej jak będziesz operował na id a nie na loginach. Tak jak napisał tehaha.

Ten post edytował PanGuzol 26.07.2010, 16:00:21


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
Go to the top of the page
+Quote Post
gigzorr
post 26.07.2010, 16:25:24
Post #4





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

Ostrzeżenie: (0%)
-----


narazie chce po loginach sobie zrobic , ale mam kolejny problem , insert juz dodaje moj login tez.
ale to zapytanie :
  1. $sql = "SELECT zablokowany_wartosc FROM zablokowany WHERE mine_login = '".$_SESSION['zalogowany_user_login']."'" or die(mysql_error());


niby dalem przed zablokowany: login , ale to tez jest bez sensu , wiem , ze po where jest 100% dobrze.

i jeszcze tak:
  1. $sql = "SELECT login FROM zablokowany WHERE mine_login = '".$_SESSION['zalogowany_user_login']."'" or die(mysql_error());
  2. print_R($sql);
  3. //$sql = 'select * from rejestracja';
  4. $result = mysql_query($sql);
  5. $test = mysql_fetch_array($result,MYSQL_ASSOC);
  6.  
  7. if ($test['zablokowany-wartosc'] == 1)
  8. {
  9. echo 'zablokowales tego usera, nie mozesz wyslac msg do niego.';
  10. }


teraz cos takiego wykombinowalem:
  1. $sql = "SELECT login,zablokowany_wartosc FROM zablokowany WHERE mine_login = '".$_SESSION['zalogowany_user_login']."'" or die(mysql_error());
  2. print_R($sql);
  3. //$sql = 'select * from rejestracja';
  4. $result = mysql_query($sql);
  5. $test = mysql_fetch_array($result,MYSQL_ASSOC);
  6. if ($test['zablokowany_wartosc'] == 1)
  7. {
  8. echo 'blocked';
  9. }
  10. else { }


niby dziala , ale blokuje kazdego usera.

Ten post edytował gigzorr 26.07.2010, 16:36:22
Go to the top of the page
+Quote Post
PanGuzol
post 26.07.2010, 17:01:04
Post #5





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

Ostrzeżenie: (0%)
-----


Dodaj sobiw w WHERE jeszcze login='jakislogin'.
Gdzie jakislogin to login osoby która ma być blokowana/lub nie.


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
Go to the top of the page
+Quote Post
Fifi209
post 26.07.2010, 17:07:00
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


yyy co to jest za twór:
  1. $sql = "SELECT login,zablokowany_wartosc FROM zablokowany WHERE mine_login = '".$_SESSION['zalogowany_user_login']."'" or die(mysql_error());


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
!*!
post 26.07.2010, 17:12:14
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


A jak wpiszesz na sztywno mine_login = 'mojlogin' to działa? Poza tym dla własnej zdrowotności zrób to na ID

Kod
id | id_blokującego | id_tego_co_zostal_zablokowany
1   12                     22


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
gigzorr
post 26.07.2010, 17:17:03
Post #8





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

Ostrzeżenie: (0%)
-----


no dziala , tylko do zadnego usera nie idzie wyslac , bo zablokowalo all , i narazie po nickach chce ; >
  1. $sql = "SELECT login,zablokowany_wartosc FROM zablokowany WHERE mine_login = '".$_SESSION['zalogowany_user_login']."'" or die(mysql_error());


to zapytanie mi cos za bardzo nie gra , zablokowany_wartosc musi byc bo pozniej sprawdzam czy jest 1 bo jak 1 to zablokowany , ale login(login ktorego mam zablokowac) tez musi byc a pozniej sprawdzam mine_Login , zalogowanego usera i po tym rozrozniam .

Ten post edytował gigzorr 26.07.2010, 17:17:57
Go to the top of the page
+Quote Post
!*!
post 26.07.2010, 17:20:58
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Nie za bardzo rozumiem dlaczego chcesz sprawdzać czy 1, gdy zablokowany, przecież to oczywiste skoro istnieje w tej tabeli.

Przypisz to chociaż do zmiennej

Kod
$login = $_SESSION['zalogowany_user_login'];


A później

Kod
$sql = "SELECT login,zablokowany_wartosc FROM zablokowany WHERE mine_login = '$login';


Ten post edytował !*! 26.07.2010, 17:28:20


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
gigzorr
post 26.07.2010, 17:23:21
Post #10





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

Ostrzeżenie: (0%)
-----


Mam sesje zalogowanego usera , wiec tutaj jest dobrze wiec jest dobrze porownane z mine_Login , bo tam trzymam usera ktory dodal czyli usera zalogowanego.

Ten post edytował gigzorr 26.07.2010, 17:23:57
Go to the top of the page
+Quote Post
Fifi209
post 26.07.2010, 17:26:11
Post #11





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(gigzorr @ 26.07.2010, 17:17:03 ) *
no dziala , tylko do zadnego usera nie idzie wyslac , bo zablokowalo all , i narazie po nickach chce ; >
  1. $sql = "SELECT login,zablokowany_wartosc FROM zablokowany WHERE mine_login = '".$_SESSION['zalogowany_user_login']."'" or die(mysql_error());


to zapytanie mi cos za bardzo nie gra


O czym ja już wcześniej wspomniałem... zobacz gdzie używa się or die bo ja Ci powiem, że nie przy stringach. Zobacz jej połączenie np. z mysql_connect


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
gigzorr
post 26.07.2010, 17:29:21
Post #12





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

Ostrzeżenie: (0%)
-----


Cytat(fifi209 @ 26.07.2010, 18:26:11 ) *
O czym ja już wcześniej wspomniałem... zobacz gdzie używa się or die bo ja Ci powiem, że nie przy stringach. Zobacz jej połączenie np. z mysql_connect


Wspomniales tylko " co to za two" , ok wywalilem to , ale w czym ma mi to pomoc?;p
Go to the top of the page
+Quote Post
PanGuzol
post 26.07.2010, 17:42:11
Post #13





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

Ostrzeżenie: (0%)
-----


Dodajesz do tabeli zablokowany rekordy gdy jakiś user chce zablokować innego tak?

Więc aby sprawdzić czy dany user jest zablokowany sprawdzasz czy istnieje rekord dodany przez usera blokującego z loginem blokowanego czyli:
  1. SELECT login,zablokowany_wartosc FROM zablokowany WHERE mine_login = 'loginblokujacego' AND login='loginzablokowanego'

jeśli zwróci Ci jakieś rekordy to znaczy, że jest zablokowany, jak nie zwróci nic to niezablokowany.

Ten post edytował PanGuzol 26.07.2010, 17:42:39


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
Go to the top of the page
+Quote Post
gigzorr
post 26.07.2010, 17:48:56
Post #14





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

Ostrzeżenie: (0%)
-----


oto mi chodzilo , poprostu nie sprawdzalem co wpisuje ktos , i nie porownywalem do loginu z tabeli zablokowany.


dzieki za pomoc.
Go to the top of the page
+Quote Post
Fifi209
post 26.07.2010, 18:17:14
Post #15





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(gigzorr @ 26.07.2010, 17:29:21 ) *
Wspomniales tylko " co to za two" , ok wywalilem to , ale w czym ma mi to pomoc?;p

Bo chciałem, abyś sam zobaczył błąd.

To było równie mądre jak zrobienie:
  1.  
  2. $string = "gigzorr" or die(mysql_error());
  3.  


Ten post edytował fifi209 26.07.2010, 18:17:32


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:19