Ako pomáhajú používateľom ľahko vložiť video na SMF webe

Publikované v SMF (jednoduchý stroj Forum) od ShortLikeAFox dňa 10.8.2008

Takže ste na starosti vytvorenie simple machines forum na webe a chcete spoľahlivý spôsob, ako umožniť používateľom vkladať videá z populárnych video stránky (YouTube, Google Video, IGN, atď). Môžete byť oprávnene bojí, ktorý umožňuje užívateľom jednoducho používať pre vloženie kódu z tých jednotlivých miest, pretože Boh vie, čo budú výsledky. Riešením tohto problému je tak jednoduché, ako môže byť. Karl Benson napísal modifikácii balík, ktorý umožňuje vkladanie video tak jednoduché vyberanie a vkladanie URL stránky video sa zobrazí palcov Tento balík funguje pre viac ako 150 stránok a je nazývaný AEVAC (Audio Vložiť Video / audio klipov). Najnovšia verzia je verzia 3.1.2 a nájdeme ju tu.

Jedná sa o mod vřele doporučuji. Používa sa správne to má potenciál výrazne znížiť početnosť a závažnosť bolesťou hlavy forum správcu.

Ako ručne vložiť skupiny užívateľov do SMF fóra pomocou PHP

Publikované v SMF (jednoduchý stroj Forum) , PHP do ShortLikeAFox dňa 30.července 2008

Tento návod predpokladá, že ste sa oboznámili s mojím post: Ako ručne vložiť užívateľa do SMF fóra pomocou PHP .

Nedávno som stál pred úlohou pohybujúce sa 800 alebo tak kapiel z databázy do fóra SMF. I čelí niekoľkým problémom pri pohybe, že som nemala vzťahovať na prvý post:

  1. Kapela mena bola nemusia byť zaručene úplne bezpečné pre jednotlivé znaky presunúť do databázy SMF. Takže nejaké meno, ktorým sa mení funkcie musel byť zamestnaný.
  2. Kapely nemajú hesla. Takže nejaký typ hesla generácia potrebuje byť zamestnaný.

Kroky som išiel asi na registráciu všetkých kapiel na fóre išiel trochu ako toto:

Open kapela databázy

pre každého (skupina) (

Vytvoriť heslo

Premenovať kapela s "bezpečné" meno

Chyť a získanie informácií potrebných pre vloženie užívateľa

Vložiť do kapely smf_members

Pošlite kapela e-mail s heslom

)

Informácie som mal k dispozícii z kapely databázy, ktorá bola užitočná zahrnuté: bandName, bandEmail, a bandWebsite

Tu je heslo generácie funkciu som použil (blatently prevzatý z totallyphp.co.uk ):

Funkcia createRandomPassword () (

$ Znaky = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((double) microtime () * 1000000);

$ I = 0;

$ Pass = ";



while ($ i <= 7) (

33; $ Num = rand ()% 33;

$ Tmp = substr ($ znakov, $ num, 1);

$ Pass = $ prejsť. $ Tmp;

$ I + +;

)

návrat $ prejsť;

)

Heslo tu vzniklo, je pomerne slabý, ale bolo to dosť dobré pre moje účely. Akékoľvek heslo generácie funkcie by fungovať dobre tu. Zvolil som túto, pretože to by bolo jednoduché pre členov pamätať, ak rozhodli sa to zmeniť.

Ako na to:

/ / Najskôr pripojiť ku kapele databázy
$ Username = "bandUsername";
$ Host = "bandHost";
$ Mypassword = "bandPassword";
$ DB_NAME = "bandDatabase";

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Nemožno sa pripojiť k serveru");
("cannot select DB"); mysql_select_db ("$ DB_NAME") or die ("Nemožno vybrať DB");

/ / Teraz urvat všetky kapely z databázy
$ Query = "SELECT * FROM allBands";
$ Kapely = mysql_query ($ query) alebo die ("Config Chyba 2222b");
$ UserRows = mysql_num_rows ($ pásma);

/ / Teraz umožňuje pripojiť k SMF db
$ Host = "smfhost" / / Názov hostiteľa
$ Username = "smfuser; / / mysql užívateľské meno
$ Mypassword = "smfpassword"; / / mysql heslo
$ DB_NAME = "smfdatabase" / / Názov databázy

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Nemožno sa pripojiť k serveru");
("cannot select DB"); mysql_select_db ("$ DB_NAME") or die ("Nemožno vybrať DB");

/ / $ Vaild_chars bude pole povolených znakov pre užívateľské mená. Rozhodol som sa povolí iba písmená a číslice. Existujú aj iné znaky, ktoré by mohli byť použité a ktoré by nemalo mať problém, ale pre štýl dôvodov, prečo som sa rozhodol ísť s iba písmená a číslice
$ Valid_chars = "abcdefghijklmnopqrstu VWXYZ 0 1 2 3 4 5 6 7 8 9";
$ Valid_chars = explode ("", $ valid_chars);

/ / Teraz sa musíme prechádzať každé pásmo

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

($bands)){ if ($ row = mysql_fetch_assoc ($ pásma)) (

/ / Výpis kapela informácií
extrakt ($ row);
/ / Vytvorenie hesla pre kapelu
$ RealPassword = createRandomPassword ();
/ / Aj rozhodnete echo bandname a heslo ako súčasť mojej ladenie, a tak vidím fungovať ako to funguje
echo ("<br/> $ bandName - $ realPassword");
$ NewBand = "";
/ / Pre každé písmeno v názve kapely budeme pozrieť, či sa zhoduje s platným znakom z $ valid_chars. To nie je hodláme zbaviť, a skrátiť názov kapely
($bandName); $j ++ ){ for ($ j = 0; $ j <strlen ($ bandName), $ j + +) (

($band[$j])); $ Temp = str_replace ($ valid_chars, "X", strtolower ($ pásmo [$ j]));
if ($ temp == "X")

$ NewBand = $ newBand. $ Pásmo [$ j];

)
/ / Aj echo nový názov pre rovnaký dôvod, prečo som echo staré meno a heslo
echo ("- $ newBand");
/ / Máme nového názvu kapely .... Teraz začnime buliding info musíme vložiť do db ...
$ MemberName = $ newBand;
$ REALNAME = $ newBand, / / som skutočné meno a člen názov rovnaký. Pásma je možné ju zmeniť, ak chcú
$ EmailAddress = $ bandEmail;
$ WebsiteUrl = $ bandWebsite; / / Pretože som kapely 'internetovej stránky môžu tiež vstupovať
$ WebsiteTitle = $ newBand;
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ Password = SHA1 (strtolower ($ memberName). $ RealPassword) / / Heslo musí byť šifrované

/ / Uistite sa, že nejde o ich členom sa rovnakým názvom v databáze SMF. Nechceme, aby náhodou niekto vstúpiť dvakrát
$ Query = "SELECT * FROM smf_members WHERE memberName = '$ memberName'";
("Config Error 2222343242b"); $ Result = mysql_query ($ query) alebo die ("Config Chyba 2222343242b");
$ Nrows = mysql_num_rows ($ result);

/ / Ak členský meno sa nachádza nerobiť nič
if ($ nrows> 0) ()

else (

/ / Ak nie je používateľ už zaregistrovali na fórach, tak a poslať e-mail ....
$ Query = "INSERT INTO smf_members (memberName, skutočné meno, emailAddress, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ('$ memberName', '$ skutočné meno', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP' , '$ heslo', '$ websiteUrl', '$ websiteTitle') ";

("Config Error 2232 "); $ Result = mysql_query ($ query) alebo die ("Config Chyba 2232");

/ / Teraz sa musíme poslať kapele email
$ Do = $ emailAddress;
$ Subject = "Vaše forum užívateľské meno a heslo";

/ / Z
$ Header = "od: Me <me@mysite.com>";

/ / Váš odkaz
$ Message .= "Vaše prihlasovacie meno a heslo sú uvedené nižšie. Môžete zmeniť buď kedykoľvek. Ak sa nechcete podieľať na našom fóre, že to nie je problém. Proste nikdy prihlásiť a bude to ako sa nič nestalo. \ r \ n ";
$ Message .= "Meno: $ memberName Heslo: $ realPassword \ r \ n";

/ / Odoslať email
$ Sentmail = mail ($ k, $ subject, $ message, $ header);
if ($ sentmail)

echo ("- ÁNO!");
/ / Toto je posledná časť našej echo. "-ÁNO!" bude tlačiť len v prípade e-mailu je poslal. Takže plný výpis riadok bude vyzerať nejako takto:
/ / Adam Strife - 4s6vsxag - AdamStrife - ÁNO!

)

)
)

Ako ručne vložiť užívateľa do SMF fóra pomocou PHP

Publikované v SMF (jednoduchý stroj Forum) , PHP do ShortLikeAFox dňa 28. júla 2008

Tento konkrétny príklad je pre SMF 1.1.5. Nemôžem zaručiť, že bude fungovať s inými verziami.

Tak bež jednoduchý stroj fóra Software a chcete ručne zadať používateľ? V poriadku. Viem, že tento problém sa zdá byť veľmi konkrétny, ale nápady vysvetlila tu možno prispôsobiť pre ďalšie typy akcií a ďalších databáz riadený softvérové balíky, ako je Wordpress. Než sa dostaneme do presne, ako to urobiť, poďme sa pozrieť na to, ako jednoduchý stroj fóra udržiava užívateľov. V databáze SMF je tabuľka s názvom smf_members. Smf_members štruktúra vyzerá nasledovne:

Pole Typ Nulový

Kľúč Omeškanie Ďalšie
ID_MEMBER mediumint (8) nepodpísané NO PRI NULL AUTO_INCREMENT
memberName VARCHAR (80) NO MUL
dateRegistered int (10) nepodpísané NO MUL 0
pracovných miest mediumint (8) nepodpísané NO MUL 0
ID_GROUP smallint (5) nepodpísané NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) nepodpísané NO MUL 0
realname tinytext NO
Zprávychatu smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list text NO
pm_ignore_list text NO
messageLabels text NO
passwd VARCHAR (64) NO
emailAddress tinytext NO
personalText tinytext NO
pohlavia tinyint (4) nepodpísané NO 0
dátum narodenia dátum NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
umiestnenie tinytext NO
ICQ tinytext NO
AIM VARCHAR (16) NO
YIM VARCHAR (32) NO
MSN tinytext NO
hideEmail tinyint (4) NO 0
showOnline tinyint (4) NO 1
TIMEFORMAT VARCHAR (80) NO
podpis text NO
timeOffset plavák NO 0
Avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) nepodpísané NO 0
karmaGood smallint (5) nepodpísané NO 0
Titul užívateľa tinytext NO
notifyAnnouncements tinyint (4) NO 1
notifyOnce tinyint (4) NO 1
notifySendBody tinyint (4) NO 0
notifyTypes tinyint (4) NO 2
memberIP tinytext NO
memberIP2 tinytext NO
secretQuestion tinytext NO
secretAnswer VARCHAR (64) NO
ID_THEME tinyint (4) nepodpísané NO 0
is_activated tinyint (3) nepodpísané NO 1
validation_code VARCHAR (10) NO
ID_MSG_LAST_VISIT int (10) nepodpísané NO 0
additionalGroups tinytext NO
smileySet VARCHAR (48) NO
ID_POST_GROUP smallint (5) nepodpísané NO MUL 0
totalTimeLoggedIn int (10) nepodpísané NO 0
passwordSalt VARCHAR (5) NO

Pole musíme venovať pozornosť:

  • memberName - Vlastné explanitory.
  • dateRegistered - nie je nutné, ale ak nie je vyplnený dátum registrovaných zobrazí ako 31 decembra 1969. Dátum je uložený ako epocha časovú pečiatku. Neviem, ako vypočítať časové značky vo vašej hlave? V poriadku. I využitie voľného generátor nachádza tu .
  • realname - by mala byť vložená. Keď nie som istý, či som len zopakovať memberName tu.
  • emailAddress - Vlastné explanitory.
  • is_activated - Musí byť nastavený na 1, pretože sme ručne aktiváciu členom.
  • ID_POST_GROUP - Nebudem klamať. Nie som si istý, čo to je, ale vždy sa zdá byť nastavená na 4. Tak .... Vždy som si nastaviť až 4. Nie je najlepší spôsob, ako program, ale čo môžete robiť?
  • passwd - heslo chcete dať nový užívateľ. Je nemožné, aby zistili, ako vstúpiť bez pri pohľade na dokumentáciu SMF. Riadne kód na zašifrovanie hesla pre SMF databázy vyzerá takto:

($memberName).$password) $ Passwd = SHA1 (strtolower ($ memberName). $ Heslo)

Vo vyššie uvedenom riadok kódu, $ heslo, používateľ je skutočné heslo.

Ako na to:

/ / Najprv sa pripojiť k databáze SMF

$ Host = "hostname" / / Názov hostiteľa
$ Username = "username"; / / mysql užívateľské meno
$ Mypassword = "password", / / mysql heslo
$ DB_NAME = "username"; / / Názov databázy

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Nemožno sa pripojiť k serveru");
("cannot select DB"); mysql_select_db ("$ DB_NAME") or die ("Nemožno vybrať DB");

$ MemberName = "Ironman";
$ Skutočné meno = "Tony Stark";
$ EmailAddress = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;

$ Password = "Tony1234";

($memberName).$password); $ Password = SHA1 (strtolower ($ memberName). $ Heslo);

$ DateRegistered = 1216951200; / / 7-25-2008 2 AM

$ Query = "INSERT INTO smf_members (memberName, skutočné meno, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ memberName', '$ skutočné meno', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' $ heslo ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Result = mysql_query ($ query) alebo die ("Chyba SMF 101,234");

To všetko tam je to!