Posted By


hecatomber on 10/28/06

Tagged


Statistics


Viewed 146 times
Favorited by 1 user(s)

PHPBB Forumlarında Kullanıcıların Şifresini Toplu Halde Resetlemek


/ Published in: PHP
Save to your folder(s)

Veritabanı adı, admin şifresi ve tablo isimlerinde farklılık var ise manuel olarak değiştirmeniz yararınıza olacaktır.

Eski şifreler MD5 şifrelenme yöntemi ile "yedek" adında bir tablo oluşturulup içine yerleştirilmektedir. Ayrıca "User ID - Kullanıcı adı - Eski Şifre(MD5) - Yeni Şifre (MD5) - Yeni Şifre (Açık)" şeklinde önlem amaçlı tablo yerleştirilmektedir.

"phpBB 2.0.21" üzerinde 5 kullanıcılı bir forum deneme amaçlı açılarak test edilmiştir. Sapasağlam çalışmaktadır.


Copy this code and paste it in your HTML
  1. <?
  2. function md5pass($totalChar,&$password,&$clean)
  3. {
  4. // *******************************
  5. // Random Password Generator-Start
  6. // *******************************
  7. //$totalChar = 8; // number of chars in the password
  8. $salt = "abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789"; // salt to select chars from
  9. srand((double)microtime()*1000000); // start the random generator
  10. $password=""; // set the inital variable
  11. for ($i=0;$i<$totalChar;$i++) // loop and create password
  12. $password = $password . substr ($salt, rand() % strlen($salt), 1);
  13. $clean = $password;
  14. $password = md5($password);
  15. // *****************************
  16. // Random Password Generator-End
  17. // *****************************
  18. }
  19. mysql_connect("localhost","user","password") or die("mysql e bağlanamadık");
  20. mysql_select_db("phpbb") or die("veritabanını seçilemedi");
  21. mysql_query('CREATE TABLE IF NOT EXISTS `yedek` ( `user_id` MEDIUMINT( 8 ) NOT NULL , `user_password` VARCHAR( 32 ) NOT NULL , `user_newpassword` VARCHAR( 32 ) NOT NULL , UNIQUE ( `user_id` ) ) CHARACTER SET = utf8;'); //yedek tablosu - user id - eski sifre - yeni sifreyi icerecek
  22. $sql = mysql_query('SELECT `user_id` , `user_password` , `username` FROM `phpbb_users`');
  23. $id = mysql_num_rows($sql);
  24. echo "<table border=1><tr><td><b>User ID</b></td><td><b>Kullanıcı Adı</b></td><td><b>Eski Sifre(MD5)</b></td><td><b>Yeni Sifre(MD5)</b></td><td><b>Acik Sifre</b></td></tr>";
  25. while($id > 0)
  26. {
  27. $ulist = mysql_fetch_array($sql,MYSQL_NUM);
  28. $userid = $ulist[0];
  29. $oldpass = $ulist[1];
  30. $username = $ulist[2];
  31. md5pass("8",$password,$clean);
  32. if ($userid == -1)
  33. {
  34. $password = ""; //Anonim Hesap
  35. $clean = $password;
  36. }
  37. if ($userid == 2)
  38. {
  39. $password = "adminpass"; //Admin sifresi(her ihtimale karsi)
  40. $clean = $password;
  41. $password = md5("$password");
  42. }
  43. mysql_query("REPLACE INTO `yedek` ( `user_id` , `user_password`, `user_newpassword` ) VALUES ('".$ulist[0]."', '".$ulist[1]."', '".$password."')"); //eski sifreler her ihtimale karsi yedek
  44. mysql_query("UPDATE `phpbb_users` SET `user_password` = '".$password."' WHERE `user_id` = '".$ulist[0]."'");
  45. echo "<tr><td align='center'>".$userid."</td><td align='center'>".$username."</td><td>".$oldpass."</td><td>".$password."</td><td>".$clean."</td></tr>";
  46. $id--;
  47. }
  48. echo "</table>";
  49. ?>

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.