[ Stefano @ 02.12.2006. 16:38 ] @
interesuje me ima li neki nacin da brzo obrisem 2000 clanova na PHP BB forumu, izgleda da su se nekako automatski registrovali sa istim nickovima (razlike su samo u brojevima), nisu aktivirani, posto smo mi namestili da administrator mora da aktivira, ali posto je ocigledno spam upitanju interesuje nas kako da ih izbrisemo a da ne moramo da brisemo jednog po jednog posto bi to trajalo danima.

I jos jedno pitanje kako se radi update PHP BB foruma na novu verziju, cisto za svaki slucaj zbog potencijalnih rupa.
[ Nemanja Avramović @ 02.12.2006. 18:59 ] @
Neaktivirane korisnike možeš verovatno obrisati jednostavim query-jem nad bazom. Ne pitaj me kako jer ne znam tačno, a možda imaš neke neaktivirane korisnike koje ne želiš da obrišeš?
Takođe vredi pogledati http://starfoxtj.phpbbhelp.org/phpBB/toolkit/

Za update phpBB foruma pročitaj readme fajl koji se nalazi u paketu koji skineš (phpbb update). U principu se svodi na:
1) bekap baze (za svaki slučaj)
2) overwrite starih fajlova novim
3) pozivanje fajla update_to_latest.php (kroz browser, naravno)
[ Jezdimir Lončar @ 02.12.2006. 23:22 ] @
Reče nisu aktivni...
Sutra ću malo to pogledati kroz pma a ti uradi backup.
Query bi otprilike bio:
delete from phpbb_users where active=0
ali nisam siguran za active=0 ...
[ Jezdimir Lončar @ 03.12.2006. 22:47 ] @
http://www.jezdo.net/tutoriali/
Tu sam napisao tutorial kako da obrišeš neaktivirane korisnike / botove...
Poz,
Jezdimir
[ Nemanja Avramović @ 03.12.2006. 23:11 ] @
Briše sve neaktivne i korisnike bez postova (neaktivni nemaju postove, logično, ali možda je neki nalog privremeno deaktiviran (a ima postove) ). Ne briše Anonymous nalog:
Code:
DELETE FROM `phpbb_users` WHERE (`user_posts`=0 AND `user_active`=0 AND `user_id`!=-1);


Bekapuj bazu pre ovoga jer ne odgovaram za kod

phpbb_ gore u query-ju, normalno, zameni sa prefiksom tabela u tvom forumu.
[ Jezdimir Lončar @ 04.12.2006. 00:18 ] @
Da, moj način je malo komplikovaniji ali ne i teži.
I ja se takođe ograđujem od bilo kakve odgovornosti za eventualnu štetu koja bi mogla nastati korišćenjem ovog tutoriala.
[ Ilija Bursac @ 04.12.2006. 17:10 ] @
Ovako mozes da sakrijes ne aktivirane naloge od ostalih clanova samo ih admini mogu videti:
http://www.phpbb.com/phpBB/viewtopic.php?t=399863

A ovo je za brisanje:
Code:
#!/usr/bin/php
<?php
/* remove_not_activated_forum_users.php
* cron-job to rid phpbb2 board of users that are not activated.
*
* Assumptions:
* 1 An include file that collects all the connection details together:
* eg:
$dbms= 'mysql4';
$dbhost= 'localhost';
$dbname= 'phpbb_name';
$dbuser= 'phpbb_user';
$dbpasswd= 'phpbb_password';
*
* (ps put a `require_once()' into \config.php referring to this file)
* ( to get all sensitive info out of the public web space )
*
* 2 a $HOME/.my.cnf file, which contains (at minimum):
[client]
password=mysql_root_user_password
*
* Make read-only user-only (chmod 400 .my.cnf)
*
* 3 The board is set up to require both non-anonymous posts + activation
* 4 This utility is cron-tabbed for daily activation
* (on redhat systems, in /etc/cron.daily/)
*/
;
require_once( '/server/path/to/connection/include.file' );
;
$CNX = @mysql_connect( $dbhost, $dbuser, $dbpasswd )
or die( '<p>Cannot connect to the Database-server at this time.</p><p>Try again later.</p>' );
@mysql_select_db( $dbname, $CNX )
or die( '<p>We have a problem, Houston.<br />Database-server connection was established, but not to the database itself.</p>' );
;
// obtain user-id of non-activated users over 3 days old
$sql= "SELECT user_id
from `users`
WHERE user_active < 1 AND
username!= 'Anonymous' AND
TO_DAYS(NOW()) - TO_DAYS(from_UNIXTIME(user_regdate)) >= 3";
;
if(!( $result = mysql_query( $sql, $CNX ))) {// sanity check
die( "Database failure; SQL=$sql" );
} else while( list( $user_id ) = mysql_fetch_row( $result )) {
// obtain group_id
$sql= "SELECT g.group_id
from `user_group` ug, `groups` g
WHERE ug.user_id = $user_id
AND g.group_id = ug.group_id
AND g.group_single_user = 1
LIMIT 1";
;
$group_id = mysql_result( mysql_query( $sql, $CNX ), 0 );
if(!$group_id ) {// sanity check
die( "Database failure; SQL=$sql" );
}
;
$sql = "delete from `users`
WHERE user_id = $user_id";
if(!( mysql_query( $sql, $CNX ))) {// sanity check
die( "Database failure; SQL=$sql" );
}
;
$sql = "delete from `user_group`
WHERE user_id = $user_id";
if(!( mysql_query( $sql, $CNX ))) {// sanity check
die( "Database failure; SQL=$sql" );
}
;
$sql = "delete from `groups`
WHERE group_id = $group_id";
if(!( mysql_query( $sql, $CNX ))) {// sanity check
die( "Database failure; SQL=$sql" );
}
;
$sql = "delete from `sessions`
WHERE session_user_id = $user_id";
if(!( mysql_query( $sql, $CNX ))) {// sanity check
die( "Database failure; SQL=$sql" );
}
;
$sql = "delete from `sessions_keys`
WHERE user_id = $user_id";
if(!( mysql_query( $sql, $CNX ))) {// sanity check
die( "Database failure; SQL=$sql" );
}
}// while( $row = $db->sql_fetchrow( $result )) (user_id)
?>