Pisze bota w php do kanałów irc. Chciałem dodać taką funkcję że:
admin bota dodaje op'ów do pliku tekstowego (nick, hasło). Następnie jeśli wejdzie user na kanal to moze sie zalogowac (jesli jego nick istnieje w pliku i haslo sie zgadza) i uzyskac dostep do komend bota. Zrobilem hashowanie hasel md5(sha1(...)), ale nie wiem co sie dzieje że hasła za każdym razem mają inna postać i w efekcie nie mozna się zalogować. Sprawdzałem czy zmienne (wszystkie) zawierają przed hashowaniem prawidłowe dane i wszystko jest ok. Ale w jednej linijce wszystko mi sie zmienia i nie umie tego poprawić

<?php // jeśli privmsg ma postac .add op (nick) (haslo) to robi sie akcja. Zmienna $message przechowuje tresc privmsg { if($this->save_op( $this->tmp[1], $this->tmp[2] )) $this->privmsg('Dodano uzytkownika do listy'); else $this->privmsg('Nie dodano uzytkownika do listy'); } // metoda zapisuje op'a do pliku jesli nie istnieje w bazie. private function save_op( $what, $pass ) { else { return true; } } // regexp ktore rozpoznaje czy user sie chce logowac: { // czyli postac .log in tajnehaslo $this->log_in(); } // sedno całego problemu metoda logowania private function log_in() { if(!$this->is_op_exists()) return false; else { $dane = $this->read_op(); // odczytuje plik i unserializuje zawartosc foreach($dane as $numbers => $user) { if($user['nick'] == $this->from) // zmienna $this->from zawiera autora privmsg { if($user['pass'] == $this->hash(substr($this->message, 8))) // tu sie dzieja dziwne rzeczy z haslem ;/ { $this->access[] = $this->from; // dodanie usera do zalogowanych $this->privmsg('Zostales zalogowany'); return true; } else { $this->privmsg('Nie zostales zalogowany'); return false; } } } } } // metoda hashujaca private function hash( $pass ) { } ?>
Z gory blogosławieństwo za pomoc
