Πώς να βοηθήσει τους χρήστες να ενσωματώσετε εύκολα τα βίντεο σε μια ιστοσελίδα SMF

Καταχωρήθηκε σε SMF (Simple Forum Machine) από ShortLikeAFox στις 10 Αύγ του 2008

Έτσι ώστε να είναι υπεύθυνοι για τη δημιουργία ενός Simple Machines Forum βασίζεται χώρο του ξενοδοχείου και θέλουν μια αλάνθαστη τρόπος για να επιτρέπει στους χρήστες να ενσωματώσετε τα βίντεο από το δημοφιλές βίντεο ιστοσελίδες (YouTube, Google Video, IGN, κ.λπ.). Ίσως δικαιολογημένα φοβάστε, επιτρέποντας στους χρήστες να χρησιμοποιούν απλά ενσωματώνει τον κώδικα από τους επιμέρους τόπους, επειδή ο Θεός ξέρει τι τα αποτελέσματα θα είναι. Η λύση στο πρόβλημα αυτό είναι τόσο απλή όσο μπορεί να είναι. Karl Benson έγραψε ένα πακέτο τροποποίηση που κάνει το βίντεο ενσωμάτωση τόσο απλή όσο αποκοπή και επικόλληση το URL της σελίδας του βίντεο εμφανίζεται in. Το πακέτο αυτό λειτουργεί για πάνω από 150 τοποθεσίες και ονομάζεται AEVAC (Audio Embed Video / Audio Clips). Η πιο πρόσφατη έκδοση είναι η έκδοση 3.1.2 και μπορεί να βρεθεί εδώ.

Αυτό είναι ένα mod συστήνω ιδιαίτερα. Χρησιμοποιηθεί σωστά έχει τη δυνατότητα να μειώσει σημαντικά τη συχνότητα και τη σοβαρότητα των ημικρανιών διαχειριστή του φόρουμ.

Πώς να Τοποθετήστε το χέρι μια ομάδα χρηστών σε ένα φόρουμ SMF Χρησιμοποιώντας την PHP

Καταχωρήθηκε σε SMF (Simple Forum Machine) , php από ShortLikeAFox στις 30 Ιουλίου 2008

Αυτό το σεμινάριο υποθέτει είστε εξοικειωμένοι με τη θέση μου: Πώς να Τοποθετήστε το χέρι έναν χρήστη σε ένα SMF Forum Χρησιμοποιώντας την PHP .

Που αντιμετώπισα πρόσφατα την πρόκληση της μεταφοράς 800 περίπου ταινίες από μια βάση δεδομένων σε ένα φόρουμ SMF. Αντιμετώπισα κάποια προβλήματα κατά την υποβολή της κίνηση που δεν είχα καλύψει το πρώτο post:

  1. Τα ονόματα μπάντα δεν ήταν εγγυημένα για να είναι ασφαλής για έναν χαρακτήρα από το χαρακτήρα, κινούνται στη βάση δεδομένων του SMF. Έτσι, κάποιο είδος του ονόματος που τροποποιεί τη λειτουργία έπρεπε να απασχολούνται.
  2. Τα συγκροτήματα δεν έχουν τους κωδικούς πρόσβασης. Έτσι, κάποιο είδος γενεάς κωδικό πρόσβασης, πρέπει να χρησιμοποιούνται.

Τα βήματα που πήγα για να εγγραφούν όλα τα συγκροτήματα στο φόρουμ πήγε λίγο σαν αυτό:

Ανοίξτε τη βάση δεδομένων Band

για κάθε μία (Band) (

Δημιουργήστε κωδικό πρόσβασης

Μετονομασία Band με το "ασφαλές" όνομα

Πιάσε και παράγουν πληροφορίες που απαιτούνται για την εισαγωγή του χρήστη

Τοποθετήστε Band σε smf_members

Αποστολή Band ένα email με τον κωδικό πρόσβασης

)

Πληροφορίες που μου είχε στη διάθεσή της από τη βάση δεδομένων μπάντα που ήταν χρήσιμη περιλαμβάνονται: bandName, bandEmail, και bandWebsite

Εδώ είναι η λειτουργία γενιά μυστικό κωδικό που χρησιμοποιείται (blatently λαμβάνονται από totallyphp.co.uk ):

λειτουργία createRandomPassword () (

$ Χαρακτήρες = "abcdefghijkmnopqrstuvwxyz023456789"?

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

$ I = 0?

$ Pass = "?



while ($ i <= 7) (

33; $ Num = rand ()% 33?

$ Tmp = substr ($ χαρακτήρες, $ num, 1)?

$ Pass = $ pass. $ Tmp?

$ I + +?

)

επιστροφή $ pass?

)

Ο κωδικός πρόσβασης που δημιουργήθηκε εδώ είναι σχετικά μικρή, αλλά ήταν αρκετά καλό για τους σκοπούς μου. Οποιαδήποτε λειτουργία γενιά password θα δουλεύουν μια χαρά εδώ. Επέλεξα αυτό διότι θα ήταν εύκολο για να το θυμηθούν, αν δεν επέλεξε να την αλλάξουμε.

Πώς να το κάνουμε:

/ / Πρώτα σύνδεση με τη βάση δεδομένων μπάντα
$ Username = "bandUsername"?
$ Υποδοχής = "bandHost"?
$ Mypassword = "bandPassword"?
$ Db_name = "bandDatabase"?

("cannot connect to server"); mysql_connect ("$" υποδοχής "$ username", "$ mypassword") ή να πεθάνουν ("δεν μπορεί να συνδεθεί με τον διακομιστή")?
("cannot select DB"); mysql_select_db ("$ db_name") ή να πεθάνουν ("Δεν μπορείτε να επιλέξετε DB")?

/ / Τώρα αρπάξει όλα τα συγκροτήματα από τη βάση δεδομένων
$ Query = "SELECT * FROM allBands"?
$ Συγκροτήματα = mysql_query ($ query) ή να πεθάνουν ("Ρυθμ Σφάλμα 2222b")?
$ UserRows = mysql_num_rows ($ ζώνες)?

/ / Τώρα αφήνει να συνδεθεί με το SMF db
$ Υποδοχής = "smfhost"? / / Όνομα Host
$ Username = "smfuser? / / Username Mysql
$ Mypassword = "smfpassword"? / / Password Mysql
$ Db_name = "smfdatabase"? / / Το όνομα Database

("cannot connect to server"); mysql_connect ("$" υποδοχής "$ username", "$ mypassword") ή να πεθάνουν ("δεν μπορεί να συνδεθεί με τον διακομιστή")?
("cannot select DB"); mysql_select_db ("$ db_name") ή να πεθάνουν ("Δεν μπορείτε να επιλέξετε DB")?

/ / $ Vaild_chars πρόκειται να είναι η σειρά των επιτρεπόμενων χαρακτήρων για ονόματα χρηστών. Αποφάσισα να επιτρέπει μόνο γράμματα και αριθμούς. Υπάρχουν και άλλοι χαρακτήρες που θα μπορούσαν να χρησιμοποιηθούν ότι δεν θα προκαλέσει κάποιο πρόβλημα, αλλά για το ύφος λόγους που αποφάσισε να πάει με only γράμματα και οι αριθμοί
$ Valid_chars = "abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9"?
$ Valid_chars = explode ("", $ valid_chars)?

/ / Τώρα πρέπει να βρόχο μέσα από κάθε μπάντα

){ για ($ i = 0? $ i <$ userRows? $ i + +) (

($bands)){ if ($ γραμμή = mysql_fetch_assoc ($ ζώνες)) (

/ / Εξαγωγή μπάντα πληροφορίες, η
εκχύλισμα ($ γραμμή)?
/ / Δημιουργήστε έναν κωδικό πρόσβασης για το συγκρότημα
$ RealPassword = createRandomPassword ()?
/ / Θα επιλέξετε να επαναλάβω τα bandname και τον κωδικό πρόσβασης ως μέρος της διόρθωσης μου και έτσι μπορώ να δω τη λειτουργία, δεδομένου ότι τα έργα
echo ("<br/> $ bandName - $ realPassword")?
$ NewBand = ""?
/ / Για κάθε γράμμα του ονόματος της μπάντας πρόκειται να κοιτάξουμε να δούμε αν ταιριάζει με έγκυρο χαρακτήρα από $ valid_chars. Αυτό δεν πρόκειται να απαλλαγούμε από αυτό και περικόψτε το όνομα του συγκροτήματός
($bandName); $j ++ ){ για ($ j = 0? $ j <strlen ($ bandName)? $ j + +) (

($band[$j])); $ Temp = str_replace ($ valid_chars, "X", strtolower ($ μπάντας [$ j]))?
if ($ temp == "X")

$ NewBand = $ newBand. $ Μπάντα [$ j]?

)
/ / Θα επαναλάβω το νέο όνομα για τον ίδιο λόγο, επαναλαμβάνω το παλιό όνομα και τον κωδικό πρόσβασης
echo ("- $ newBand")?
/ / Έχουμε το νέο όνομα Band .... Τώρα ας αρχίσουμε buliding τις πληροφορίες που χρειαζόμαστε για να εισάγετε στο db ...
$ MemberName = $ newBand?
$ Πραγματικό όνομα = $ newBand? / / Ορίζω το πραγματικό του όνομα και τα ονόματα των μελών της ίδιας. Οι ζώνες μπορεί να αλλάξει εάν θέλουν
$ Το email = $ bandEmail?
$ WebsiteUrl = $ bandWebsite? / / Από το έχω ζώνες »ιστοσελίδες του θα μπορούσε κάλλιστα να τεθεί
$ WebsiteTitle = $ newBand?
$ Is_activated = 1?
$ ID_POST_GROUP = 4?
($memberName).$realPassword); //Password must be encrypted $ Password = sha1 (strtolower ($ memberName). $ RealPassword)? / / Ο κωδικός πρόσβασης πρέπει να είναι κρυπτογραφημένα

/ / Σιγουρευτείτε μέλος isn'ta τους με το ίδιο όνομα στη βάση δεδομένων του SMF. Δεν θέλουμε να τεθεί κατά λάθος κάποιος δυο φορές
$ Query = "SELECT * FROM smf_members WHERE memberName" $ memberName = '?
("Config Error 2222343242b"); $ Result = mysql_query ($ query) ή να πεθάνουν ("Ρυθμ Σφάλμα 2222343242b")?
$ Nrows = mysql_num_rows ($ αποτέλεσμα)?

/ / Αν το όνομα του μέλους βρεθεί δεν κάνουν τίποτα
if ($ nrows> 0) ()

else (

/ / Αν ο χρήστης δεν έχει ήδη εγγραφεί για το φόρουμ, να το πράξουν και να στείλετε ένα email ....
$ Query = "INSERT INTO smf_members (memberName, πραγματικό όνομα, Το email, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ('$ memberName', '$ πραγματικό όνομα', '$ Το email', '$ is_activated', '$ ID_POST_GROUP» , '$ password "," $ websiteUrl', '$ websiteTitle') "?

("Config Error 2232 "); $ Result = mysql_query ($ query) ή να πεθάνουν ("Ρυθμ Error 2232")?

/ / Τώρα πρέπει να στείλετε το συγκρότημα ένα e-mail
$ To = $ Το email?
$ Subject = "όνομα χρήστη και κωδικό πρόσβασης forum σας"?

/ / Από την
$ Header = "από: Me <me@mysite.com>"?

/ / Το μήνυμα σας
$ Μήνυμα .= "όνομα χρήστη και κωδικός πρόσβασής σας αναφέρονται παρακάτω. Μπορείτε να αλλάξετε είτε σε οποιαδήποτε στιγμή. Εάν δεν θέλετε να συμμετάσχουν στο φόρουμ μας, ότι δεν υπάρχει πρόβλημα. Απλά συνδεθείτε ποτέ και θα είναι σαν τίποτα δεν συνέβη ποτέ. \ r \ n "?
$ Μήνυμα .= "Όνομα Χρήστη: $ memberName Password: $ realPassword \ r \ n"?

/ / Αποστολή email
$ Απεσταλμένα = mail ($ να, με την επιφύλαξη $, $ μήνυμα, $ header)?
if ($ απεσταλμένα)

echo ("- ΝΑΙ!")?
/ / Αυτό είναι το τελευταίο μέρος της ηχώ μας. Το "-ΝΑΙ!" μόνο θα τυπωθεί εάν ένα ηλεκτρονικό ταχυδρομείο έχει σταλεί. Έτσι, μια πλήρης γραμμή εκτύπωση θα είναι κάπως έτσι:
/ / Διαμάχη Αδάμ - 4s6vsxag - AdamStrife - ΝΑΙ!

)

)
)

Πώς να Τοποθετήστε το χέρι έναν χρήστη σε ένα φόρουμ SMF Χρησιμοποιώντας την PHP

Καταχωρήθηκε σε SMF (Simple Forum Machine) , php από ShortLikeAFox στις 28 Ιούλη 2008

Αυτό το συγκεκριμένο παράδειγμα είναι για SMF 1.1.5. Δεν μπορώ να εγγυηθώ ότι θα συνεργαστεί με οποιαδήποτε άλλη έκδοση.

Έτσι ώστε να εκτελέσετε απλές ρούχων Forum Software και θέλετε να εισάγετε με το χέρι του χρήστη; Κανένα πρόβλημα. Ξέρω ότι αυτό το πρόβλημα φαίνεται πολύ συγκεκριμένη, αλλά οι ιδέες που περιγράφεται εδώ μπορεί να προσαρμοστεί σε άλλα είδη του φόρουμ και από άλλες βάσεις δεδομένων οδηγείται πακέτα λογισμικού όπως το Wordpress. Πριν φτάσουμε σε ακριβώς πώς να το κάνετε αυτό, ας ρίξουμε μια ματιά στο πώς Simple Machine Forums παρακολουθεί τους χρήστες. Στη βάση δεδομένων SMF υπάρχει ένας πίνακας που ονομάζεται smf_members. Η smf_members δομή μοιάζει με αυτό:

Πεδίο Τύπος Άκυρος

Πλήκτρο Προεπιλογή Επιπλέον
ID_MEMBER mediumint (8) ανυπόγραφο ΟΧΙ PRI NULL auto_increment
memberName varchar (80) ΟΧΙ MUL
dateRegistered int (10) ανυπόγραφο ΟΧΙ MUL 0
θέσεις mediumint (8) ανυπόγραφο ΟΧΙ MUL 0
ID_GROUP smallint (5) ανυπόγραφο ΟΧΙ MUL 0
lngfile tinytext ΟΧΙ MUL
lastLogin int (10) ανυπόγραφο ΟΧΙ MUL 0
realname tinytext ΟΧΙ
instantMessages smallint (5) ΟΧΙ 0
unreadMessages smallint (5) ΟΧΙ 0
buddy_list κείμενο ΟΧΙ
pm_ignore_list κείμενο ΟΧΙ
messageLabels κείμενο ΟΧΙ
passwd varchar (64) ΟΧΙ
Το email tinytext ΟΧΙ
personalText tinytext ΟΧΙ
φύλων tinyint (4) ανυπόγραφο ΟΧΙ 0
ημερομηνία γέννησης ημερομηνία ΟΧΙ MUL 0001-01-01
websiteTitle tinytext ΟΧΙ
websiteUrl tinytext ΟΧΙ
τοποθεσία tinytext ΟΧΙ
ICQ tinytext ΟΧΙ
AIM varchar (16) ΟΧΙ
YIM varchar (32) ΟΧΙ
MSN tinytext ΟΧΙ
hideEmail tinyint (4) ΟΧΙ 0
showOnline tinyint (4) ΟΧΙ 1
timeFormat varchar (80) ΟΧΙ
υπογραφή κείμενο ΟΧΙ
timeOffset float ΟΧΙ 0
avatar tinytext ΟΧΙ
pm_email_notify tinyint (4) ΟΧΙ 0
karmaBad smallint (5) ανυπόγραφο ΟΧΙ 0
karmaGood smallint (5) ανυπόγραφο ΟΧΙ 0
usertitle tinytext ΟΧΙ
notifyAnnouncements tinyint (4) ΟΧΙ 1
notifyOnce tinyint (4) ΟΧΙ 1
notifySendBody tinyint (4) ΟΧΙ 0
notifyTypes tinyint (4) ΟΧΙ 2
memberIP tinytext ΟΧΙ
memberIP2 tinytext ΟΧΙ
secretQuestion tinytext ΟΧΙ
secretAnswer varchar (64) ΟΧΙ
ID_THEME tinyint (4) ανυπόγραφο ΟΧΙ 0
is_activated tinyint (3) ανυπόγραφο ΟΧΙ 1
validation_code varchar (10) ΟΧΙ
ID_MSG_LAST_VISIT int (10) ανυπόγραφο ΟΧΙ 0
additionalGroups tinytext ΟΧΙ
smileySet varchar (48) ΟΧΙ
ID_POST_GROUP smallint (5) ανυπόγραφο ΟΧΙ MUL 0
totalTimeLoggedIn int (10) ανυπόγραφο ΟΧΙ 0
passwordSalt varchar (5) ΟΧΙ

Τα πεδία που πρέπει να δώσουμε προσοχή στα εξής:

  • memberName - Explanitory Self.
  • dateRegistered - δεν είναι απαραίτητη, αλλά αν δεν συμπληρωθεί η ημερομηνία καταχωρήθηκε εμφανίζει ως 31 Δεκεμβρίου 1969. Η ημερομηνία αποθηκεύεται ως timestamp εποχής. Δεν ξέρουν πώς να υπολογίσει timestamps στο κεφάλι σας; Κανένα πρόβλημα. Χρησιμοποιώ την ελεύθερη γεννήτρια που βρέθηκαν εδώ .
  • realname - Θα πρέπει να προστεθεί. Όταν δεν είμαι βέβαιος ότι επαναλαμβάνω ακριβώς memberName εδώ.
  • Το email - Explanitory Self.
  • is_activated - Πρέπει να ρυθμιστεί σε 1 από τη στιγμή που ενεργοποιείτε το χέρι μέλος.
  • ID_POST_GROUP - Δεν θα κάνω ψέμα. Δεν είμαι σίγουρος τι είναι αυτό, αλλά φαίνεται πάντα να έχει την τιμή 4. Έτσι .... Εγώ που πάντα έως 4. Δεν είναι ο καλύτερος τρόπος για να το πρόγραμμα, αλλά τι μπορείτε να κάνετε;
  • passwd - Ο κωδικός πρόσβασης που θέλετε να δώσετε στο νέο χρήστη. Είναι αδύνατον να καταλάβω πώς να εισέλθουν χωρίς την εξέταση των εγγράφων SMF. Τον κατάλληλο κωδικό για να κρυπτογραφήσει έναν κωδικό πρόσβασης SMF για τη βάση δεδομένων μοιάζει με αυτό:

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

Στην παραπάνω γραμμή κώδικα, $ password είναι πραγματικό κωδικό του χρήστη.

Πώς να το κάνουμε:

/ / Κατ 'αρχάς, συνδεθείτε με την βάση δεδομένων SMF

$ Υποδοχής = "hostname"? / / Όνομα Host
$ Username = "όνομα χρήστη"? / / Username Mysql
$ Mypassword = "password"? / / Password Mysql
$ Db_name = "όνομα χρήστη"? / / Το όνομα Database

("cannot connect to server"); mysql_connect ("$" υποδοχής "$ username", "$ mypassword") ή να πεθάνουν ("δεν μπορεί να συνδεθεί με τον διακομιστή")?
("cannot select DB"); mysql_select_db ("$ db_name") ή να πεθάνουν ("Δεν μπορείτε να επιλέξετε DB")?

$ MemberName = "IronMan"?
$ Πραγματικό όνομα = "Tony Stark"?
$ Το email = "ironMan@ironMan.com"?
$ Is_activated = 1?
$ ID_POST_GROUP = 4?

$ Password = "Tony1234"?

($memberName).$password); $ Password = sha1 (strtolower ($ memberName). $ Password)?

$ DateRegistered = 1216951200? / / 07.25.2008 δύο

$ Query = "INSERT INTO smf_members (memberName, πραγματικό όνομα, Το email, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ memberName', '$ πραγματικό όνομα', '$ Το email', '$ is_activated', '$ ID_POST_GROUP», $ password "," $ dateRegistered ') "?
("SMF Error 101.234 "); $ Result = mysql_query ($ query) ή να πεθάνουν ("SMF Σφάλμα 101,234")?

Αυτό είναι όλα υπάρχει σε αυτό!