Jak pomáhají uživatelům snadno vložit video na SMF webu

Publikováno v SMF (jednoduchý stroj Forum) od ShortLikeAFox dne 10.8.2008

Takže jste na starosti vytvoření simple machines forum na webu a chcete spolehlivý způsob, jak umožnit uživatelům vkládat videa z populárních video stránky (YouTube, Google Video, IGN, atd.). Můžete být oprávněně bojí, který umožňuje uživatelům jednoduše používat pro vložení kódu z těch jednotlivých míst, protože Bůh ví, co budou výsledky. Řešením tohoto problému je tak jednoduché, jak může být. Karl Benson napsal modifikaci balíček, který umožňuje vkládání video tak jednoduché vyjímání a vkládání URL stránky video se zobrazí palců Tento balíček funguje pro více než 150 stránek a je nazýván AEVAC (Audio Vložit Video / audio klipů). Nejnovější verze je verze 3.1.2 a najdeme ji zde.

Jedná se o mod vřele doporučuji. Používá se správně to má potenciál výrazně snížit četnost a závažnost bolestí hlavy forum správce.

Jak ručně vložit skupiny uživatelů do SMF fóra pomocí PHP

Publikováno v SMF (jednoduchý stroj Forum) , PHP do ShortLikeAFox dne 30.července 2008

Tento návod předpokládá, že jste se obeznámili s mým post: Jak ručně vložit uživatele do SMF fóra pomocí PHP .

Nedávno jsem stál před úkolem pohybující se 800 nebo tak kapel z databáze do fóra SMF. I čelí několika problémům při pohybu, že jsem neměla vztahovat na první post:

  1. Kapela jména byla nemusejí být zaručeně zcela bezpečné pro jednotlivé znaky přesunout do databáze SMF. Takže nějaké jméno, kterým se mění funkce musel být zaměstnán.
  2. Kapely nemají hesla. Takže nějaký typ hesla generace potřebuje být zaměstnán.

Kroky jsem šel asi k registraci všech kapel na fóru šel trochu jako toto:

Open kapela databáze

pro každého (skupina) (

Vytvořit heslo

Přejmenovat kapela s "bezpečné" jméno

Chyť a získání informací potřebných pro vložení uživatele

Vložit do kapely smf_members

Pošlete kapela e-mail s heslem

)

Informace jsem měl k dispozici z kapely databáze, která byla užitečná zahrnuto: bandName, bandEmail, a bandWebsite

Zde je heslo generace funkci jsem použil (blatently převzat z totallyphp.co.uk ):

Funkce createRandomPassword () (

$ Znaky = "abcdefghijkmnopqrstuvwxyz023456789";

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

$ I = 0;

$ Pass = ";



while ($ i <= 7) (

33; $ Num = rand ()% 33;

$ Tmp = substr ($ znaků, $ num, 1);

$ Pass = $ projít. $ Tmp;

$ I + +;

)

návrat $ projít;

)

Heslo zde vzniklo, je poměrně slabý, ale bylo to dost dobré pro mé účely. Jakékoli heslo generace funkce by fungovat dobře zde. Zvolil jsem tuhle, protože to by bylo snadné pro členy pamatovat, pokud rozhodli se to změnit.

Jak na to:

/ / Nejdříve připojit ke kapele databáze
$ Username = "bandUsername";
$ Host = "bandHost";
$ Mypassword = "bandPassword";
$ Db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Nelze se připojit k serveru");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("Nelze vybrat DB");

/ / Nyní urvat všechny kapely z databáze
$ Query = "SELECT * FROM allBands";
$ Kapely = mysql_query ($ query) nebo die ("Config Chyba 2222b");
$ UserRows = mysql_num_rows ($ pásma);

/ / Nyní umožňuje připojit k SMF db
$ Host = "smfhost" / / Název hostitele
$ Username = "smfuser; / / mysql uživatelské jméno
$ Mypassword = "smfpassword"; / / mysql heslo
$ Db_name = "smfdatabase" / / Název databáze

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Nelze se připojit k serveru");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("Nelze vybrat DB");

/ / $ Vaild_chars bude pole povolených znaků pro uživatelská jména. Rozhodl jsem se povolí pouze písmena a číslice. Existují i jiné znaky, které by mohly být použity, že by nezpůsobila problém, ale pro styl důvodů jsem se rozhodl jít s pouze písmena a čísla
$ Valid_chars = "abcdefghijklmnopqrstu VWXYZ 0 1 2 3 4 5 6 7 8 9";
$ Valid_chars = explode ("", $ valid_chars);

/ / Nyní se musíme procházet každé pásmo

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

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

/ / Výpis kapela informací
extrakt ($ row);
/ / Vytvoření hesla pro kapelu
$ RealPassword = createRandomPassword ();
/ / I rozhodnete echo bandname a heslo jako součást mé ladění, a tak vidím fungovat jako to funguje
echo ("<br/> $ bandName - $ realPassword");
$ NewBand = "";
/ / Pro každé písmeno v názvu kapely budeme podívat, jestli se shoduje s platným znakem z $ valid_chars. To není hodláme zbavit, a zkrátit název 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];

)
/ / I echo nový název pro stejný důvod, proč jsem echo staré jméno a heslo
echo ("- $ newBand");
/ / Máme nového názvu kapely .... Nyní začněme buliding info musíme vložit do db ...
$ MemberName = $ newBand;
$ Realname = $ newBand, / / jsem skutečné jméno a člen název stejný. Pásma je možné ji změnit, pokud chtějí
$ EmailAddress = $ bandEmail;
$ WebsiteUrl = $ bandWebsite; / / Protože jsem kapely 'internetové stránky mohou také vstupovat
$ WebsiteTitle = $ newBand;
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ Password = SHA1 (strtolower ($ memberName). $ RealPassword) / / Heslo musí být šifrována

/ / Ujistěte se, že nejde o jejich členem se stejným názvem v databázi SMF. Nechceme, aby náhodou někdo vstoupit dvakrát
$ Query = "SELECT * FROM smf_members WHERE memberName = '$ memberName'";
("Config Error 2222343242b"); $ Result = mysql_query ($ query) nebo die ("Config Chyba 2222343242b");
$ Nrows = mysql_num_rows ($ result);

/ / Pokud členský jméno se nalézá nedělat nic
if ($ nrows> 0) ()

else (

/ / Pokud není uživatel již zaregistrovali na fórech, tak a poslat e-mail ....
$ Query = "INSERT INTO smf_members (memberName, skutečné jméno, emailAddress, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ('$ memberName', '$ skutečné jméno', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP' , '$ heslo', '$ websiteUrl', '$ websiteTitle') ";

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

/ / Nyní se musíme poslat kapele email
$ Do = $ emailAddress;
$ Subject = "Vaše forum uživatelské jméno a heslo";

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

/ / Váš vzkaz
$ Message .= "Vaše přihlašovací jméno a heslo jsou uvedeny níže. Můžete změnit buď kdykoliv. Pokud si nechcete podílet na našem fóru, že to není problém. Prostě nikdy přihlásit a bude to jako nic nestalo. \ r \ n ";
$ Message .= "Jméno: $ memberName Heslo: $ realPassword \ r \ n";

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

echo ("- ANO!");
/ / Toto je poslední část naší echo. "-ANO!" bude tisknout pouze v případě e-mailu je poslal. Takže plný výpis řádek bude vypadat nějak takto:
/ / Adam Strife - 4s6vsxag - AdamStrife - ANO!

)

)
)

Jak ručně vložit uživatele do SMF fóra pomocí PHP

Publikováno v SMF (jednoduchý stroj Forum) , PHP do ShortLikeAFox dne 28.července 2008

Tento konkrétní příklad je pro SMF 1.1.5. Nemohu zaručit, že bude fungovat s jinými verzemi.

Tak běž jednoduchý stroj fóra Software a chcete ručně zadat uživatel? V pořádku. Vím, že tento problém se zdá být velmi konkrétní, ale nápady vysvětlila zde lze uzpůsobit i pro další typy akcí a dalších databází řízený softwarové balíky, jako je Wordpress. Než se dostaneme do přesně, jak to udělat, pojďme se podívat na to, jak jednoduchý stroj fóra udržuje uživatelů. V databázi SMF je tabulka s názvem smf_members. Smf_members struktura vypadá takto:

Pole Typ Nulový

Klíč Prodlení Další
ID_MEMBER mediumint (8) nepodepsané NO PRI NULL AUTO_INCREMENT
memberName VARCHAR (80) NO MUL
dateRegistered int (10) nepodepsané NO MUL 0
pracovních míst mediumint (8) nepodepsané NO MUL 0
ID_GROUP smallint (5) nepodepsané NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) nepodepsané 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
pohlaví tinyint (4) nepodepsané NO 0
datum narození datum NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
umístění 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 plovák NO 0
Avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) nepodepsané NO 0
karmaGood smallint (5) nepodepsané NO 0
Titul uživatele 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) nepodepsané NO 0
is_activated tinyint (3) nepodepsané NO 1
validation_code VARCHAR (10) NO
ID_MSG_LAST_VISIT int (10) nepodepsané NO 0
additionalGroups tinytext NO
smileySet VARCHAR (48) NO
ID_POST_GROUP smallint (5) nepodepsané NO MUL 0
totalTimeLoggedIn int (10) nepodepsané NO 0
passwordSalt VARCHAR (5) NO

Pole musíme věnovat pozornost:

  • memberName - Vlastní explanitory.
  • dateRegistered - není nutné, ale není-li vyplněn datum registrované zobrazí jako 31 prosince 1969. Datum je uložen jako epocha časové razítko. Nevím, jak vypočítat časové značky ve vaší hlavě? V pořádku. I využití volného generátor nachází zde .
  • realname - by měla být vložena. Když nejsem jist, zda jsem jen zopakovat memberName zde.
  • emailAddress - Vlastní explanitory.
  • is_activated - Musí být nastaven na 1, protože jsme ručně aktivaci členem.
  • ID_POST_GROUP - Nebudu lhát. Nejsem si jistý, co to je, ale vždy se zdá být nastavena na 4. Tak .... Vždycky jsem si nastavit až 4. Není nejlepší způsob, jak program, ale co můžete dělat?
  • passwd - heslo, které chcete dát nový uživatel. Je nemožné, aby zjistili, jak vstoupit, aniž by při pohledu na dokumentaci SMF. Řádné kód k zašifrování hesla pro SMF databáze vypadá takto:

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

Ve výše uvedeném řádek kódu, $ heslo, uživatel je skutečné heslo.

Jak na to:

/ / Nejprve se připojit k databázi SMF

$ Host = "hostname" / / Název hostitele
$ Username = "username"; / / mysql uživatelské jméno
$ Mypassword = "password", / / mysql heslo
$ Db_name = "username"; / / Název databáze

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Nelze se připojit k serveru");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("Nelze vybrat DB");

$ MemberName = "Ironman";
$ Skutečné jméno = "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, skutečné jméno, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ memberName', '$ skutečné jméno', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' $ heslo ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Result = mysql_query ($ query) nebo die ("Chyba SMF 101,234");

To všechno tam je to!