Pagina 1 di 2

Eliminare lista di utenti/email

Inviato: 17/06/2013, 22:03
da Vastasia
Salve, vorrei eliminare in blocco un gruppo di utenti del forum (più di 200) dei quali conosco le email. Purtroppo non ho trovato nel PCA una funzione utile allo scopo.

Esiste un metodo efficace e rapido?

Grazie.

Re: Eliminare lista di utenti/email

Inviato: 18/06/2013, 8:04
da Angolo
PCA>Utenti e gruppi>Cancella utenti


Alla voce omonima, inserisci la lista ordinata degli utenti da cancellare. Un nome utente per riga.
Specifica la cancellazione dei messaggi, e se vuoi che gli account relativi, siano disattivati o cancellati.

Re: Eliminare lista di utenti/email

Inviato: 18/06/2013, 21:14
da Vastasia
Si questa opzione del PCA mi è nota, ma bisogna inserire i nomi utenti. A me servirebbe una funzione che mi permetta di cancellare gli utenti indicando le loro email, ma non una alla volta, tutta la lista.

Mentre si può fare inserendo una lista di utenti (uno per ogni rigo), la stessa cosa non si può fare con le email.

Re: Eliminare lista di utenti/email

Inviato: 18/06/2013, 22:47
da Micogian
Questa proprio non la capisco.
Se hai una mail hai anche un nome, ti fai una lista (word, excel, txt, quello che ti pare), estrai tutti gli utenti che vuoi eliminare, con copia-incolla li inserisci nella lista, un clic e sono cancellati.

Re: Eliminare lista di utenti/email

Inviato: 19/06/2013, 8:09
da Angolo
In pratica dalle email devi ricostruirti una lista, basata sui nomi utente.

Re: Eliminare lista di utenti/email

Inviato: 19/06/2013, 23:24
da Barrnet
Potresti creare un semplice file.php da lanciare via web per reperire l'elenco di utenti:

Codice: Seleziona tutto

<?php
include 'percorso del config.php del forum';

$email = array(inserisci le email separate da una virgola);
$numeroemail = count($email);
$i = 0;
while ($i = $numeroemail) {
	$query = "SELECT username FROM phpbb_users WHERE user_email =" . $email[$i];
	$result = mysql_query($query) or die("Errore di collegamento. Ricarica la pagina");				
	while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
		$utente = $utente . "<br/>" . $row["username"];
	}

echo $utente;

$i++;
}
?>
Cosi, su due piedi, dovrebbe funzionare :P

Re: Eliminare lista di utenti/email

Inviato: 20/06/2013, 12:07
da Vastasia
Micogian ha scritto:Questa proprio non la capisco.
Se hai una mail hai anche un nome, ti fai una lista (word, excel, txt, quello che ti pare), estrai tutti gli utenti che vuoi eliminare, con copia-incolla li inserisci nella lista, un clic e sono cancellati.
Angolo ha scritto:In pratica dalle email devi ricostruirti una lista, basata sui nomi utente.
Rispondo con ordine:

@Micogian: capisco la tua perplessita dovuta alla scarsezza delle mie informazioni. Gestisco un forum con più di 10.000 utenti e all'atto dell'iscrizione ogni utente accetta di ricevere, ogni tanto, delle email riguardanti notizie relative all'argomento trattato dal portale. L'invio delle email avviene con un servizio specializzato (a pagamento) il quale, oltre a darmi tutti i report delle email inviate, mi elenca i motivi degli eventuali "hard bounce". Tra i vari motivi vi è la segnalazione di "abuso" fatta dal ricevente delle email. Ora, se ti sei iscritto ad un forum accettandone le condizioni, per quale motivo poi segnali un abuso da parte di chi invia le email? Ma non solo: visto che ogni tanto utilizzo la funzione "Email di massa" del forum, è ragionevole pensare che queste persone segnalino come abuso o spam le email che vengono inviate loro dalla board. Ma io non faccio spam, e tu hai accettato di riceve, ogni tanto, delle email.

L'elenco delle email del forum viene aggiornato mediante una semplice query php che estra tutti gli indirizzi. Ecco il motivo per il quale dispongo delle email ma non del nome utente (che in quel frangente non mi serviva). Fare tutto il lavoro a mano per più di 200 email sarebbe snervante.

@Angolo: credo di aver risposto anche alla tua domanda rispondendo a Micogian.

Re: Eliminare lista di utenti/email

Inviato: 20/06/2013, 12:18
da Vastasia
Barrnet ha scritto:Potresti creare un semplice file.php da lanciare via web per reperire l'elenco di utenti:

Codice: Seleziona tutto

<?php
include 'percorso del config.php del forum';

$email = array(inserisci le email separate da una virgola);
$numeroemail = count($email);
$i = 0;
while ($i = $numeroemail) {
	$query = "SELECT username FROM phpbb_users WHERE user_email =" . $email[$i];
	$result = mysql_query($query) or die("Errore di collegamento. Ricarica la pagina");				
	while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
		$utente = $utente . "<br/>" . $row["username"];
	}

echo $utente;

$i++;
}
?>
Cosi, su due piedi, dovrebbe funzionare :P
Ok Barnet, in pratica se ho capito bene dovrei fare un file php inserendo le parti mancanti (per il percorso del file config.php basta inserire l'url del forum?), caricarlo via ftp nella root del forum e poi richiamarlo dal browser. Dovrei a questo punto leggere a schermo l'elenco dei nomi utente. Ho capito bene?

Ho fatto già una prova con una decina di email ma non funziona, ricevo un "Errore HTTP 500 (Internal Server Error)"

Re: Eliminare lista di utenti/email

Inviato: 20/06/2013, 13:02
da Barrnet
$email=array('mail1@dominio.it','mail2@dominio.it','mail3@dominio.it','mail4@dominio.it','mail5@dominio.it');

Hai inserito cosi le email?
Essendo del testo devi metterlo tra gli apici :P

Edit: ho fatto io un errore, ho utilizzato un ciclo while per svolgere un array lol

Prova questo, se lo metti nella root non devi cambiare l'include:

Codice: Seleziona tutto

<?php
    include 'config.php';
     mysql_connect($dbhost,$dbuser,$dbpasswd );
	 @mysql_select_db($dbname) or die("Impossibile selezionare il database.");
    $array = array('barrnet@videogamezone.eu', 'altra@mail.it', 'email@lospamèbello.it');
	foreach ($array as $email) {
       $query = "SELECT username FROM avphpbb_users WHERE user_email = '$email'";
       $result = mysql_query($query) or die("Errore di collegamento. Ricarica la pagina");            
       while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
          $utente = $utente . "<br/>" . $row["username"];		  
       }
    }
echo $utente;
?>

Re: Eliminare lista di utenti/email

Inviato: 20/06/2013, 13:17
da Micogian
Vastasia ha scritto: L'elenco delle email del forum viene aggiornato mediante una semplice query php che estra tutti gli indirizzi. Ecco il motivo per il quale dispongo delle email ma non del nome utente (che in quel frangente non mi serviva). Fare tutto il lavoro a mano per più di 200 email sarebbe snervante.
Avevo immaginato che tu avessi un elenco delle mail ricavate con una query, mi domando se non sia più semplice intervenire su questa query aggiungendo nella lista il nome utente.

Comunque anche la soluzione indicata da Barrnet è corretta, si potrebbe fare in altro modo ma l'uso di un array che contenga gli indirizzi email è giusto.