Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] blokowanie userow po nicku.
Forum PHP.pl > Forum > Przedszkole
gigzorr
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.
tehaha
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
PanGuzol
  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.
gigzorr
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.
PanGuzol
Dodaj sobiw w WHERE jeszcze login='jakislogin'.
Gdzie jakislogin to login osoby która ma być blokowana/lub nie.
Fifi209
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());
!*!
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
gigzorr
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 .
!*!
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';
gigzorr
Mam sesje zalogowanego usera , wiec tutaj jest dobrze wiec jest dobrze porownane z mine_Login , bo tam trzymam usera ktory dodal czyli usera zalogowanego.
Fifi209
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
gigzorr
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
PanGuzol
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.
gigzorr
oto mi chodzilo , poprostu nie sprawdzalem co wpisuje ktos , i nie porownywalem do loginu z tabeli zablokowany.


dzieki za pomoc.
Fifi209
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.  
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.