Ogłoszenie

Zwiń
No announcement yet.

Problem z komendami typu ban(wygasające po pewnym czasie)

Zwiń
X
 
  • Filtr
  • Czas
  • Pokaż
Wyczyść wszystko
new posts

    Problem z komendami typu ban(wygasające po pewnym czasie)

    Otóż mam problem na skrypcie enJOINTme. Polega na tym, że po użyciu np komendy bana na jedną minutę(np) trwa on w nieskończoność. Rozmowa i nieco pomocy ze strony WujcioMattta niestety nie pomogły(powodem był m.in zupełnie inny styl jego pisania skryptów i ten, który posiadam, więc poniekąd i mój), oraz wszelkie ingerencje z mojej strony. Podam tyle, że czat stoi na zagranicznym serwerze, jednak data wyświetlana jest prawidłowo. Może ktoś ma ten skrypt u siebie i by potrafił podpowiedzieć co jest przyczyną całego zamieszania.

    #2
    Podaj kod odpowiedzialny za "tworzenie" czasu bana, jego zapis do bazy i kod sprawdzający czy user ma bana.
    Własny hosting i podpinanie domen. TS3 za darmo gdy nie stoi pusty.

    Komentarz


      #3
      Już nie trzeba. Problemem był brak odpowiednich wpisów w cron. W tym miejscu chciałbym podziękować BoobsMan za "poprowadzenie za rączkę" w drodze do rozwiązania problemu

      Komentarz


        #4
        to masz kolejny problem
        Jesli z czata korzystaja osoby (jakiekolwiek) nie dawaj unbana w cronie, z wlasnych doswiadczen (nie koniecznie takie musza byc twoje bo wg mnie to zalezy tez od serwera) cron jako tako obciaza serwer i czasem powoduje zawieszanie sie procesow wtedy trza dawac killa ale do sedna

        Na twoim miejscu wg mnie lepiej by bylo aby nie bylo crona a poprostu sprawdzanie czasu czy ban powinien zostac zdjety przy jakimkolwiek wejsciu kogos na czat lub np napisaniu kogos - wg mnie (oczywiscie inni moga miec odrebne zdania) jest to bardziej "ekologiczne"

        Aczkolwiek ponownie pisze ze moge sie mylic (kazdy sie wciaz uczy)

        Komentarz


          #5
          Może i "ekologiczne", ale jeśli chcesz zrobić powiadomienie o banie/mute, który wygasł, to tylko cron, bo inaczej może być trochę obsuwy
          No i jeśli ładnie napiszesz skrypt dla crona i "normalnie"(tj. nie co minutę) ustawisz, to nie zjada aż tyle cykli.
          Już niedługo...

          Komentarz


            #6
            Zamieszczone przez Beniooo Zobacz posta
            Może i "ekologiczne", ale jeśli chcesz zrobić powiadomienie o banie/mute, który wygasł, to tylko cron, bo inaczej może być trochę obsuwy
            No i jeśli ładnie napiszesz skrypt dla crona i "normalnie"(tj. nie co minutę) ustawisz, to nie zjada aż tyle cykli.

            ja mam crona tylko do autoki, w tym przypadku nie mam crona i nie "obsuwa" ale mowie to ze wzgledu na wykorzystywanie czata jesli nic sie na czacie nie dzieje to moze faktycznie cron tu znacznie jest lepszy

            Komentarz


              #7
              Nie wykorzystanie czatu, tylko serwera bardziej
              W sumie przy jednym numerku można sobie wybrać cokolwiek, ale przy wielu cron staje się idealny
              Już niedługo...

              Komentarz


                #8
                Zamieszczone przez Beniooo Zobacz posta
                Nie wykorzystanie czatu, tylko serwera bardziej
                W sumie przy jednym numerku można sobie wybrać cokolwiek, ale przy wielu cron staje się idealny
                To prawda serwera nie czatu moj blad wybacz (literowka nie wiem o czym myslalem)
                ja mam przy wielu tzn nie do konca u nas czaty sa chodliwe ciagle sie cos dzieje wiec bany muslayby byc nadane na identyczny czas zdjecia by mozna bylo brac pod uwage wielu (chociaz 2 numerki) a takie cos jeszcze sie nie zdarzylo ale kod jest gotowy wziasc wiecej niz 1 gg to tam pikus takie cos zrobienie ;d

                Pozatym zastanawiam sie nad twym postem o tym imperium bo slyszalem ze nie tylko tu jestes na forum PHP i powiedziano mi ze jestes (mimo iz cie nie znam osobiscie) dosc wtajemniczony w kody (czytaj nie jestes pierwszakiem) wiec chyba miloby bylo nawiazac z toba wspolprace ale jeszcze sie waham (sorki)

                Komentarz


                  #9
                  W sumie cron nie jest aż takim złym rozwiązaniem, ale jednak ten serwer nie wytrzymuje "napięcia"(1 czat, 1 plik uruchamiany co minutę, następnie co 5 minut, aż w końcu 10) i +/- pół minuty przed i po zainicjowaniu skryptu na czacie było widoczne opóźnienie, a wielokrotnie nawet timeout. Chyba jednak spróbuję sugestii WujcioMattta. Jednak do testów wszystkiego zakładam osobny czat, m.in po małej wpadce z czasem, po którym vip wygasał.

                  P.S Po założeniu i zarejestrowaniu drugiego bota(pierwszy znajdował się w katalogu www) w katalogu www/testowy nie mam od niego odpowiedzi, chyba że po stworzeniu celowo błędu w skrypcie lub użyciu WYPISZ/ZAPISZ. Czy to jakiś błąd ze strony botapi, czy może ja coś źle zrobiłem? Jakieś sugestie odnoście tego problemu?

                  Komentarz


                    #10
                    ja ci powiem to co na privie daj cos takiego ze sekundowe bany tzn zrob przelicznik czasu czyli jak dajesz bana na 1 minute to dajesz na 60 sekund i tak dalej.

                    Potem zrob tak te kod pobiera obecny czas i dodaje do niego liczbe sekund bana czyli jesli dla przykladu mamy czas liczony w sek od roku 1970 - 100 to dajac bana na minute da nam 160 (mysle ze czaisz)

                    nastepnie zapisz ze user ma bana i czas 160
                    Nastepnie sprawdzanie czy obecny czas nie jest mniejszy niz czas zapisany w jego profilu czyli w przykladzie 160 jesli jest to unban jesli nie to nic czyli ban nadal aktywny

                    Zaczailes nie? zdolny chlopak jestes napewno zaczailes

                    Komentarz


                      #11
                      Powiedzmy że czaję, jednak skąd się wzięło to -100?
                      W skrypcie na którym pracuję w komendzie ban jest składnia: /ban nick czas jednostka powód

                      if($text[3] == 'm')
                      {
                      $czas_ban = mktime(date('H')+$godziny,date('i')+$text[2],date('s'),date('m'),date('d')+$dni,date('Y')+$lat a);
                      }

                      Więc ten kod (w tym przypadku dla minut) dodaje do obecnej daty "text[2]" minut(znaczy do zmiennej daty "i") i w tej postaci wrzuca czas bana do bazy danych. Więc zgodnie z pomysłem Mattta jednym z lepszych pomysłów byłoby dodanie do komendy /join odpowiednią instrukcję warunkową sprawdzającą czy dana osoba jest zbanowana. Jeśli tak, to porównuje obecny czas serwera z czasem zapisanym w bazie danych i jeśli jest on mniejszy niż czas obecny to daje ub i pozwala na wejście. Myślę że takie rozwiązanie, może nie jest najlepsze, jednak na mój poziom w php to kilkanaście nieudanych prób w tym dwie prawie prawie i w końcu w pełni działający ub

                      I właśnie tu jest problem. Czat, na którym pracuję jest użytkowany przez małą grupkę ludzi, których odstraszają nagłe komunikaty typu "Error". I tu ponawiam pytanie sprzed dwóch postów. co może być przyczyną niedziałającego czatu testowego

                      Komentarz


                        #12
                        jesli ja mam bana u ciebie na czacie to raczej nie bede probowal wejsc co chwile by luknac czy sie sciagnal wiec lepeij by bylo aby sprawdzenie bana nie bylo pod from a wszystkich zbanowanych, tzn ze jakis juziek wchodzi na czat to kod sprawdza kto ma bana i komu juz powinien byc sciagniety, sciaga i daje mu info a juziek i ludzie online dostaja swoje osobne info o tym ze juziek wszedl a juziek powitanie na czat, jesli nie ma zadnej osoby do sciagniecia bana to standardowa procedura wejscia na czat

                        Komentarz


                          #13
                          Wątpię by na hostingach współdzielonych miało to znaczenie czy jest cron włączony u kogoś czy nie bo jednemu zrobicie "zakaz" a i tak ktoś inny na tym samym serwerze crona będzie używać. A znowu na crona nie trzeba niewiadomo jakiej mocy.

                          Komentarz


                            #14
                            Nie powiem, że to nie prawda. Jednak uruchamianie cron co minuta może być męczące dla serwera. U mnie więc cron jest uruchamiany max 1 raz na godzinę i wyraźnych braków w wydajności nie ma. Teraz też pracuję nad nowym systemem vip, więc dojdzie kolejne uruchamianie cron, myślę, że raz na dzień. Ew jeszcze gry, o ile takowe wprowadzę

                            Komentarz


                              #15
                              Na jednym z serwerów, na których operuję jest ustawiony cron na każdą minutę, działa 24/7, a obciążenie procka jest max 20%, przy około 5k unikalnych userów dziennie, każdy skrypt uruchamia ~5-10 innych skryptów. Obciążenie pamięci jest około 500mb, więc to jak będzie obciążony serwer zależy tylko i wyłącznie od maszyny.
                              Już niedługo...

                              Komentarz

                              Pracuję...
                              X