Come aiutare gli utenti a incorporare facilmente i video su un sito SMF

Posted in SMF (Simple Machine Forum) da ShortLikeAFox il 10 agosto, 2008

Quindi, lei è responsabile della creazione di un Forum di macchine semplici basati sito e vogliono un modo infallibile per permettere agli utenti di inserire video di video disposizioni popolari siti (YouTube, Google Video, IGN, ecc.) Si può legittimamente avere paura nel consentire agli utenti di utilizzare semplicemente il codice embed da quelli singoli siti, perché Dio sa che cosa i risultati saranno. La soluzione a questo problema è semplice come può essere. Karl Benson ha scritto un pacchetto di aggiornamento che rende l'incorporazione di video semplice come tagliare e incollare l'URL della pagina del video appare poll Questo pacchetto di opere per oltre 150 siti ed è chiamato AEVAC (Incorpora Audio Video / Audio clip). La più recente versione è la 3.1.2 e può essere trovato qui.

Questo è un mod mi raccomando. Usato correttamente essa ha il potenziale per ridurre notevolmente la frequenza e la gravità del forum amministratore mal di testa.

Permalink | Commenti

Come inserire manualmente un gruppo di utenti in un forum SMF Utilizzo di PHP

Posted in SMF (Simple Machine Forum), php da ShortLikeAFox luglio 30th, 2008

Questo tutorial presume che abbiano familiarità con il mio post: Come Inserire un manuale utente in un forum SMF Utilizzo di PHP.

Recentemente ho affrontato la sfida di 800 o si spostano in modo bande da un database in un forum di SMF. Ho affrontato un paio di problemi al momento di formulare la mossa che non ho coprire nel primo post:

  1. La band nomi non sono stati garantiti per essere sicuri di carattere per carattere trasferirsi nella banca dati SMF. Quindi, una sorta di funzione di modificare il nome doveva essere impiegato.
  2. Le bande non hanno password. Così qualche tipo di generazione di password deve essere impiegato.

I passi sono andato a registrare su tutte le bande nel forum è andato un po 'come questo:

Aprire il database di banda

per ogni (Band) (

Genera password

Rinomina Band con "sicuro" nome

Afferrare e generare le informazioni necessarie per inserire l'utente

Inserisci Band in smf_members

Band Invia una e-mail con la password

)

Ho avuto informazioni disponibili presso la banda database che è stato utile inclusi: bandName, bandEmail, e bandWebsite

Ecco la generazione di password la funzione che ho usato (blatently prese da totallyphp.co.uk):

createRandomPassword funzione () (

$ caratteri = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((doppio) microtime () * 1000000);

$ i = 0;

$ pass = ";



while ($ i <= 7) (

33; $ num = rand ()% 33;

$ tmp = substr ($ caratteri, $ num, 1);

$ $ pass = pass. $ tmp;

$ i + +;

)

return $ pass;

)

La password creato qui è relativamente debole, ma è stato abbastanza buono per i miei scopi. Qualsiasi password generazione funzione sarebbe bene lavorare qui. Ho scelto questo perché sarebbe facile per i membri di ricordare se hanno scelto di non modificare.

Come per farlo:

/ / In primo luogo la connessione a banda banca dati
$ username = "bandUsername";
$ host = "bandHost";
miapassword $ = "bandPassword";
$ db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ miapassword") or die ( "non può connettersi al server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "non può selezionare DB");

/ / Ora afferrare tutte le bande dal database
$ query = "SELECT * FROM allBands";
$ bande = mysql_query ($ query) or die ( "2222b Config" Errore ");
userRows $ = mysql_num_rows ($ bande);

/ / Ora consente di connettersi al db SMF
$ host = "smfhost"; / / Nome host
$ username = "smfuser; / / MySQL nome utente
miapassword $ = "smfpassword"; / / MySQL password
$ db_name = "smfdatabase"; / / nome del database

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ miapassword") or die ( "non può connettersi al server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "non può selezionare DB");

/ / $ vaild_chars sarà l'array di caratteri consentiti per i nomi utente. Ho deciso di consentire solo lettere e numeri. Ci sono altri personaggi che potrebbero essere utilizzati, che non causa un problema, ma per ragioni di stile ho deciso di andare con solo lettere e numeri
valid_chars $ = "abcdefghijklmnopqrstu VWXYZ 0 1 2 3 4 5 6 7 8 9";
= $ valid_chars esplodere ( "", $ valid_chars);

/ / Ora abbiamo bisogno di "loop through ciascuna banda

){ for ($ i = 0; $ i <$ userRows; $ i + +) (

($bands)){ if ($ row = mysql_fetch_assoc ($ bande)) (

/ / Estrarre la banda informazioni
estratto ($ riga);
/ / Crea una password per la banda
realPassword $ = createRandomPassword ();
/ / I per scegliere l'eco bandname e la password come parte del mio e il debug in modo che io possa vedere la funzione come funziona
echo ( "<br/> bandName $ - $ realPassword");
newBand $ = "";
/ / Per ogni lettera nella banda nome daremo un'occhiata per vedere se corrisponde a un carattere valido a partire da $ valid_chars. Essa non abbiamo intenzione di sbarazzarsi di essa e troncare il nome di banda
($bandName); $j ++ ){ for ($ j = 0; $ j <strlen ($ bandName); $ j + +) (

($band[$j])); $ temp = str_replace ($ valid_chars, "X", strtolower ($ banda [$ j]));
if ($ temp == "X")

newBand $ = $ newBand. banda $ [$ j];

)
/ / I eco il nuovo nome per lo stesso motivo mi associo il vecchio nome e la password
echo ( "- $ newBand");
/ / Abbiamo il nuovo nome ... Band. ora diamo inizio buliding le informazioni abbiamo bisogno di inserire nel db ...
$ = $ MEMBERNAME newBand;
$ = $ realname newBand; / / I impostare il vero nome e il nome del membro stesso. Le bande può cambiare se si vogliono
$ = $ EMAILADDRESS bandEmail;
websiteUrl $ = $ bandWebsite; / / Dato che ho l'bande di 'siti web potrebbe anche entrare li
websiteTitle $ = $ newBand;
is_activated = $ 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ password = sha1 (strtolower ($ MEMBERNAME). realPassword $); / / La password deve essere codificato

/ / Assicurarsi che il loro non è un membro con lo stesso nome nel database di SMF. Noi non vogliamo entrare chiunque accidentalmente due volte
$ query = "SELECT * FROM smf_members DOVE MEMBERNAME = '$ MEMBERNAME'";
("Config Error 2222343242b"); $ risultato = mysql_query ($ query) or die ( "Errore di configurazione 2222343242b");
nRows $ = mysql_num_rows ($ result);

/ / Se il nome utente non si trova nulla
if ($ nRows> 0) ()

else (

/ / Se l'utente non è già firmato per il forum, e farlo inviare una e-mail ....
$ query = "INSERT INTO smf_members (MEMBERNAME, realname, EMAILADDRESS, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ( '$ MEMBERNAME', '$ realname', '$ EMAILADDRESS', '$ is_activated', '$ ID_POST_GROUP' , '$ Password', '$ websiteUrl', '$ websiteTitle') ";

("Config Error 2232 "); $ risultato = mysql_query ($ query) or die ( "Errore di configurazione 2232");

/ / Ora abbiamo bisogno di inviare la banda di una e-mail
$ a = $ EMAILADDRESS;
$ subject = "Il tuo forum di nome utente e la password";

/ / Da
$ header = "a partire da: Me <me@mysite.com>";

/ / Il tuo messaggio
$ messaggio .= "Il tuo nome utente e la password sono elencati di seguito. È possibile modificare o in qualsiasi momento. Se non si desidera partecipare al nostro forum, che il problema non. Nuovi mai accedere e sarà come mai accaduto nulla . \ r \ n ";
$ messaggio .= "Username: Password MEMBERNAME $: $ realPassword \ r \ n";

/ / Inviare e-mail
= $ sentmail mail ($ a, $ oggetto, $ messaggio, $ header);
if ($ sentmail)

echo ( "- Sì!");
/ / Questa è l'ultima parte del nostro eco. Il "Sì!" sarà solo se stampato un messaggio di posta elettronica viene inviato. Dunque, una linea completa stampa sarà qualcosa di simile a questo:
/ / Adam Strife - 4s6vsxag - AdamStrife - SI!

)

)
)

Permalink | Commenti

Come inserire manualmente un utente in un forum SMF Utilizzo di PHP

Posted in SMF (Simple Machine Forum), php da ShortLikeAFox In data 28 luglio 2008

Questo esempio è specifico per SMF 1.1.5. Non posso garantire che funziona con qualsiasi altra versione.

Quindi si esegue Simple Machine Forum Software e desidera immettere manualmente un utente? Nessun problema. So che questo problema sembra molto specifici, ma le idee spiegato qui può essere adattato ad altri tipi di forum e altri database pacchetti software come Wordpress. Prima di entrare esattamente come effettuare questa operazione, diamo un'occhiata a come semplice macchina Forum tiene traccia degli utenti. Nel SMF banca dati vi è una tabella chiamata smf_members. Smf_members La struttura assomiglia a questo:

Campo Tipo + + digitare Null

Chiave Predefinito Extra
ID_MEMBER mediumint (8) unsigned N PRI NULL AUTO_INCREMENT
MEMBERNAME varchar (80) N MUL
dateRegistered int (10) unsigned N MUL 0
posti mediumint (8) unsigned N MUL 0
ID_GROUP smallint (5) unsigned N MUL 0
lngfile tinytext N MUL
lastLogin int (10) unsigned N MUL 0
realname tinytext N
istantanei smallint (5) N 0
unreadMessages smallint (5) N 0
buddy_list testo N
pm_ignore_list testo N
messageLabels testo N
passwd varchar (64) N
EMAILADDRESS tinytext N
personalText tinytext N
genere tinyint (4) unsigned N 0
data di nascita data N MUL 0001-01-01
websiteTitle tinytext N
websiteUrl tinytext N
località tinytext N
ICQ tinytext N
AIM varchar (16) N
YIM varchar (32) N
MSN tinytext N
hideEmail tinyint (4) N 0
showOnline tinyint (4) N 1
timeFormat varchar (80) N
firma testo N
timeOffset galleggiante N 0
Avatar tinytext N
pm_email_notify tinyint (4) N 0
karmaBad smallint (5) unsigned N 0
karmaGood smallint (5) unsigned N 0
usertitle tinytext N
notifyAnnouncements tinyint (4) N 1
notifyOnce tinyint (4) N 1
notifySendBody tinyint (4) N 0
notifyTypes tinyint (4) N 2
memberIP tinytext N
memberIP2 tinytext N
secretQuestion tinytext N
secretAnswer varchar (64) N
ID_THEME tinyint (4) unsigned N 0
is_activated tinyint (3) unsigned N 1
validation_code varchar (10) N
ID_MSG_LAST_VISIT int (10) unsigned N 0
additionalGroups tinytext N
smileySet varchar (48) N
ID_POST_GROUP smallint (5) unsigned N MUL 0
totalTimeLoggedIn int (10) unsigned N 0
passwordSalt varchar (5) N

Settori abbiamo bisogno di prestare attenzione a:

  • MEMBERNAME - Auto Explanitory.
  • dateRegistered - non è necessario, ma se non compilato la data registrata mostra come 31o dicembre 1969. La data viene salvato come un'epoca timestamp. Non so come calcolare i timestamp nella tua testa? Nessun problema. Io uso la libera generatore trovare qui.
  • realname - deve essere inserito. Quando non sono sicuro ho appena MEMBERNAME ripetere qui.
  • EMAILADDRESS - Auto Explanitory.
  • is_activated - Deve essere impostato su 1 in quanto siamo manualmente l'attivazione di un membro.
  • ID_POST_GROUP - Non mi mentire. Non sono sicuro di che cosa si tratta, eppure sembra essere fissato a 4. Allora .... Ho semper impostato a 4. Non è il modo migliore per programma, ma quello che puoi fare?
  • passwd - La password che si desidera dare al nuovo utente. E 'impossibile capire come entrare senza guardare la documentazione SMF. Il codice per cifrare un SMF password per il database simile al seguente:

($memberName).$password) passwd = $ sha1 (strtolower ($ MEMBERNAME). $ password)

Nell'esempio precedente riga di codice, $ password è l'utente effettivo della password.

Come per farlo:

/ / In primo luogo, stabilire la connessione al database di SMF

$ host = "hostname"; / / Nome host
$ username = "nome utente"; / / MySQL nome utente
miapassword $ = "password"; / / MySQL password
$ db_name = "nome utente"; / / nome del database

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ miapassword") or die ( "non può connettersi al server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "non può selezionare DB");

MEMBERNAME $ = "IronMan";
$ realname = "Tony Stark";
EMAILADDRESS $ = "ironMan@ironMan.com";
is_activated = $ 1;
$ ID_POST_GROUP = 4;

$ password = "Tony1234";

($memberName).$password); $ password = sha1 (strtolower ($ MEMBERNAME). $ password);

dateRegistered $ = 1216951200; / / 7.25.2008 2 AM

$ query = "INSERT INTO smf_members (MEMBERNAME, realname, EMAILADDRESS, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ( '$ MEMBERNAME', '$ realname', '$ EMAILADDRESS', '$ is_activated', '$ ID_POST_GROUP', ' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ risultato = mysql_query ($ query) or die ( "Errore SMF 101.234");

Questo è tutto quello che ad essa!

Permalink | Commenti