Helfen Sie Anwender Embed Videos auf einer Website SMF

Posted in SMF (Simple Machine Forum) von ShortLikeAFox am 10. August 2008

Sie sind verantwortlich für die Einrichtung eines Simple Machines Forum basiert Website und wollen eine Art und Weise kinderleicht, sodass Benutzer embed Videos von populären Video-Seiten (YouTube, Google Video, IGN, etc.). Sie können zu Recht Angst, in die es den Nutzern ermöglicht, verwenden Sie einfach den embed-Code von den einzelnen Standorten, denn Gott weiß, was das Ergebnis sein wird. Die Lösung für dieses Problem ist so einfach wie das sein kann. Karl Benson schrieb eine Änderung Paket, das Video Einbettung so einfach wie Ausschneiden und Einfügen der URL der Seite das Video erscheint in. Dieses Paket arbeitet für mehr als 150 Seiten und wird als AEVAC (Audio Embed Video / Audio-Clips). Die jüngste Version ist die Version 3.1.2 und kann hier gefunden werden.

Dies ist ein mod ich nur wärmstens empfehlen kann. Gebraucht richtig es hat das Potenzial, sehr Verringerung der Häufigkeit und Schwere der Forum-Administrator Kopfschmerzen.

Wie, manuell eine Gruppe von Benutzern in eine SMF Forum PHP

Posted in SMF (Simple Machine Forum), PHP von ShortLikeAFox am 30. Juli 2008

Dieses Tutorial setzt voraus, dass Sie sich mit meinem Beitrag: Wie, manuell einen User in eine SMF Forum PHP.

Ich war vor kurzem vor der Herausforderung der bewegenden 800 oder so Bands aus einer Datenbank in eine SMF-Forum. Ich hatte ein paar Probleme bei der Bewegung, dass ich nicht die in den ersten Post

  1. Die Band-Namen wurden nicht garantiert werden, sicher zu sein für ein Zeichen für Zeichen in die SMF-Datenbank. So eine Art der Änderung der Name-Funktion zu werden.
  2. Die Bänder haben keine Passwörter. So eine Art von Passwort-Generation zu werden.

Die Schritte ging ich über die Registrierung aller von den Bands im Forum ging ein wenig wie folgt aus:

Öffnen Sie die Band-Datenbank

für jede (Band) (

Passwort generieren

Umbenennen Band mit "sicheren" Namen

Grab-und generieren erforderlichen Informationen, um die Benutzer

Legen Sie in Band smf_members

Senden Sie eine E-Mail-Band mit dem Kennwort

)

Informationen, die ich zur Verfügung hatte, aus der Datenbank, die Band war nützlich enthalten: Bandname, bandEmail und bandWebsite

Hier ist die Passwort-Funktion Generation habe ich (blatently aus totallyphp.co.uk):

Funktion createRandomPassword () (

$ chars = "abcdefghijkmnopqrstuvwxyz023456789";

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

$ i = 0;

$ pass = ";



while ($ i <= 7) (

33; $ num = rand ()% 33;

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

$ pass = $ pass. $ tmp;

$ i + +;

)

return $ pass;

)

Das Passwort hier ist relativ schwach, aber es war gut genug für meine Zwecke. Jedes Passwort, Generation Funktion würde funktionieren hier. Ich habe mich für diese, denn es wäre ein Leichtes für die Mitglieder zu merken, wenn sie sich nicht zu ändern.

So geht's:

/ / Erstes eine Verbindung mit dem Band-Datenbank
$ username = "bandUsername";
$ host = "bandHost";
$ mypassword = "bandPassword";
$ db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ mypassword") or die ( "Kann keine Verbindung zum Server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "nicht wählen können, DB");

/ / Nun greifen alle Bands aus der Datenbank
$ query = "SELECT * FROM allBands";
$ Bands = mysql_query ($ query) or die ( "Config Fehler 2222b");
$ userRows = mysql_num_rows ($ Bands);

/ / Jetzt können die Verbindung zum smf db
$ host = "smfhost"; / / Host-Name
$ username = "smfuser; / / MySQL Username
$ mypassword = "smfpassword"; / / MySQL Passwort
$ db_name = "smfdatabase"; / / Name der Datenbank

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ mypassword) oder die (" kann keine Verbindung zum Server ");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "nicht wählen können, DB");

/ / $ vaild_chars wird das Array der erlaubten Zeichen für Benutzernamen. Ich habe mich entschieden, nur Buchstaben und Zahlen enthalten. Es gibt auch andere Zeichen, die genutzt werden könnten, die nicht zu einem Problem führen, sondern auch für Stil Gründe, warum ich beschlossen, nur mit Buchstaben und Zahlen
$ valid_chars = "ABCDEFGHIJKLMNOPQRSTU VWXYZ 0 1 2 3 4 5 6 7 8 9";
$ valid_chars = explode ( "", $ valid_chars);

/ / Jetzt müssen wir Schleife durch jedes Band

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

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

/ / Extrahieren der Band Informationen
extract ($ row);
/ / Erstellen Sie ein Passwort für die Band
$ realPassword = createRandomPassword ();
/ / Habe ich mich für den Echo der Bandname und das Kennwort als Teil meiner Debugging und so sehe ich das so funktionieren, wie es funktioniert
echo ( "<br/> Bandname $ - $ realPassword");
$ newBand = "";
/ / Für jeden Buchstaben im Namen der Band werden wir sehen, wenn sie mit einem gültigen Zeichen aus valid_chars $. Es es nicht werden wir los, und die Band truncate Namen
($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];

)
/ / Echo ich den neuen Namen für den gleichen Grund, warum ich echo den alten Namen und Passwort
echo ( "- $ newBand");
/ / Wir haben die neuen Band-Namen .... jetzt geht's los Gebäude die Info brauchen wir, um in der DB ...
$ Name = $ newBand;
$ realname = $ newBand; / / Ich habe die richtigen Namen und den gleichen Namen Mitglied. Die Bänder können, wenn sie wollen
$ E-Mail-Adresse = $ bandEmail;
$ websiteUrl = $ bandWebsite; / / Da ich die Bands "Websites kann auch sein, daß Sie diese
$ websiteTitle = $ newBand;
$ is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ password = sha1 (strtolower ($ Name). $ realPassword); / / Das Passwort muss verschlüsselt

/ / Stellen Sie sicher, dass ihr kein Mitglied mit dem gleichen Namen in der Datenbank SMF. Wir wollen nicht versehentlich zweimal in jeder
$ query = "SELECT * FROM smf_members WHERE Name = '$ Name'";
("Config Error 2222343242b"); $ result = mysql_query ($ query) or die ( "Config 2222343242b Fehler");
$ nrows = mysql_num_rows ($ result);

/ / Wenn das Mitglied ist nichts gefunden
if ($ nrows> 0) ()

else (

/ / Wenn der Benutzer nicht bereits für das Forum, tun Sie dies und senden Sie eine E-Mail ....
$ query = "INSERT INTO smf_members (Name, realname, E-Mail-Adresse, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ( '$ Name', '$ realname', '$ E-Mail-Adresse', '$ is_activated', '$ ID_POST_GROUP" , '$ password', '$ websiteUrl', '$ websiteTitle') ";

("Config Error 2232 "); $ result = mysql_query ($ query) or die ( "Config Fehler 2232");

/ / Jetzt brauchen wir, um die Band eine E-Mail
$ to = $ E-Mail-Adresse;
$ subject = "Ihr Benutzername und Kennwort-Forum";

/ / Von
$ header = "From: Me <me@mysite.com>";

/ / Ihre Nachricht
$ message .= "Ihr Login und Passwort sind unten aufgeführt. Sie können entweder jederzeit ändern. Wenn Sie nicht möchten, dass die Teilnahme an unserem Forum, das ist kein Problem. Melden Sie sich einfach nie, und es wird wie immer nichts passiert ist . \ r \ n ";
$ message .= "Benutzername: Passwort $ Name: $ realPassword \ r \ n";

/ / Senden von E-Mails
$ sentmail = mail ($ to, $ subject, $ message, $ header);
if ($ sentmail)

echo ( "- JA!");
/ / Dies ist der letzte Teil unserer echo. Die "JA!" wird nur dann gedruckt, wenn eine E-Mail gesendet wird. So ein Ausdruck Zeile wird in etwa so aussehen:
/ / Adam Strife - 4s6vsxag - AdamStrife - JA!

)

)
)

Wie, manuell ein User in eine SMF Forum PHP

Posted in SMF (Simple Machine Forum), PHP von ShortLikeAFox am 28. Juli 2008

Dieses Beispiel ist für spezielle SMF 1.1.5. Ich kann nicht garantieren, es wird mit einer anderen Version.

Sie laufen einfach Machine Forum Software und möchten ein Benutzer manuell eingeben? Kein Problem. Ich weiß, dass dieses Problem scheint sehr spezifisch, aber die Ideen hier kann so angepasst werden, dass andere Arten von Foren und anderen Datenbank-Software-Pakete wie Wordpress. Bevor wir in die genau wie Sie dies tun können, nehmen wir einen Blick auf, wie einfach Machine Foren verfolgt der Nutzer. In der SMF-Datenbank gibt es eine Tabelle mit dem Namen smf_members. Smf_members Die Struktur sieht wie folgt aus:

Feld Typ Null

Schlüssel Vorgabe Extra
ID_MEMBER mediumint (8) unsigned NO PRI NULL auto_increment
Name varchar (80) NO MUL
dateRegistered int (10) unsigned NO MUL 0
Stellen mediumint (8) unsigned NO MUL 0
ID_GROUP smallint (5) unsigned NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) unsigned NO MUL 0
realname tinytext NO
instantMessages 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
E-Mail-Adresse tinytext NO
personalText tinytext NO
Geschlecht tinyint (4) unsigned NO 0
Geburtsdatum Datum NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
Standort 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
Unterschrift Text NO
timeOffset float NO 0
avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) unsigned NO 0
karmaGood smallint (5) unsigned 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) unsigned NO 0
is_activated tinyint (3) unsigned NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) unsigned NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) unsigned NO MUL 0
totalTimeLoggedIn int (10) unsigned NO 0
passwordSalt varchar (5) NO

Bereiche müssen wir achten auf:

  • Name - Self Explanitory.
  • dateRegistered - ist nicht notwendig, aber nicht ausgefüllt werden, wenn das Datum eingetragen werden, da der 31. Dezember 1969. Das Datum wird als eine Epoche Zeitstempel. Ich weiß nicht, wie die Berechnung der Zeitstempel in Ihrem Kopf? Kein Problem. Ich benutze den kostenlosen Generator finden Sie hier.
  • realname - eingefügt werden sollen. Wenn ich nicht sicher, ob ich nur wiederholen, Name hier.
  • E-Mail-Adresse - Self Explanitory.
  • is_activated - muss auf 1 gesetzt sein, da wir uns manuell aktivieren Mitglied.
  • ID_POST_GROUP - ich will nicht lügen. Ich bin mir nicht sicher, was das ist, aber es scheint sich immer auf 4. Also .... Ich es immer zu 4. Nicht die beste Art und Weise zu programmieren, aber was kann man tun?
  • passwd - Das Passwort, das Sie wollen den neuen Benutzer. Es ist unmöglich, herauszufinden, wie Sie, ohne auf die SMF-Dokumentation. Die entsprechenden Code zum Verschlüsseln eines SMF-Passwort für die Datenbank sieht wie folgt aus:

($memberName).$password) $ passwd = SHA1 (strtolower ($ Name). $ password)

In dem obigen Code-Zeile, $ password ist das Benutzer-Passwort tatsächlichen.

So geht's:

/ / First, Herstellen der Verbindung zur Datenbank SMF

$ host = "hostname"; / / Host-Name
$ username = "username"; / / MySQL Username
$ mypassword = "password"; / / MySQL Passwort
$ db_name = "username"; / / Name der Datenbank

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ mypassword") or die ( "Kann keine Verbindung zum Server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "nicht wählen können, DB");

$ Name = "Ironman";
$ realname = "Tony Stark";
$ E-Mail-Adresse = "ironMan@ironMan.com";
$ is_activated = 1;
$ ID_POST_GROUP = 4;

$ password = "Tony1234";

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

$ dateRegistered = 1216951200 / / 7-25-2008 2 AM

$ query = "INSERT INTO smf_members (Name, realname, E-Mail-Adresse, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ( '$ Name', '$ realname', '$ E-Mail-Adresse', '$ is_activated', '$ ID_POST_GROUP', ' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ result = mysql_query ($ query) or die ( "SMF 101,234 Fehler");

Das war's auch schon!