Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano

Czy jest jakiś sposób, aby wyciągnąć do pliku maile użytkowników - optymalnie w odwrotnej kolejności do daty rejestracji (czyli na początku lista ostatnio zarejestrowanych)?

W phpbb by Przemo był taki zgrabny kod w php, który po prostu generował na serwerze plik txt z adresami userów:

<?php 

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

define('ATTACHMENTS_DESC_TABLE', $table_prefix . 'attachments_desc');
define('ATTACHMENTS_TABLE', $table_prefix . 'attachments');

$all = array();

$sql = "SELECT user_email FROM " . USERS_TABLE;

	if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain users gender', '', __LINE__, __FILE__, $sql);
		}

	while($row = $db->sql_fetchrow($result))
		{
			$all[] = $row['user_email']."\n";
		}

$data = implode('', $all);
$fp = fopen("user_emails.txt", "w");
fputs($fp, $data);
fclose($fp);

echo '<CENTER><SPAN STYLE="font-size: 600">:-)</SPAN></CENTER>';
?>

Czy da się to jakoś przerobić na potrzeby IPB?

Opublikowano (edytowane)

LISTAWY - Tym programem wyciągniesz maile z każdego pliku, txt sql itp.

Potem zapisze ci je jeden pod drugim w pliku .txt

m0ożesz wrzucić do niego całą tabele z userami, a nawet całą bazę, poradzi sobie.

Edytowane przez santoz
Opublikowano

Advokat: taką listę można pobrać z PhpMyAdmina. :a:

Można by spróbować przerobić ten kod - koniecznie chcesz? :a:

Jakby się dało przerobić to byłbym bardzo wdzięczny :%-):

Ewentualnie chociaż powiedz jak to pobrać przez phpmyadmina. Tu pewnie większe możliwości co do wyciągnięcia adresów zgodnie z kolejnością o którą mi chodzi - czyli od końca (od ostatnio zarejestrowanego).

Opublikowano

Wystarczy jedno wykonać zapytanie SQL:

SELECT `email` FROM `ipb_members` ORDER BY `joined` DESC

W miejsce ipb_members wstawiasz nazwę swojej tabeli members (pewnie masz inny przedrostek).

Można to również automagicznie zapisać do pliku ale ja dziś się tym raczej nie zajmę, może kto inny.

Opublikowano

Zresztą...

Zapisz w głównym katalogu i odpal w przeglądarce:

<?php
define( 'IPB_THIS_SCRIPT', 'admin' );
require_once 'config.php';

if (!file_exists(IPB_PATH.'/initdata.php'))
{
	echo 'Invalid IPB path';
	exit;
}

require_once( IPB_PATH.'/initdata.php' );
require_once( IPB_PATH.'/admin/sources/base/ipsRegistry.php' );
require_once( IPB_PATH.'/admin/sources/base/ipsController.php' );
$registry = ipsRegistry::instance();
$registry->init();				
$DB       = $registry->DB();

$query = $DB->query("SELECT `email` FROM `ipb_members` ORDER BY `joined` DESC");

$fp = fopen("user_emails.txt", "w");

while ($row = $DB->fetch($query))
	fputs($fp, $row['email']."\n");

fclose($fp);
echo '<CENTER><SPAN STYLE="font-size: 600">:-)</SPAN></CENTER>';
?>

  • 1 rok później...
  • 2 lata później...
Opublikowano


<?php

require_once './initdata.php';

require_once IPS_ROOT_PATH . 'sources/base/ipsRegistry.php';

ipsRegistry :: init();

$mails = ipsRegistry :: DB() -> build(array(

'select' => 'email',

'from' => 'members'

)

);

$execute = ipsRegistry :: DB() -> execute();

$i = 0;

while($mail = ipsRegistry::DB()->fetch($execute)){

$i++;

if(count($mail) > 0){

foreach($mail as $emails){

@file_put_contents('emails.dat', $emails . "\n", FILE_APPEND);

}

}

}

  • Lubię to 2

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.