WordPress: βήμα προς βήμα τον τρόπο δημιουργίας ενός login
Παρασκευή 24 Οκτωβρίου, 2008 Σε αυτό το tutorial θα δούμε πώς να δημιουργήσετε μια προσωπική σύνδεσής διαδικασία, χρησιμοποιώντας Αίας λειτουργικότητα μέσω jQuery. Υπάρχουν διάφοροι τρόποι για να προσαρμόσετε τη σύνδεσή του WordPress, για παράδειγμα μέσω της χρήσης των αρπαγών add_action() φίλτρα add_action() add_filter() Χρησιμοποιούμε ένα πιο χαμηλό επίπεδο, παρόλο που εξακολουθούμε να διεπαφές με τον πυρήνα WordPress. Επίσης πρέπει να φροντίζετε για την επικύρωση ενός χρήστη μέσω της διπλής email / password.
Γιατί να δημιουργήσει μια σύνδεση;
- Σε ορισμένες περιπτώσεις μπορούν να επιστρέψουν uitle έχουν την πιο έλεγχο στην σελίδα σύνδεσης, να προτείνει μια προσαρμοσμένη διάταξη για να μας εγγεγραμμένους χρήστες. Μπορείτε επίσης να εμπλουτίσει την σελίδα με πληροφορίες, ένα λογότυπο από το κλασικό "Κωδικός Ξεχάσατε;"
- Για να καταστεί δυνατή η πρόσβαση μέσω του ηλεκτρονικού ταχυδρομείου (όπως φαίνεται εδώ Συνθήκης) αντί
user_loginπρότυπο WordPress - Για να είναι σε θέση να εισέλθει σε μια ομάδα login στο sidebar μας Blog
- Και, τέλος, να έχουμε ένα σκελετό - και μια ιδέα - για ένα καλό Προσθήκη

Περιβάλλον
Στο παράδειγμά μας / φροντιστήριο εργασίες για την ρίζα του WordPress μέσα σε φάκελο mylogin Θα δημιουργήσει δύο php αρχεία μέσα σε αυτό το φάκελο: index.php και logon.php Το πρώτο περιέχει τη διασύνδεση της σύνδεσής μας, με όλες τις λειτουργίες Javascript / jQuery το οποίο μπορούμε να σερβίρουμε. Το δεύτερο αρχείο, logon.php θα περιέχει ο κώδικας για την επικύρωση του χρήστη. Στη συνέχεια θα δημιουργήσουμε ένα φάκελο css και μέσα σε αυτό το αρχείο layout.css και ένα φάκελο images Μέσα από το φάκελο εικόνες περιλαμβάνει ένα κλασικό Ajax loader: δημιουργήστε το διαδίκτυο στα AjaxLoad.info. Στο τέλος θα πρέπει να έχετε:
- mylogin
- index.php
- logon.php
- CSS
- layout.css
- εικόνες
- Αίας-loader.gif
index.php
Αυτό το αρχείο δείχνει τη μορφή της πρόσβασης form ενός εντύπου με τους δύο τομείς input το email και τον κωδικό πρόσβασης:
- <! DOCTYPE HTML PUBLIC "- / / W3C / / DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns= "http://www.w3.org/1999/xhtml">
- <HEAD>
- /> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" />
- <Τίτλος> myLogin Demo </ title>
- ></script> <script type= "text/javascript" src= "http://www.google.com/jsapi"> </ script>
- "jquery" , "1.2.6" ) ;</script> <script type= "text/javascript"> google.load ( "jquery", "1.2.6")? </ script>
- <script type= "text/javascript">
- <--
- google.setOnLoadCallback (
- λειτουργία () (
- / / Βάλε το επίκεντρο για την πρώτη είσοδο όταν η σελίδα είναι
- / / Load
- ] .email.focus ( ) ; document.forms [ "mylogin"]. email.focus ()?
- )
- )?
- / **
- * Εμφάνιση πληροφοριών σφάλματος / προειδοποίηση για μας
- * Είσοδος μορφή
- * /
- str ) { showError λειτουργία (STR) (
- ) .html ( '<h2>' +str+ '</h2>' ) .slideDown ( ) ; $ ( 'Τμήμα # λάθους »). Html (« <h2>' + σ. + '</ h2> "). SlideDown ()?
- )
- / **
- * Η επικύρωση των στοιχείων που παρέχονται με τη μορφή σύνδεσης. Αν όλα
- * Είναι σωστή, τα δεδομένα θα αποστέλλονται στην σελίδα logon.php
- * Μέσω Αίας
- *
- * @ Συγγραφέας Giovambattista Fazioli
- * @ @ Email g.fazioli undolog.com
- * @ Web http://www.undolog.com
- * /
- checkLogin λειτουργία () (
- "mylogin" ] ; var f = document.forms [ "mylogin"]?
- \w- ] + ( ?:\. [ \w- ] + ) * ) @ ( ( ?: [ \w- ] +\. ) *\w [ \w- ] { 0 , 66 } ) \. ( [ az ] { 2 , 6 } ( ?:\. [ az ] { 2 } ) ? ) $/i; var __filter = / ^ ([\-w] + (;: \. [\-w] +) *) @ ((;: [\ w-] + \.) * \ w [\-w] (0 , 66)) \. ([Az] (2, 6) (?: \. [Az] (2));) $ / I?
- / /
- ) .slideUp ( $ ( 'Τμήμα # λάθους »). SlideUp (
- λειτουργία () (
- / /
- f.email.value == '' ) { εάν (f.email.value =='') (
- email' ) ; showError ( «Δεν έχετε εισέλθει l \ 'email')?
- f.email.focus ()?
- ; επιστροφή false?
- )
- !__filter.test ( f.email.value ) ) { if (! __filter.test (f.email.value)) (
- ) ; showError ( «Το γήπεδο δεν είναι έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου»)?
- f.email.select ()?
- f.email.focus ()?
- ; επιστροφή false?
- )
- f.password.value == '' ) { εάν (f.password.value =='') (
- ) ; showError ( «Εσύ δεν μπήκε ο κωδικός πρόσβασης ')?
- f.password.focus ()?
- ; επιστροφή false?
- )
- ) .show ( 'slow' ) ; $ ( 'Τμήμα # Αίας-φορτωτής »). Παρουσίαση (« αργό »)?
- ) .css ( 'cursor' , 'wait' ) ; $ ( «Φορέας»). Css ( «δρομέας», «περιμένουν»)?
- / / Αποστολή δεδομένων μέσω POST logon.php σε Ajax
- , { email: f.email.value, password: f.password.value } , $. Μετά ( «logon.php», (email: f.email.value, password: f.password.value),
- data ) { λειτουργία (στοιχεία) (
- ) .hide ( 'slow' ) ; $ ( 'Τμήμα # Αίας-φορτωτής »). Hide (« αργό »)?
- ) .css ( 'cursor' , 'default' ) ; $ ( «Φορέας»). Css ( «δρομέας», «προεπιλογή»)?
- data ) { διακόπτη (δεδομένων) (
- : case'0 ":
- / / Η πρόσβαση επιτρέπεται
- document.location.href = 'http://mioblog.com/'?
- σπάσει?
- : περίπτωση "-1":
- ) ; showError ( «Άρνηση πρόσβασης. ηλεκτρονικού ταχυδρομείου ή εσφαλμένο κωδικό πρόσβασης»)?
- σπάσει?
- : περίπτωση "-2":
- ) ; showError ( «ανακριβή στοιχεία: Προσπαθώ να Hack!")?
- σπάσει?
- )
- )
- )?
- / / Αποκοπής υποβάλει
- ; επιστροφή false?
- )
- )?
- ; επιστροφή false?
- )
- / / ->
- </ Script>
- type= "text/css" media= "screen, projection" /> <link rel= "stylesheet" href= "css/layout.css" type= "text/css" media= "screen, projection" />
- </ HEAD>
- <BODY>
- <div id= "login">
- ><span>myLogin</span></h1></div> <div id= "logo"> <h1 title= "myLogin"> <span> myLogin </ span> </ h1> </ div>
- ><h2>...</h2></div> <div id= "error" style= "display:none"> <h2> ...</ h2> </ div>
- method= "post" action= "logon.php" onsubmit= "return( checkLogin() )" > <form id= "mylogin" name= "mylogin" method= "post" action= "logon.php" onsubmit= "return( checkLogin() )">
- cellspacing= "8" cellpadding= "4" > <table width= "100%" border= "0" cellspacing= "8" cellpadding= "4">
- <tr>
- = "email" >email:</label></td> <td align= "right"> <label για "email" => email: </ label> </ td>
- id= "email" /></td> <td> <input type= "text" name= "email" id= "email" /> </ td>
- </ Tr>
- <tr>
- = "password" >password:</label></td> <td align= "right"> <label για "password" => password: </ label> </ td>
- id= "password" /></td> <td> <input type= "password" name= "password" id= "password" /> </ td>
- </ Tr>
- <tr>
- ><input type= "submit" name= "send" id= "send" value= "Invia" /></td> <td colspan= "2" align= "center"> <input type= "submit" name= "send" id= "send" value= "Invia" /> </ td>
- </ Tr>
- </ Τραπέζι>
- ><img src= "css/images/ajax-loader.gif" /></div> <div id= "ajax-loader" style= "display:none"> <img src= "css/images/ajax-loader.gif" /> </ div>
- </ Form>
- </ Div>
- </ Body>
- </ Html>
Σημείωση: Το αρχείο
index.phpκοιτάζοντας τον κώδικα, θα μπορούσε επίσης να είναι ένα κανονικό HTML αρχείο. Ωστόσο, στην περίπτωση που μια μέρα θα ήθελα να τοποθετήσετε κάποιο κομμάτι του κώδικα php, έχουμε ήδη προετοιμάσει το αρχείο ως α.
Το κόμμα Javascript επιτρέπει:
- Κάντε ένα σύνολο ελέγχων στα email και ο κωδικός πρόσβασης τομέων (βλ. επίσης ηλεκτρονικού ταχυδρομείου Επικύρωση σε Javascript και PHP)
- Block αποστολή (το υποβάλουν) και χρησιμοποιεί αυτόματο Αίας μέσω jQuery, να αποστέλλουν τα δεδομένα
POSTστη σελίδαlogon.php
layout.css
Η διάταξη μπορώ να το φτιάξω όπως νομίζετε ότι καλύτερο. Προτείνω ένα απλό για να προσαρμόσετε κατά βούληση:
- σώμα (
- ; font-οικογένεια: Arial, Helvetica, sans-serif?
- font-size: 12px
- )
- div # (login πίνακα
- ; περιθώριο: 32px 0 0 0?
- )
- div # λάθους (
- περιθώριο: 8px αυτοκίνητο
- )
- div # σφάλμα h2 (
- ; απεικόνιση: block?
- background: # FC3?
- σύνορα: 1px στερεό # F60?
- παραγέμισμα: 12px?
- font-size: 16px?
- Χρώμα: # A50?
- )
- div # Αίας-loader (
- / * Για να τροποποιηθεί ανάλογα με το είδος της
- Ajax loader που έχετε κατεβάσει
- * /
- πλάτος: 220px?
- περιθώριο: 0 auto?
- )
logon.php
Η σελίδα logon.php καλείται άμεσα με τη χρήση Ajax σελίδα index.php παραπάνω άποψη. Στο κείμενο που παρουσιάζεται εδώ δεν υπάρχουν έλεγχοι για την "ισχύ" των δεδομένων που ψηφίστηκε το POST, που έπαιξε ένα απλό έλεγχο της «παρουσίας» μέσα από την isset() Ωστόσο, δεδομένου ότι η Javascript είναι αντικείμενο διαφόρων επεμβάσεων, μπορείτε να θέσετε περαιτέρω έλεγχο του server / php. Βλέπε εν προκειμένω Classes Javascript και PHP για την επικύρωση un'indirizzo mail
- / **
- * Εκτέλεση ενός χρήστη login WordPress μέσω email και το password
- *
- * @ Συγγραφέας Giovambattista Fazioli
- * @ @ Email g.fazioli undolog.com
- * @ Web http://www.undolog.com
- * /
- / / Κινήσει WordPress bootstrap
- '../wp-config.php' ) ; @ Require_once ( '.. / WP-config.php')?
- '../wp-includes/pluggable.php' ) ; @ Require_once ( '.. / WP-περιλαμβάνει / pluggable.php')?
- '../wp-includes/registration.php' ) ; @ Require_once ( '.. / WP-περιλαμβάνει / registration.php')?
- ; $ Error = 0?
- / / Σύνδεση με τη βάση δεδομένων
- / / Επιλέξτε id ΣΠ
- / / Get ID και user_login μέσω email
- $ Q = "SELECT` id `,` user_login ΑΠΟ `` `wp_users
- [ 'email' ] . "'" ; Πού user_email `= '". $ _POST [' Email']."' "?
- ( $q ) ; $row = mysql_fetch_array ( $wp_r ) ; $wp_n = mysql_num_rows ( $wp_r ) ; $ Wp_r = mysql_query ($ q)? $ Γραμμή = mysql_fetch_array ($ wp_r)? $ Wp_n = mysql_num_rows ($ wp_r)?
- / / Found
- $wp_n > 0 ) { εάν ($ wp_n> 0) (
- $_POST [ 'email' ] , $_POST [ 'password' ] ) ; Αποτέλεσμα wp_authenticate = $ ($ _POST [ 'email'], $ _POST [ 'password'])?
- [ "ID" ] , true ) ; wp_set_auth_cookie ($ γραμμή [ID], αλήθεια)?
- , $row [ "user_login" ] ) ; do_action ( «wp_login», σειρά $ [ "user_login"])?
- { Else ()
- )
- { Else ()
- )
Ο κωδικός αυτός επιτρέπει την είσοδο παρόμοια με εκείνη που γίνεται με το σύστημα WordPress. Είναι ενδιαφέρον να σημειωθεί ότι το πρώτο πράγμα που πρέπει να κάνουμε είναι να περιλαμβάνουν τον πυρήνα WordPress, να χρησιμοποιηθεί μέρος των καθηκόντων του. Αυτή θα είναι πράγματι ένα κομμάτι της WordPress. Ετοιμάζεται ένα αρχείο μέσω του Ajax, αυτό resrituisce τρεις τιμές: 0, -1 και -2 αντίστοιχα:
- Όλα ok, επιτρέπεται login
- όνομα χρήστη ή τον κωδικό πρόσβασης
- Hacking προσπάθεια;
















Σκοπευτής Wolf είπε:
Οδηγός Excellent! Συγχαρητήρια για τη σαφήνεια και την αμεσότητα με την οποία εκφράζουν
EmaWebDesign δήλωσε:
Εκτός από τις βελτιώσεις ol'utilità, ας πούμε, να προσαρμόζετε είναι πάντα διασκεδαστική και απολαυστική
Alessandro δήλωσε:
Γεια σου!
Είμαι στη μέση του δημιουργώντας το πρώτο μου blog χρησιμοποιώντας WordPress.
Έχω πολλές γνώσεις των linquaggi web προγραμματισμό, την εκτέλεση και dell'sql.
Ωστόσο, ακόμη δεν έχουν εμπειρία με το CMS, βρήκα το αντίθετο πρόβλημα να συμπεριλάβει ένα κουτί σύνδεσης για να εισάγετε το ιδιωτικό συνδρομητές μόνο.
Διαβάζοντας το άρθρο, εγώ κατάλαβα τη λειτουργικότητα των αρχείων και έχω κάνει τα πάντα για να την επιστολή, η δημιουργία αρχείων και φακέλων στον ριζικό μου FTP στο δικτυακό χώρο του αρχείου, συμπεριλαμβανομένης της "Αίας-loader.gif" (λέω ότι μου είναι NETSONS ISP) .
Σε αυτό το σημείο, πώς μπορείτε να δείτε τις LOGIN στο sidebar; Τι άλλο πρέπει να κάνω;
Ευχαριστώ εκ των προτέρων για τις απαντήσεις σας!
Giovambattista Fazioli δήλωσε:
@ Σκοπευτής Wolf: Ευχαριστούμε!
Είναι πάντα καλό ότι κάποιος αναγνωρίζει την προσπάθεια ...
Giovambattista Fazioli δήλωσε:
@ EmaWebDesign: ... ήθελα να γράψω ακριβώς το ίδιο πράγμα με τους λόγους αλλά βλέπω ότι είναι εξίσου αντιληπτό, χωρίς να λέει ρητά
Giovambattista Fazioli δήλωσε:
@ Alessandro: Είσοδος για να δείτε το εσωτερικό του μέτωπο τέλος του blog σας, είναι ότι αναπαράγει αρκετά με τις απαραίτητες αλλαγές για τη δομή, το περιεχόμενο του φακέλου "index.php" με την προσθήκη, για παράδειγμα, στο "πλευρική". Το σημαντικό είναι να τηρηθεί η λογική της επιχείρησης, αλλά με πεδία της φόρμας
INPUTκαι password), μπορείτε να το θέσω βασικά όπου θέλετε.Αν θέλετε να τα βάλουμε σε "sidebar" του WordPress, για esemopio, απλώς αλλάζουν το αρχείο "sidebar.php" που θα βρείτε στο φάκελο του θέματος.
WordPress: Γράψτε μια προσωπική Αποσύνδεση | Undolog.com δήλωσε:
Προηγούμενη Undolog.com [...] [...]
Martin δήλωσε:
Γεια σας! δικαιολογία η άγνοια στον τομέα .. αλλά θα πρέπει να περιλαμβάνει μια φόρμα μέσα σε δική μου ιστοσελίδα .. γίνει σε flash. Μη γνωρίζοντας προγραμματισμό php απαλλαγούμε από τα ποντίκια να μου δώσει κάποια ευθεία; E «σύνθετο πράγμα; Ευχαριστώ!
Giovambattista Fazioli δήλωσε:
@ Davide: Αν μιλάμε για "Φόρμα Εγγραφής" Νομίζω ότι τώρα θα πρέπει να αλληλεπιδρούν με κάποιο τρόπο με τον server, για παράδειγμα με την εγγραφή των χρηστών σε μια βάση δεδομένων MySQL. Αν ναι, είστε δυστυχώς αναγκασμένοι να χρησιμοποιούν μια "γλώσσα" για το διακομιστή, όπως PHP, ASP, κτλ ... Το front-end, ωστόσο, ότι το
formτην επιτύχουν με Flash είναι ότι η απλή HTML. Αυτή, εξάλλου, δεν κάνει τίποτα περισσότερο από «Αποστολή» των δεδομένων στο διακομιστή που κάνει την πραγματική καταγραφή? Μέσω PHP, ASP, κτλ ...Το ίδιο πράγμα δεν είναι "περίπλοκη", αλλά αν δεν ξέρεις ένα "ελάχιστο" του προγραμματισμού θα μπορούσε να είναι τουλάχιστον δύσκολη.