Kako pomagati uporabnikom lahek vlagati televizija na SMF strani

Objavljeno v SMF (Simple Machine Forum) , ki ga ShortLikeAFox na 10. avgust 2008

Torej ste v zadolžen za vzpostavitev Simple Machines Forum na spletno stran in želite popolnoma varen način, da uporabnikom omogočajo vlagati televizija s ljudski televizija položaj (YouTube, Google Video, IGN, itd.) Morda boste upravičeno strah omogoča uporabnikom, da preprosto uporabite embed koda od teh posameznih območij, saj Bog ve, kaj bodo rezultati. Rešitev tega problema je tako enostavno, kot je mogoče. Karl Benson je napisal spremembo paket, ki omogoča video vdelavo tako enostavno, kot rezanje in lepljenje URL strani video zdi v. Ta paket deluje že več kot 150 mest in se imenuje AEVAC (Audio vlagati Video / Audio posnetki). Najnovejša različica za javnost 3.1.2, in jo lahko najdete tukaj.

To je mod sem zelo priporočam. Uporablja pravilno, da ima potencial, da znatno zmanjša pogostost in resnost glavoboli forum administrator.

Kako ročno Vstavljanje skupine uporabnikov, SMF forum Uporaba PHP

Objavljeno v SMF (Simple Machine Forum) , php , ki ga ShortLikeAFox na 30. julij 2008

Ta Tutorial predpostavlja, ste seznanjeni z mojim post: Kako ročno vstavite uporabnika v SMF forum Uporaba PHP .

Pred kratkim sem se soočajo z izzivom, ki se gibljejo 800 ali tako pasovih iz baze podatkov v forum SMF. I s katerimi se srečujejo nekaj težav pri pripravi premakniti, da sem storil ne zajema v prvi post:

  1. Band imena so bila ne zagotavljajo varno za znak, ki ga znak premakniti v bazo podatkov SMF. Torej nekakšen ime spreminja funkcije je bilo treba uporabiti.
  2. Pasovi nimajo gesla. Tako nekatere vrste proizvodnje geslo je treba uporabiti.

Koraki sem šel okoli, da se registrirajo vse pasov na forumu je šel malo všeč:

Open Database Band

za vsako (Band) (

Ustvari geslo

Preimenuj Band s "varne" name

Zgrabi in pridobivanje informacij, potrebnih za vstavljanje uporabnika

Vstavi Band v smf_members

Pošlji Band e-pošto z geslom

)

Informacije sem imel na voljo od pasu podatkovne baze, ki je koristno vključeno: bandName, bandEmail in bandWebsite

Tukaj je geslo generacija funkcijo sem uporabil (blatently vzeti iz totallyphp.co.uk ):

Funkcija createRandomPassword () (

$ Chars = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((dvojno) microtime () * 1000000);

$ I = 0;

$ = Prelaz ";



while ($ i <= 7) (

33; $ Num = rand ()% 33;

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

$ $ = Prelaz prelaz. $ Tmp;

$ I + +;

)

vrnitev $ mimo;

)

Geslo ustvaril tukaj, je dokaj šibek, vendar je bil dovolj dober za moje namene. Vsaka generacija geslo naloga bo delo globe tukaj. Sem izbral ta, ker bi bilo enostavno za člane spomniti, če so se odločili, da ga ne spremeni.

Kako to storiti:

/ / Najprej povezati z bazo podatkov pasu
$ Ime = "bandUsername";
$ Host = "bandHost";
$ Mypassword = "bandPassword";
$ DB_Name = "bandDatabase";

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") ali die ("ne more povezati s strežnikom");
("cannot select DB"); mysql_select_db ("$ DB_Name") ali die ("ne morem izbrati DB");

/ / Zdaj zgrabi vse pasovih iz baze
$ Query = "SELECT * FROM allBands";
$ = Mysql_query pasovih ($ poizvedba) ali die ("Config Error 2222b");
$ UserRows = mysql_num_rows ($ pasovi);

/ / Sedaj omogoča povezavo z SMF db
$ Host = "smfhost"; / / ime gostitelja
$ Ime = "smfuser; / / Mysql uporabniško ime
$ Mypassword = "smfpassword"; / / Mysql geslo
$ DB_Name = "smfdatabase"; / / Database ime

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") ali die ("ne more povezati s strežnikom");
("cannot select DB"); mysql_select_db ("$ DB_Name") ali die ("ne morem izbrati DB");

/ / $ Vaild_chars se bo niz dovoljeni znaki za uporabniška imena. Odločil sem se, da bodo samo črke in številke. Obstajajo še drugi znaki, ki bi jih lahko uporabili, da ne bi povzročilo problem, ampak za stil razlogov, sem se odločila, da gredo s samo črke in številke
$ Valid_chars = "ABCDEFGHIJKLMNOPQRSTU VWXYZ 0 1 2 3 4 5 6 7 8 9";
$ Valid_chars = eksplodira ("", $ valid_chars);

/ / Zdaj je treba zanko skozi vsak band

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

($bands)){ if ($ vrstica = mysql_fetch_assoc ($ pasovi)) (

/ / Citat band informacije
ekstrakt ($ vrstica);
/ / Ustvari geslo za band
$ RealPassword = createRandomPassword ();
/ / Sem se odločil, da odmeva bandname in geslo kot del moje odpravljanje napak in tako lahko vidim funkcijo, saj deluje
echo ("$ <br/> bandName - $ realPassword");
$ NewBand = "";
/ / Za vsako pismo, v pasu imena bomo videti, da vidim, če se ujema z veljavnim znakom iz $ valid_chars. To se ne bomo znebili, in skrajšajte band ime
($bandName); $j ++ ){ for ($ j = 0; $ j <strlen ($ bandName); $ j + +) (

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

$ $ = NewBand newBand. $ Band [$ j];

)
/ / I echo novo ime iz istega razloga sem echo staro ime in geslo
echo ("- $ newBand");
/ / Imamo novo Band ime .... zdaj začnimo buliding info moramo vstaviti v db ...
$ $ = MemberName newBand;
$ $ = Realname newBand; / / I, ki pravi ime in uporabniško ime enako. Pasovih lahko spremeni, če hočejo
$ $ = EmailAddress bandEmail;
$ $ = WebsiteUrl bandWebsite; / / Ker sem pasovih spletnih strani bi lahko tudi vanje
$ $ = WebsiteTitle newBand;
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ Geslo = sha1 (strtolower ($ memberName). RealPassword $); / Geslo mora / biti šifrirana

/ / Preverite svojo isn'ta člana z istim imenom v zbirki podatkov SMF. Ne želimo, da pomotoma vstopiti kdorkoli dvakrat
$ Query = "SELECT * FROM smf_members WHERE memberName = '$ memberName";
("Config Error 2222343242b"); $ Result = mysql_query ($ poizvedba) ali die ("Config Error 2222343242b");
$ Nrows = mysql_num_rows ($ rezultat);

/ / Če uporabniško ime, se ugotovi storiti ničesar
if ($ nrows> 0) ()

else (

/ / Če uporabnik ne že prijavili za forume, storijo in pošljejo email ....
$ 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" , '$ geslo', '$ websiteUrl "," $ websiteTitle') ";

("Config Error 2232 "); $ Result = mysql_query ($ poizvedba) ali die ("Config Error 2232");

/ / Zdaj je treba poslati skupino email
$ Na = $ emailAddress;
$ Subject = "Vaše forum uporabniško ime in geslo";

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

/ / Vaše sporočilo
$ Sporočilo .= "Vaše uporabniško ime in geslo, so navedeni spodaj. Spreminjate lahko bodisi kadarkoli. Če ne želite sodelovati na naših forumih, da ni problem. Samo nikoli se prijavite in ga bo kot ni nič zgodilo. \ r \ n ";
$ Sporočilo .= "Ime: $ memberName Geslo: $ realPassword \ r \ n";

/ / Pošiljanje e-pošte
$ Poslano = mail ($ za, $ predmet, $ sporočila, $ header);
if ($ poslano)

echo ("- DA!");
/ / To je zadnji del naše odmeva. "-DA!" bo le natisnjena če je poslana email. Tako poln izpis linija izgledala nekako takole:
/ / Adam Strife - 4s6vsxag - AdamStrife - DA!

)

)
)

Kako ročno Vstavljanje uporabnika v SMF forum Uporaba PHP

Objavljeno v SMF (Simple Machine Forum) , php , ki ga ShortLikeAFox na 28. julij 2008

Ta posebni primer je za SMF 1.1.5. Ne morem zagotoviti, da bo delo s katero koli drugo različico.

Torej, vi prost dostop Simple Machine Forum Software in želite ročno vnesti uporabnik? Ni problema. Vem, da ta problem se zdi zelo poseben, ampak ideje razloženo mogoče prilagoditi za druge vrste forumih in drugih baze podatkov usmerjenih programskih paketov, kot je Wordpress. Preden smo prišli v točno, kako to storiti, let's si oglejte, kako Simple Machine Forumi sledi uporabnikov. V zbirki podatkov SMF je tabela imenuje smf_members. Smf_members struktura izgleda takole:

Field Vrsta Null

Ključne Default Extra
ID_MEMBER mediumint (8) nepodpisana NO PRI NIČ auto_increment
memberName varchar (80) NO MUL
dateRegistered int (10) nepodpisana NO MUL 0
objav mediumint (8) nepodpisana NO MUL 0
ID_GROUP smallint (5) nepodpisana NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) nepodpisana NO MUL 0
Polno ime tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list Besedilo NO
pm_ignore_list Besedilo NO
messageLabels Besedilo NO
passwd varchar (64) NO
emailAddress tinytext NO
personalText tinytext NO
spol tinyint (4) nepodpisana NO 0
Datum rojstva datum NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
mesto 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 Besedilo NO
timeOffset float NO 0
avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) nepodpisana NO 0
karmaGood smallint (5) nepodpisana NO 0
usertitle 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) nepodpisana NO 0
is_activated tinyint (3) nepodpisana NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) nepodpisana NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) nepodpisana NO MUL 0
totalTimeLoggedIn int (10) nepodpisana NO 0
passwordSalt varchar (5) NO

Polja moramo posvetiti pozornost:

  • memberName - Self Explanitory.
  • dateRegistered - ni potrebno, če pa ni izpolnjen dan registrirana prikaže kot 31. december 1969. Datum je shranjen kot epoch timestamp. Ne vem, kako izračunati timestamps v tvoji glavi? Ni problema. Jaz raba prost generator voljo tukaj .
  • Polno ime - je treba vnesti. Ko nisem prepričan, da sem le ponoviti memberName tukaj.
  • emailAddress - Self Explanitory.
  • is_activated - mora biti nastavljen na 1, saj smo ročno aktiviranje člana.
  • ID_POST_GROUP - ne bom lagal. Nisem prepričan, kaj je to, vendar se vedno zdi, da je nastavljena na 4. Torej .... Vedno sem jo nastavite na 4. Ni najboljši način za program, ampak kaj lahko storite?
  • passwd - geslo, ki ste želeli, da novega uporabnika. Nemogoče je, da ugotovimo, kako vstopiti ne da bi gledali na dokumentacijo SMF. Ustrezne kode za šifriranje geslo SMF za podatkovno bazo izgleda takole:

($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName). $ Geslo)

V zgoraj vrstico kode, $ geslo je uporabnik dejansko geslo.

Kako to storiti:

/ / Prvič, povezovanje z bazo podatkov SMF

$ Host = "ime gostitelja"; / / ime gostitelja
$ Username = "ime"; / / Mysql uporabniško ime
$ Mypassword = "geslo"; / / Mysql geslo
$ DB_Name = "username"; / / Database ime

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") ali die ("ne more povezati s strežnikom");
("cannot select DB"); mysql_select_db ("$ DB_Name") ali die ("ne morem izbrati DB");

$ MemberName = "Ironman";
$ Realname = "Tony Stark";
$ EmailAddress = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;

$ Geslo = "Tony1234";

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

$ DateRegistered = 1216951200; / / 2008/07/25 02:00

$ Query = "INSERT INTO smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) values ('$ memberName", "$ realname", "$ emailAddress", "$ is_activated", "$ ID_POST_GROUP", " $ geslo ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Result = mysql_query ($ poizvedba) ali die ("Napaka SMF 101,234");

To je vse, kar je za to!