Σπίτι Προγράμματα Δημιουργούμε ένα απίστευτα απλό σύστημα εγγραφής σε PHP και MySQL. Δημιουργία ενός απίστευτα απλού συστήματος εγγραφής σε PHP και MySQL Αποφυγή εγγραφής μέλους php

Δημιουργούμε ένα απίστευτα απλό σύστημα εγγραφής σε PHP και MySQL. Δημιουργία ενός απίστευτα απλού συστήματος εγγραφής σε PHP και MySQL Αποφυγή εγγραφής μέλους php

Η δημιουργία ενός ιστότοπου με βάση τη συνδρομή φαίνεται σαν μια τρομακτική εργασία στην αρχή. Αν θελήσατε ποτέ να το κάνετε μόνοι σας, τότε απλά τα παρατήσατε όταν αρχίσατε να σκέφτεστε πώς θα το συνδυάσετε χρησιμοποιώντας τις δεξιότητές σας στην PHP, τότε αυτό το άρθρο είναι για εσάς. Θα σας καθοδηγήσουμε σε κάθε πτυχή της δημιουργίας ενός ιστότοπου με βάση τη συνδρομή, με μια ασφαλή περιοχή μελών που προστατεύεται με κωδικό πρόσβασης.

Η όλη διαδικασία αποτελείται από δύο μεγάλα μέρη: εγγραφή χρήστη και έλεγχος ταυτότητας χρήστη. Στο πρώτο μέρος, θα καλύψουμε τη δημιουργία της φόρμας εγγραφής και την αποθήκευση των δεδομένων σε μια βάση δεδομένων MySQL. Στο δεύτερο μέρος, θα δημιουργήσουμε τη φόρμα σύνδεσης και θα τη χρησιμοποιήσουμε για να επιτρέψουμε στους χρήστες την πρόσβαση στην ασφαλή περιοχή.

Κατεβάστε τον κώδικα

Μπορείτε να κατεβάσετε ολόκληρο τον πηγαίο κώδικα για το σύστημα εγγραφής/σύνδεσης από τον παρακάτω σύνδεσμο:

Διαμόρφωση & Μεταφόρτωση
Το αρχείο ReadMe περιέχει λεπτομερείς οδηγίες.

Ανοιξε το source\include\membersite_config.phpαρχείο σε ένα πρόγραμμα επεξεργασίας κειμένου και ενημερώστε τη διαμόρφωση. (Είσοδος στη βάση δεδομένων, το όνομα του ιστότοπού σας, η διεύθυνση email σας κ.λπ.).

Ανεβάστε ολόκληρο το περιεχόμενο του καταλόγου. Δοκιμάστε το register.php υποβάλλοντας τη φόρμα.

Η φόρμα εγγραφής

Για να δημιουργήσουμε έναν λογαριασμό χρήστη, πρέπει να συλλέξουμε έναν ελάχιστο όγκο πληροφοριών από τον χρήστη. Χρειαζόμαστε το όνομά του, τη διεύθυνση email του και το επιθυμητό όνομα χρήστη και κωδικό πρόσβασης. Φυσικά, μπορούμε να ζητήσουμε περισσότερες πληροφορίες σε αυτό το σημείο, αλλά μια μεγάλη φόρμα είναι πάντα μια απενεργοποίηση. Ας περιοριστούμε λοιπόν σε αυτά τα πεδία.

Εδώ είναι η φόρμα εγγραφής:

Κανω ΕΓΓΡΑΦΗ

Έτσι, έχουμε πεδία κειμένου για όνομα, email και κωδικό πρόσβασης. Σημειώστε ότι χρησιμοποιούμε το για καλύτερη χρηστικότητα.

Επικύρωση φόρμας

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

Χειρισμός της υποβολής της φόρμας

Τώρα πρέπει να χειριστούμε τα δεδομένα της φόρμας που υποβάλλονται.

Εδώ είναι η ακολουθία (δείτε το αρχείο fg_membersite.php στην πηγή λήψης):

συνάρτηση RegisterUser() ( if(!isset($_POST["submitted"])) ( return false; ) $formvars = array(); if(!$this->ValidateRegistrationSubmission()) ( return false; ) $this- >CollectRegistrationSubmission($formvars); if(!$this->SaveToDatabase($formvars)) ( return false; ) if(!$this->SendUserConfirmationEmail($formvars)) ( return false; ) $this->SendAdminIntimationEmail($ formvars); επιστροφή true; )

Αρχικά, επικυρώνουμε την υποβολή της φόρμας. Στη συνέχεια συλλέγουμε και «απολαύνουμε» τα δεδομένα υποβολής της φόρμας (κάντε πάντα αυτό πριν στείλετε email, αποθηκεύσετε στη βάση δεδομένων κ.λπ.). Στη συνέχεια, η υποβολή της φόρμας αποθηκεύεται στον πίνακα της βάσης δεδομένων. Στέλνουμε ένα email στον χρήστη ζητώντας επιβεβαίωση. Στη συνέχεια, ενημερώνουμε τον διαχειριστή ότι ένας χρήστης έχει εγγραφεί.

Αποθήκευση των δεδομένων στη βάση δεδομένων

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

συνάρτηση SaveToDatabase(&$formvars) ( if(!$this->DBLogin()) ( $this->HandleError("Η σύνδεση στη βάση δεδομένων απέτυχε!"); return false; ) if(!$this->Ensuretable()) ( return false; ) if(!$this->IsFieldUnique($formvars,"email")) ( $this->HandleError("Αυτό το email είναι ήδη εγγεγραμμένο"); return false; ) if(!$this->IsFieldUnique( $formvars,"username")) ( $this->HandleError("Αυτό το όνομα χρήστη χρησιμοποιείται ήδη. Δοκιμάστε άλλο όνομα χρήστη"); return false; ) if(!$this->InsertIntoDB($formvars)) ( $this- >HandleError ("Η εισαγωγή στη βάση δεδομένων απέτυχε!"); επιστροφή false; ) επιστροφή true; )

Σημειώστε ότι έχετε διαμορφώσει τα στοιχεία σύνδεσης της βάσης δεδομένων στο αρχείο Memberite_config.php. Στις περισσότερες περιπτώσεις, μπορείτε να χρησιμοποιήσετε το "localhost" για κεντρικό υπολογιστή βάσης δεδομένων.
Αφού συνδεθείτε, βεβαιωνόμαστε ότι ο πίνακας υπάρχει. (Εάν όχι, το σενάριο θα δημιουργήσει τον απαιτούμενο πίνακα).
Στη συνέχεια βεβαιωνόμαστε ότι το όνομα χρήστη και το email είναι μοναδικά. Εάν δεν είναι μοναδικό, επιστρέφουμε το σφάλμα στον χρήστη.

Η δομή του πίνακα της βάσης δεδομένων

Αυτή είναι η δομή του πίνακα. Η συνάρτηση CreateTable() στο αρχείο fg_membersite.php δημιουργεί τον πίνακα. Εδώ είναι ο κωδικός:

function CreateTable() ( $qry = "Δημιουργία πίνακα $this->tablename (." VARCHAR(16) ΟΧΙ NULL ," "όνομα χρήστη VARCHAR(16) ΟΧΙ NULL ," "κωδικός πρόσβασης VARCHAR(32) ΟΧΙ NULL ," "επιβεβαιώστε τον κωδικό VARCHAR(32) ," "ΠΡΩΤΙΚΟ ΚΛΕΙΔΙ (id_user)." ")"; if(( !mysql_query($qry,$this->connection)) ( $this->HandleDBError("Σφάλμα κατά τη δημιουργία του πίνακα \nτο ερώτημα ήταν\n $qry"); επιστροφή false; ) return true; )

Το πεδίο id_user θα περιέχει το μοναδικό αναγνωριστικό του χρήστη και είναι επίσης το πρωτεύον κλειδί του πίνακα. Σημειώστε ότι επιτρέπουμε 32 χαρακτήρες για το πεδίο κωδικού πρόσβασης. Το κάνουμε αυτό επειδή, ως πρόσθετο μέτρο ασφαλείας, θα αποθηκεύσουμε τον κωδικό πρόσβασης στη βάση δεδομένων κρυπτογραφημένο με χρήση MD5. Λάβετε υπόψη ότι επειδή το MD5 είναι μια μονόδρομη μέθοδος κρυπτογράφησης, δεν θα μπορούμε να ανακτήσουμε τον κωδικό πρόσβασης σε περίπτωση που ο χρήστης τον ξεχάσει.

Εισαγωγή της εγγραφής στον πίνακα

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

συνάρτηση InsertIntoDB(&$formvars) ( $confirmcode = $this->MakeConfirmationMd5($formvars["email"]); $insert_query = "insert into ".$this->tablename."(όνομα, email, όνομα χρήστη, κωδικός πρόσβασης, επιβεβαιωμένος κωδικός) τιμές ("" . $this->SanitizeForSQL($formvars["name"]). "", "" . $this->SanitizeForSQL($formvars["email"]) . "", "" $ this->SanitizeForSQL($formvars["όνομα χρήστη"]) . "", "" . md5($formvars["password"]) . "", "" . $confirmcode . "")"; if(! mysql_query( $insert_query ,$this->connection)) ( $this->HandleDBError("Σφάλμα κατά την εισαγωγή δεδομένων στον πίνακα\nquery:$insert_query"); επιστροφή false; ) return true; )

Σημειώστε ότι χρησιμοποιούμε τη συνάρτηση PHP md5() για να κρυπτογραφήσουμε τον κωδικό πρόσβασης πριν τον εισαγάγουμε στη βάση δεδομένων.
Επίσης, φτιάχνουμε τον μοναδικό κωδικό επιβεβαίωσης από τη διεύθυνση email του χρήστη.

Αποστολή email

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

συνάρτηση SendUserConfirmationEmail(&$formvars) ( $mailer = νέο PHPMailer(); $mailer->CharSet = "utf-8"; $mailer->AddAddress($formvars["email"],$formvars["name"]) ; $mailer->Subject = "Η εγγραφή σας με ".$this->όνομα ιστότοπου; $mailer->From = $this->GetFromAddress(); $confirmcode = urlencode($this->MakeConfirmationMd5($formvars["email" ])); $confirm_url = $this->GetAbsoluteURLFolder()."/confirmreg.php?code=".$confirmcode; $mailer->Body ="Γεια σας ".$formvars["name"]."\r\ n\r\n". "Ευχαριστούμε για την εγγραφή σας με το ".$this->sitename."\r\n". "Παρακαλώ κάντε κλικ στον παρακάτω σύνδεσμο για να επιβεβαιώσετε την εγγραφή σας.\r\n." "$confirm_url\r \n". "\r\n". "Με εκτίμηση,\r\n". "Webmaster\r\n". $this->όνομα ιστότοπου; if(!$mailer->Send()) ( $this-> HandleError ("Αποτυχία αποστολής email επιβεβαίωσης εγγραφής."); επιστροφή ψευδής; ) επιστροφή true; )

Ενημερώσεις

9 Ιανουαρίου 2012
Προστίθενται λειτουργίες επαναφοράς κωδικού πρόσβασης/Αλλαγή κωδικού πρόσβασης
Ο κώδικας είναι πλέον κοινόχρηστος στο GitHub.

Καλως ορισες πισωUserFullName(); ?>!

Αδεια


Ο κωδικός είναι κοινόχρηστος με άδεια LGPL. Μπορείτε να το χρησιμοποιήσετε ελεύθερα σε εμπορικούς ή μη ιστότοπους.

Δεν υπάρχουν σχετικές αναρτήσεις.

Τα σχόλια σε αυτή την καταχώρηση είναι κλειστά.

Τα τελευταία χρόνια, η φιλοξενία ιστοσελίδων έχει υποστεί μια δραματική αλλαγή. Οι υπηρεσίες φιλοξενίας Ιστού έχουν αλλάξει τον τρόπο με τον οποίο λειτουργούν οι ιστότοποι. Υπάρχουν πολλά είδη υπηρεσιών, αλλά σήμερα θα μιλήσουμε για τις επιλογές που είναι διαθέσιμες για τους παρόχους φιλοξενίας μεταπωλητών. Είναι το Linux Reseller Hosting και το Windows Reseller Hosting. Πριν καταλάβουμε τις θεμελιώδεις διαφορές μεταξύ των δύο, ας μάθουμε τι είναι η φιλοξενία μεταπωλητή.

Μεταπωλητής Φιλοξενία

Με απλά λόγια, η φιλοξενία μεταπωλητών είναι μια μορφή φιλοξενίας ιστοσελίδων όπου ένας κάτοχος λογαριασμού μπορεί να χρησιμοποιήσει τον αποκλειστικό του χώρο στον σκληρό δίσκο και το εκχωρημένο εύρος ζώνης για τους σκοπούς της μεταπώλησης σε ιστότοπους τρίτων. Μερικές φορές, ένας μεταπωλητής μπορεί να ενοικιάσει έναν αποκλειστικό διακομιστή από μια εταιρεία φιλοξενίας (Linux ή Windows) και να τον εκχωρήσει περαιτέρω σε τρίτους.

Οι περισσότεροι χρήστες ιστοτόπων είναι είτε με Linux είτε με Windows. Αυτό έχει να κάνει με το χρόνο λειτουργίας. Και οι δύο πλατφόρμες διασφαλίζουν ότι ο ιστότοπός σας ανεβαίνει κατά 99% των περιπτώσεων.

1.Προσαρμογή

Μία από τις κύριες διαφορές μεταξύ ενός Linux Reseller Hostingplan και αυτού που παρέχεται από τα Windows είναι η προσαρμογή. Ενώ μπορείτε να πειραματιστείτε και με τις δύο συσκευές αναπαραγωγής με διάφορους τρόπους, το Linux είναι πολύ πιο προσαρμόσιμο από τα Windows. Το τελευταίο έχει περισσότερες δυνατότητες από το αντίστοιχο και γι' αυτό πολλοί προγραμματιστές και διαχειριστές βρίσκουν το Linux πολύ φιλικό προς τον πελάτη.

2. Εφαρμογές

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

Ωστόσο, σημειώστε ότι εάν χρησιμοποιείτε Linux για φιλοξενία ιστού αλλά ταυτόχρονα χρησιμοποιείτε το λειτουργικό σύστημα Windows, τότε ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν απλώς.

3.Σταθερότητα

Ενώ και οι δύο πλατφόρμες είναι σταθερές, το Linux Reseller Hosting είναι πιο σταθερό από τα δύο. Είναι μια πλατφόρμα ανοιχτού κώδικα, μπορεί να λειτουργήσει σε πολλά περιβάλλοντα. Αυτή η πλατφόρμα μπορεί να τροποποιείται και να αναπτύσσεται κάθε τόσο.

4. Συμβατότητα .NET

Δεν είναι ότι το Linux είναι ανώτερο από τα Windows με κάθε δυνατό τρόπο. Όταν πρόκειται για συμβατότητα .NET, τα Windows κλέβουν τα φώτα της δημοσιότητας. Οι εφαρμογές Ιστού μπορούν εύκολα να αναπτυχθούν σε μια πλατφόρμα φιλοξενίας Windows.

5. Πλεονεκτήματα κόστους

Και οι δύο πλατφόρμες φιλοξενίας είναι προσιτές. Αλλά αν αισθάνεστε μια δυσκολία στα μετρητά, τότε θα πρέπει να επιλέξετε το Linux. Είναι δωρεάν και γι' αυτό επιλέγεται από τόσους πολλούς προγραμματιστές και διαχειριστές συστημάτων σε όλο τον κόσμο.

6. Ευκολία εγκατάστασης

Τα Windows είναι πιο εύκολο να ρυθμιστούν από το αντίστοιχο. Όλα όσα ειπώθηκαν και έγιναν, τα Windows εξακολουθούν να διατηρούν τη φιλικότητα προς τον χρήστη όλα αυτά τα χρόνια.

7.Ασφάλεια

Επιλέξτε τη φιλοξενία μεταπωλητών Linux επειδή είναι πιο ασφαλής από τα Windows. Αυτό ισχύει ιδιαίτερα για άτομα που διευθύνουν τις επιχειρήσεις ηλεκτρονικού εμπορίου τους.

συμπέρασμα

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



Τον Μάρτιο του τρέχοντος έτους, είχα μια πολύ κακή εμπειρία με μια εταιρεία πολυμέσων που αρνήθηκε να με πληρώσει και να απαντήσει στα email μου. Μου χρωστάνε ακόμα χιλιάδες δολάρια και το αίσθημα της οργής που έχω διαποτίζει καθημερινά. Αποδεικνύεται ότι δεν είμαι μόνος όμως, και εκατοντάδες άλλοι ιδιοκτήτες ιστότοπων βρίσκονται στο ίδιο σκάφος. Είναι κάτι αντίστοιχο για το μάθημα με την ψηφιακή διαφήμιση.

Με κάθε ειλικρίνεια, έχω αυτό το ιστολόγιο για πολύ καιρό και έχω αναπηδήσει σε διαφορετικά δίκτυα διαφημίσεων στο παρελθόν. Αφού αφαίρεσα τις ενότητες διαφημίσεων από αυτήν την εταιρεία που με δυσκόλεψε, επέστρεψα στην αρχή. Θα πρέπει επίσης να σημειώσω ότι Ποτέ δεν μου άρεσε το προϊόν Googles AdSense, μόνο και μόνο επειδή μοιάζει με το "πάτο του βαρελιού" των διαφημίσεων προβολής. Όχι από ποιοτική άποψη, αλλά από άποψη εσόδων.

Από ό,τι καταλαβαίνω, θέλετε να διαφημιστεί η Google στον ιστότοπό σας, αλλά θέλετε επίσης να το κάνουν και άλλες μεγάλες εταιρείες και πρακτορεία. Με αυτόν τον τρόπο μεγιστοποιείς τη ζήτηση και τα έσοδα.

Μετά την αρνητική μου εμπειρία, πρότεινα μια εταιρεία που ονομάζεται Newor Media. Και αν είμαι ειλικρινής, δεν πούλησα στην αρχή, κυρίως επειδή δεν μπορούσα να βρω πολλές πληροφορίες για αυτούς. Βρήκα μερικές αξιοπρεπείς κριτικές σε άλλους ιστότοπους και αφού μίλησα με κάποιον εκεί, αποφάσισα να το δοκιμάσω .Θα πω ότι είναι SUPER εξυπηρετικοί. Κάθε δίκτυο με το οποίο έχω δουλέψει ποτέ ήταν αρκετά σύντομο μαζί μου όσον αφορά τις απαντήσεις και την έναρξη. Απάντησαν σε κάθε ερώτηση και ήταν μια πραγματικά ενθαρρυντική διαδικασία.

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

Μου έκαναν έγκαιρα την πρώτη πληρωμή με το Paypal. Επειδή όμως δεν βρίσκομαι στις ΗΠΑ (και αυτό συμβαίνει σε όλους νομίζω), έλαβα μια χρέωση από το Paypal. Έστειλα email στον αντιπρόσωπό μου σχετικά, ρωτώντας αν υπήρχε τρόπος να το αποφύγω στο μέλλον.

Είπαν ότι δεν μπορούσαν να αποφύγουν το τέλος, αλλά ότι θα ΕΠΙΣΤΡΕΨΑΝ ΟΛΕΣ ΤΙΣ ΑΜΟΙΒΕΣ... ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ ΤΗΣ ΠΙΟ ΠΡΟΣΦΑΤΙΚΗΣ ΠΛΗΡΩΜΗΣ! Όχι μόνο αυτό, αλλά η πληρωμή αποζημίωσης ελήφθη μέσα σε 10 ΛΕΠΤΑ!Πότε καταφέρατε ποτέ να υποβάλετε ένα τέτοιο αίτημα χωρίς να χρειαστεί να το προωθήσετε στο "οικονομικό τμήμα" για να μην απαντήσετε ποτέ.

Η ουσία είναι ότι μου αρέσει αυτή η εταιρεία. Ίσως μπορώ να κάνω περισσότερα κάπου αλλού, δεν είμαι πραγματικά σίγουρος, αλλά έχουν έναν εκδότη για μια ζωή μαζί μου. Δεν είμαι τεράστιος ιστότοπος και δεν παράγω πολλά έσοδα, αλλά νιώθω σαν Πολύ σημαντικός πελάτης όταν του μιλάω. Είναι πραγματικά μια ανάσα φρέσκου αέρα σε έναν κλάδο που είναι ώριμος από απάτες και μη ανταπόκριση.

Οι μικροϋπολογιστές που δημιουργήθηκαν από το Ίδρυμα Raspberry Pi το 2012 είχαν τεράστια επιτυχία στο να πυροδοτήσουν επίπεδα δημιουργικότητας σε μικρά παιδιά και αυτή η εταιρεία με έδρα το Ηνωμένο Βασίλειο άρχισε να προσφέρει προγράμματα εκκίνησης εκμάθησης κώδικα όπως το pi-top an Kano. Υπάρχει τώρα μια νέα εκκίνηση που χρησιμοποιεί τα ηλεκτρονικά Pi και η συσκευή είναι γνωστή ως Pip, μια κονσόλα χειρός που προσφέρει οθόνη αφής, πολλαπλές θύρες, κουμπιά ελέγχου και ηχεία. Η ιδέα πίσω από τη συσκευή είναι να προσελκύσει νεότερα άτομα με μια συσκευή παιχνιδιού που είναι ρετρό αλλά θα προσφέρει επίσης μια εμπειρία εκμάθησης κώδικα μέσω μιας πλατφόρμας που βασίζεται στον ιστό.

Η καταπληκτική πλατφόρμα λογισμικού που προσφέρεται με το Pip θα προσφέρει την ευκαιρία να ξεκινήσετε την κωδικοποίηση σε Python, HTML/CSS, JavaScript, Lua και PHP. Η συσκευή προσφέρει οδηγίες βήμα προς βήμα για να ξεκινήσουν τα παιδιά με την κωδικοποίηση και τους επιτρέπει να κάνουν ακόμη και τα LED να αναβοσβήνουν. Ενώ το Pip εξακολουθεί να είναι πρωτότυπο, σίγουρα θα έχει τεράστια επιτυχία στη βιομηχανία και θα απασχολεί παιδιά που ενδιαφέρονται για την κωδικοποίηση και θα τους παρέχει την εκπαίδευση και τους πόρους που χρειάζονται για να ξεκινήσουν την κωδικοποίηση σε νεαρή ηλικία.

Το μέλλον της κωδικοποίησης

Η κωδικοποίηση έχει μεγάλο μέλλον, και ακόμα κι αν τα παιδιά δεν χρησιμοποιούν την κωδικοποίηση ως καριέρα, μπορούν να επωφεληθούν από την εκμάθηση του τρόπου κωδικοποίησης με αυτή τη νέα συσκευή που το κάνει πιο εύκολο από ποτέ. Με το Pip, ακόμη και οι νεότεροι λάτρεις της κωδικοποίησης θα μάθουν διαφορετικές γλώσσες και θα είναι σε καλό δρόμο για να δημιουργήσουν τους δικούς τους κωδικούς, τα δικά τους παιχνίδια, τις δικές τους εφαρμογές και πολλά άλλα. Είναι το μέλλον της ηλεκτρονικής εποχής και το Pip επιτρέπει τον έλεγχο των βασικών δομικών στοιχείων της κωδικοποίησης.
Η επιστήμη των υπολογιστών έχει γίνει σημαντικό μέρος της εκπαίδευσης και με συσκευές όπως το νέο Pip, τα παιδιά μπορούν να αρχίσουν να βελτιώνουν την εκπαίδευσή τους στο σπίτι ενώ διασκεδάζουν. Η κωδικοποίηση υπερβαίνει κατά πολύ τη δημιουργία ιστοσελίδων ή λογισμικού. Μπορεί να χρησιμοποιηθεί για να ενισχύσει την ασφάλεια σε μια πόλη, να βοηθήσει στην έρευνα στον ιατρικό τομέα και πολλά άλλα. Δεδομένου ότι τώρα ζούμε σε έναν κόσμο που κυριαρχείται από λογισμικό, η κωδικοποίηση είναι το μέλλον και είναι σημαντικό για όλα τα παιδιά να έχουν τουλάχιστον μια βασική κατανόηση του πώς λειτουργεί, ακόμα κι αν δεν χρησιμοποιούν ποτέ αυτές τις δεξιότητες ως καριέρα. Όσον αφορά το μέλλον, η κωδικοποίηση θα είναι ένα κρίσιμο στοιχείο της καθημερινής ζωής. Θα είναι η γλώσσα του κόσμου και η μη γνώση των υπολογιστών ή του τρόπου λειτουργίας τους μπορεί να δημιουργήσει προκλήσεις που είναι εξίσου δύσκολο να ξεπεραστούν με τον αναλφαβητισμό.
Η κωδικοποίηση θα προσφέρει επίσης σημαντικές αλλαγές στον κόσμο των τυχερών παιχνιδιών, ειδικά όταν πρόκειται για διαδικτυακά παιχνίδια, συμπεριλαμβανομένης της πρόσβασης σε διαδικτυακά καζίνο. Για να δείτε πώς η κωδικοποίηση έχει ήδη βελτιώσει τον κόσμο των τυχερών παιχνιδιών, ρίξτε μια ματιά σε μερικούς ιστότοπους καζίνο με κορυφαία βαθμολογία που βασίζονται στην κωδικοποίηση. Ρίξτε μια γρήγορη ματιά για να το ελέγξετε και δείτε πώς η κωδικοποίηση μπορεί να παρουσιάσει ρεαλιστικά περιβάλλοντα στο διαδίκτυο.

Πώς ο Πιπ δεσμεύει τα παιδιά

Όταν πρόκειται για την ευκαιρία να μάθουν κωδικοποίηση, τα παιδιά έχουν πολλές επιλογές. Υπάρχει ένας αριθμός συσκευών και gizmos υλικού που μπορούν να αγοραστούν, αλλά ο Pip ακολουθεί διαφορετική προσέγγιση με τη συσκευή του. Η φορητότητα της συσκευής και η οθόνη αφής προσφέρουν πλεονέκτημα σε άλλες συσκευές κωδικοποίησης που κυκλοφορούν στην αγορά. Το Pip θα είναι πλήρως συμβατό με ηλεκτρονικά εξαρτήματα εκτός από το σύστημα Raspberry Pi HAT. Η συσκευή χρησιμοποιεί τυπικές γλώσσες και έχει βασικά εργαλεία και είναι μια τέλεια συσκευή για κάθε αρχάριο κωδικοποιητή. Ο στόχος είναι να αρθούν τα εμπόδια μεταξύ μιας ιδέας και της δημιουργίας και να γίνουν άμεσα διαθέσιμα εργαλεία για χρήση. Ένα από τα άλλα μεγάλα πλεονεκτήματα του Pip είναι ότι χρησιμοποιεί κάρτα SD, επομένως μπορεί να χρησιμοποιηθεί και ως επιτραπέζιος υπολογιστής όταν είναι συνδεδεμένος σε οθόνη και ποντίκι.
Η συσκευή Pip θα βοηθούσε τα παιδιά και τους ενδιαφερόμενους αρχάριους κωδικοποιητές με ενθουσιασμό να μάθουν και να εξασκήσουν την κωδικοποίηση. Προσφέροντας έναν συνδυασμό ολοκλήρωσης εργασιών και επεξεργασίας για την επίλυση προβλημάτων, η συσκευή σίγουρα θα απασχολήσει τη νεότερη γενιά. Στη συνέχεια, η συσκευή επιτρέπει σε αυτούς τους νέους κωδικοποιητές να μετακινηθούν σε πιο προηγμένα επίπεδα κωδικοποίησης σε διαφορετικές γλώσσες όπως JavaScript και HTML/CSS. Δεδομένου ότι η συσκευή αντιγράφει μια κονσόλα παιχνιδιών, θα τραβήξει αμέσως την προσοχή των παιδιών και θα τα εμπλέξει να μάθουν για την κωδικοποίηση σε νεαρή ηλικία. Έρχεται επίσης με μερικά προφορτωμένα παιχνίδια για να κρατήσει την προσοχή, όπως το Pac-Man και το Minecraft.

Καινοτομίες που έρχονται

Η μελλοντική καινοτομία εξαρτάται σε μεγάλο βαθμό από την τρέχουσα ικανότητα του παιδιού να κωδικοποιεί και τη συνολική κατανόησή του για τη διαδικασία. Καθώς τα παιδιά μαθαίνουν να κωδικοποιούν σε νεαρή ηλικία χρησιμοποιώντας συσκευές όπως το νέο Pip, θα αποκτήσουν τις δεξιότητες και τις γνώσεις για να δημιουργήσουν καταπληκτικά πράγματα στο μέλλον. Αυτό θα μπορούσε να είναι η εισαγωγή νέων παιχνιδιών ή εφαρμογών ή ακόμα και ιδεών που μπορούν να ζωντανέψουν για να βοηθήσουν στην ιατρική έρευνα και θεραπείες. Υπάρχουν άπειρες δυνατότητες. Δεδομένου ότι το μέλλον μας θα ελέγχεται από λογισμικό και υπολογιστές, το να ξεκινήσουμε νέοι είναι ο καλύτερος τρόπος, γι' αυτό το νέο Pip είναι προσανατολισμένο προς το νεανικό πλήθος. Προσφέροντας μια συσκευή κονσόλας που μπορεί να παίζει παιχνίδια ενώ διδάσκει δεξιότητες κωδικοποίησης, τα νεαρά μέλη της κοινωνίας είναι σε καλό δρόμο να γίνουν οι δημιουργοί λογισμικού στο μέλλον που θα αλλάξει τη ζωή μας. Αυτή είναι μόνο η αρχή, αλλά είναι κάτι που εκατομμύρια παιδιά σε όλο τον κόσμο αρχίζουν να μαθαίνουν και να κατακτούν. Με τη χρήση συσκευών όπως το Pip, καλύπτονται τα βασικά στοιχεία κωδικοποίησης και τα παιδιά θα μάθουν γρήγορα τις διαφορετικές γλώσσες κωδικοποίησης που μπορούν να οδηγήσουν σε εκπληκτικά μονοπάτια καθώς μπαίνουν στην ενηλικίωση.

Ένα σεμινάριο για τον πολύ αρχάριο! Ανεξάρτητα από το πού πηγαίνετε στο Διαδίκτυο, υπάρχει ένα βασικό στοιχείο που βρίσκετε σχεδόν παντού - εγγραφή χρήστη. Είτε θέλετε οι χρήστες σας να εγγραφούν για ασφάλεια είτε απλώς για μια πρόσθετη δυνατότητα, δεν υπάρχει λόγος να μην το κάνετε με αυτό το απλό σεμινάριο Σε αυτό το σεμινάριο θα εξετάσουμε τα βασικά της διαχείρισης χρηστών, καταλήγοντας σε μια απλή περιοχή μελών που μπορείτε να εφαρμόσετε στον δικό σας ιστότοπο.

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

Εισαγωγή

Σε αυτό το σεμινάριο θα περάσουμε από κάθε βήμα της δημιουργίας ενός συστήματος διαχείρισης χρηστών, μαζί με ένα σύστημα ιδιωτικών μηνυμάτων μεταξύ χρηστών. Θα το κάνουμε αυτό χρησιμοποιώντας PHP, με μια βάση δεδομένων MySQL για την αποθήκευση όλων των πληροφοριών χρήστη. Αυτό το σεμινάριο απευθύνεται σε απόλυτους αρχάριους στην PHP, επομένως δεν απαιτείται καμία προηγούμενη γνώση - στην πραγματικότητα, μπορεί να βαρεθείτε λίγο αν είστε έμπειρος χρήστης PHP!

Αυτό το σεμινάριο προορίζεται ως βασική εισαγωγή στα Sessions και στη χρήση βάσεων δεδομένων στην PHP. Αν και το τελικό αποτέλεσμα αυτού του σεμιναρίου μπορεί να μην σας φανεί άμεσα χρήσιμο, οι δεξιότητες που αποκτάτε από αυτό το σεμινάριο θα σας επιτρέψουν να συνεχίσετε να δημιουργείτε ένα δικό σας σύστημα ιδιότητας μέλους. ταιριάζει στις δικές σας ανάγκες.

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

  • Όνομα κεντρικού υπολογιστή βάσης δεδομένων- αυτός είναι ο διακομιστής στον οποίο φιλοξενείται η βάση δεδομένων σας, στις περισσότερες περιπτώσεις θα είναι απλώς "localhost".
  • Όνομα βάσης δεδομένων, Όνομα χρήστη βάσης δεδομένων, κωδικός βάσης δεδομένων- πριν ξεκινήσετε αυτό το σεμινάριο, θα πρέπει να δημιουργήσετε μια βάση δεδομένων MySQL εάν έχετε τη δυνατότητα ή έχετε στη διάθεσή σας τις πληροφορίες για τη σύνδεση σε μια υπάρχουσα βάση δεδομένων. Αυτές οι πληροφορίες είναι απαραίτητες σε όλο το σεμινάριο.

Εάν δεν έχετε αυτές τις πληροφορίες, τότε ο πάροχος φιλοξενίας θα πρέπει να μπορεί να σας τις παρέχει.

Τώρα που έχουμε ξεφύγει από τις διατυπώσεις, ας ξεκινήσουμε με το σεμινάριο!

Βήμα 1 - Αρχική διαμόρφωση

Ρύθμιση της βάσης δεδομένων

Όπως αναφέρθηκε στην Εισαγωγή, χρειάζεστε μια βάση δεδομένων για να συνεχίσετε πέρα ​​από αυτό το σημείο του σεμιναρίου. Αρχικά, θα δημιουργήσουμε έναν πίνακα σε αυτήν τη βάση δεδομένων για να αποθηκεύσουμε τις πληροφορίες χρήστη μας.

Ο πίνακας που χρειαζόμαστε θα αποθηκεύσει τις πληροφορίες χρήστη μας. για τους σκοπούς μας θα χρησιμοποιήσουμε έναν απλό πίνακα, αλλά θα ήταν εύκολο να αποθηκεύσετε περισσότερες πληροφορίες σε επιπλέον στήλες, εάν αυτό χρειάζεστε. Στο σύστημά μας χρειαζόμαστε τις ακόλουθες τέσσερις στήλες:

  • Ταυτότητα χρήστη (Πρωτεύων κλειδί)
  • Όνομα χρήστη
  • Κωδικός πρόσβασης
  • Διεύθυνση ηλεκτρονικού ταχυδρομείου

Με όρους βάσης δεδομένων, α Πρωτεύων κλειδίείναι το πεδίο που προσδιορίζει μοναδικά τη σειρά. Σε αυτήν την περίπτωση, το UserID θα είναι το πρωτεύον κλειδί μας. Καθώς θέλουμε αυτό να αυξάνεται κάθε φορά που ένας χρήστης εγγράφεται, θα χρησιμοποιήσουμε την ειδική επιλογή MySQL - auto_increment .

Το ερώτημα SQL για τη δημιουργία του πίνακα μας περιλαμβάνεται παρακάτω και συνήθως εκτελείται στην καρτέλα "SQL" του phpMyAdmin.

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ `χρήστες` (`UserID` INT(25) NOT NULL AUTO_INCREMENT PRIMARY KEY , `Username` VARCHAR(65) NOT NULL , `Password` VARCHAR(32) NOT NULL , `EmailAddress` 5 VARCHAR(NUL2));

Δημιουργία Βασικού Αρχείου

Για να απλοποιήσουμε τη δημιουργία του έργου μας, θα φτιάξουμε ένα βασικό αρχείο που μπορούμε να συμπεριλάβουμε σε κάθε ένα από τα αρχεία που δημιουργούμε. Αυτό το αρχείο θα περιέχει τις πληροφορίες σύνδεσης της βάσης δεδομένων, μαζί με ορισμένες μεταβλητές διαμόρφωσης που θα μας βοηθήσουν στην πορεία.

Ξεκινήστε δημιουργώντας ένα νέο αρχείο: base.php και πληκτρολογήστε τον ακόλουθο κώδικα:

Ας ρίξουμε μια ματιά σε μερικές από αυτές τις γραμμές; Υπάρχουν μερικές λειτουργίες εδώ που έχουμε χρησιμοποιήσει και δεν τις έχουμε ακόμη εξηγήσει, οπότε ας τις ρίξουμε μια ματιά γρήγορα και ας τις καταλάβουμε -- εάν έχετε ήδη κατανοήσει τα βασικά της PHP, ίσως θέλετε να παραλείψετε αυτήν την εξήγηση.

Session_start();

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

Mysql_connect($dbhost, $dbuser, $dbpass) ή die("Σφάλμα MySQL: " . mysql_error()); mysql_select_db($dbname) ή die("Σφάλμα MySQL: " . mysql_error());

Κάθε μία από αυτές τις λειτουργίες εκτελεί μια ξεχωριστή, αλλά συνδεδεμένη εργασία. Η συνάρτηση mysql_connect συνδέει το σενάριό μας με τον διακομιστή βάσης δεδομένων χρησιμοποιώντας τις πληροφορίες που του δώσαμε παραπάνω και η συνάρτηση mysql_select_db επιλέγει στη συνέχεια ποια βάση δεδομένων θα χρησιμοποιήσει με το σενάριο. Εάν κάποια από τις λειτουργίες αποτύχει να ολοκληρωθεί, η συνάρτηση die θα μπει αυτόματα και θα σταματήσει την επεξεργασία του σεναρίου - αφήνοντας σε οποιονδήποτε χρήστη το μήνυμα ότι υπήρχε σφάλμα MySQL.

Βήμα 2 - Επιστροφή στο Frontend

Τι Πρέπει να Κάνουμε Πρώτα;

Το πιο σημαντικό στοιχείο στη σελίδα μας είναι η πρώτη γραμμή της PHP. αυτή η γραμμή θα περιλαμβάνει το αρχείο που δημιουργήσαμε παραπάνω (base.php) και ουσιαστικά θα μας επιτρέψει να έχουμε πρόσβαση σε οτιδήποτε από αυτό το αρχείο στο τρέχον αρχείο μας. Θα το κάνουμε αυτό με την ακόλουθη γραμμή κώδικα PHP. Δημιουργήστε ένα αρχείο με το όνομα index.php και τοποθετήστε αυτόν τον κώδικα στην κορυφή.

Ξεκινήστε τη Σελίδα HTML

Το πρώτο πράγμα που πρόκειται να κάνουμε για το frontend μας είναι να δημιουργήσουμε μια σελίδα όπου οι χρήστες μπορούν να εισάγουν τα στοιχεία τους για να συνδεθούν ή εάν είναι ήδη συνδεδεμένοι σε μια σελίδα όπου μπορούν να επιλέξουν τι θέλουν να κάνουν στη συνέχεια. Σε αυτό το σεμινάριο υποθέτω ότι οι χρήστες έχουν βασικές γνώσεις για το πώς λειτουργεί το HTML/CSS και επομένως δεν πρόκειται να εξηγήσω λεπτομερώς αυτόν τον κώδικα. Προς το παρόν, αυτά τα στοιχεία θα είναι χωρίς στιλ, αλλά θα μπορούμε να το αλλάξουμε αργότερα όταν δημιουργήσουμε το φύλλο στυλ CSS.

Χρησιμοποιώντας το αρχείο που μόλις δημιουργήσαμε (index.php), εισάγουμε τον παρακάτω κώδικα HTML κάτω από τη γραμμή της PHP που έχουμε ήδη δημιουργήσει.

Τι να τους δείξουμε;

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

  1. Είναι ήδη συνδεδεμένος ο χρήστης;
  • Ναί- Πρέπει να τους δείξουμε μια σελίδα με επιλογές για να επιλέξουν.
  • Οχι
  • Ο χρήστης έχει ήδη υποβάλει τα στοιχεία σύνδεσής του;
    • Ναί- πρέπει να ελέγξουμε τα στοιχεία τους και, αν είναι σωστά, θα τα συνδέσουμε στον ιστότοπο.
    • Οχι- συνεχίζουμε στην επόμενη ερώτηση.
  • Αν απαντούνταν και τα δύο παραπάνω Οχι, μπορούμε τώρα να υποθέσουμε ότι πρέπει να εμφανίσουμε μια φόρμα σύνδεσης στον χρήστη.
  • Αυτές οι ερωτήσεις είναι στην πραγματικότητα, οι ίδιες ερωτήσεις που πρόκειται να εφαρμόσουμε στον κώδικα PHP μας. Θα το κάνουμε αυτό με τη μορφή δηλώσεων if. Χωρίς να εισάγετε τίποτα σε κανένα από τα νέα σας αρχεία, ας ρίξουμε μια ματιά στη λογική που θα χρησιμοποιήσουμε πρώτα.

    Φαίνεται μπερδεμένο, έτσι δεν είναι; Ας το χωρίσουμε σε μικρότερα τμήματα και ας τα εξετάσουμε ένα-ένα.

    If(!empty($_SESSION["LoggedIn"]) && !empty($_SESSION["Username"])) ( // αφήστε τον χρήστη να αποκτήσει πρόσβαση στην κύρια σελίδα )

    Όταν ένας χρήστης συνδέεται στον ιστότοπό μας, πρόκειται να αποθηκεύσουμε τις πληροφορίες του σε μια περίοδο λειτουργίας - σε οποιοδήποτε σημείο μετά από αυτό μπορούμε να έχουμε πρόσβαση σε αυτές τις πληροφορίες σε έναν ειδικό παγκόσμιο πίνακα PHP - $_SESSION . Χρησιμοποιούμε τη συνάρτηση κενή για να ελέγξουμε αν η μεταβλητή είναι άδεια, με τον τελεστή ! μπροστά του. Γι' αυτό λέμε:

    Εάν η μεταβλητή $_SESSION["LoggedIn"] δεν είναι κενή και η $_SESSION["Όνομα χρήστη"] δεν είναι κενή, εκτελέστε αυτό το κομμάτι κώδικα.

    Η επόμενη γραμμή λειτουργεί με τον ίδιο τρόπο, μόνο αυτή τη φορά χρησιμοποιώντας τον παγκόσμιο πίνακα $_POST. Αυτός ο πίνακας περιέχει τυχόν δεδομένα που στάλθηκαν από τη φόρμα σύνδεσης που θα δημιουργήσουμε αργότερα σε αυτό το σεμινάριο. Η τελική γραμμή θα εκτελεστεί μόνο εάν καμία από τις προηγούμενες δηλώσεις δεν πληρούται. Σε αυτή την περίπτωση θα εμφανίσουμε στον χρήστη μια φόρμα σύνδεσης.

    Λοιπόν, τώρα που καταλαβαίνουμε τη λογική, ας πάρουμε λίγο περιεχόμενο ανάμεσα σε αυτές τις ενότητες. Στο αρχείο index.php, εισαγάγετε τα παρακάτω παρακάτω όσα έχετε ήδη.

    Περιοχή Μέλους

    και η διεύθυνση email σας είναι .

    Επιτυχία"; ηχώ "

    Τώρα σας ανακατευθύνουμε στην περιοχή μελών.

    "; ηχώ " ";) else (ηχώ"

    Λάθος

    "; ηχώ "

    Λυπούμαστε, ο λογαριασμός σας δεν βρέθηκε. Σας παρακαλούμε κάντε κλικ εδώ για να προσπαθήσετε ξανά.

    "; ) ) αλλιώς ( ?>

    Σύνδεση μέλους

    Ευχαριστώ για την επίσκεψη! Παρακαλούμε είτε συνδεθείτε παρακάτω ή κάντε κλικ εδώ για να εγγραφείτε.



    Ας ελπίσουμε ότι το πρώτο και το τελευταίο μπλοκ κώδικα δεν θα σας μπερδέψουν πολύ. Αυτό στο οποίο πραγματικά πρέπει να κολλήσουμε τώρα είναι αυτό για το οποίο έχετε έρθει όλοι σε αυτό το σεμινάριο - τον κώδικα PHP. Περνάμε τώρα στη δεύτερη ενότητα μία γραμμή κάθε φορά και θα εξηγήσω σε τι προορίζεται κάθε κομμάτι κώδικα εδώ.

    $username = mysql_real_escape_string($_POST["όνομα χρήστη"]); $password = md5(mysql_real_escape_string($_POST["password"]));

    Υπάρχουν δύο λειτουργίες που χρειάζονται εξηγήσεις για αυτό. Πρώτον, mysql_real_escape_string - μια πολύ χρήσιμη συνάρτηση για τον καθαρισμό της εισόδου της βάσης δεδομένων. Δεν είναι ασφαλές μέτρο, αλλά αυτό θα κρατήσει έξω την πλειονότητα των κακόβουλων χάκερ, αφαιρώντας ανεπιθύμητα μέρη από οτιδήποτε έχει τεθεί στη φόρμα σύνδεσής μας. Δεύτερον, md5. Θα ήταν αδύνατο να αναφερθούμε σε λεπτομέρειες εδώ, αλλά αυτή η συνάρτηση απλώς κρυπτογραφεί οτιδήποτε της μεταβιβαστεί - σε αυτήν την περίπτωση τον κωδικό πρόσβασης του χρήστη - για να αποτρέψει τα αδιάκριτα βλέμματα να τη διαβάσουν.

    $checklogin = mysql_query("SELECT * FROM users WHERE Όνομα χρήστη = "".$username." AND Password = "".$password."""); if(mysql_num_rows($checklogin) == 1) ( $row = mysql_fetch_array($checklogin); $email = $row["EmailAddress"]; $_SESSION["Username"] = $username; $_SESSION["EmailAddress"] = $email; $_SESSION["LoggedIn"] = 1;

    Εδώ έχουμε τον πυρήνα του κωδικού σύνδεσής μας. Πρώτον, εκτελούμε ένα ερώτημα στη βάση δεδομένων μας. Σε αυτό το ερώτημα αναζητούμε οτιδήποτε σχετίζεται με ένα μέλος, του οποίου το όνομα χρήστη και ο κωδικός πρόσβασης ταιριάζουν με τις τιμές του $username και του $password που έχει δώσει ο χρήστης. Στην επόμενη γραμμή έχουμε μια δήλωση if, στην οποία ελέγχουμε πόσα αποτελέσματα έχουμε λάβει - εάν δεν υπάρχουν αποτελέσματα, αυτή η ενότητα δεν θα υποβληθεί σε επεξεργασία. Αλλά αν υπάρχει αποτέλεσμα, γνωρίζουμε ότι ο χρήστης υπάρχει και έτσι θα τον συνδεθούμε.

    Οι επόμενες δύο γραμμές είναι για να λάβουμε τη διεύθυνση email του χρήστη. Έχουμε ήδη αυτές τις πληροφορίες από το ερώτημα που έχουμε ήδη εκτελέσει, ώστε να έχουμε εύκολη πρόσβαση σε αυτές τις πληροφορίες. Πρώτα, λαμβάνουμε μια σειρά από τα δεδομένα που έχουν ανακτηθεί από τη βάση δεδομένων - σε αυτήν την περίπτωση χρησιμοποιούμε τη συνάρτηση PHP mysql_fetch_array. Έπειτα έχω εκχωρήσει την τιμή του πεδίου EmailAddress σε μια μεταβλητή για να τη χρησιμοποιήσουμε αργότερα.

    Τώρα ορίζουμε τη συνεδρία. Αποθηκεύουμε το όνομα χρήστη και τη διεύθυνση email του χρήστη στη συνεδρία, μαζί με μια ειδική τιμή για να γνωρίζουμε ότι έχουν συνδεθεί χρησιμοποιώντας αυτήν τη φόρμα. Αφού ειπωθούν και γίνουν όλα αυτά, στη συνέχεια θα ανακατευθυνθούν στην περιοχή μελών χρησιμοποιώντας το META REFRESH στον κωδικό.

    Λοιπόν, πώς φαίνεται το έργο μας αυτήν τη στιγμή σε έναν χρήστη;

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

    Αφήστε τους ανθρώπους να εγγραφούν

    Είναι καλό να έχετε μια φόρμα σύνδεσης στον ιστότοπό σας, αλλά τώρα πρέπει να επιτρέψουμε στον χρήστη να τη χρησιμοποιήσει - πρέπει να φτιάξουμε μια φόρμα σύνδεσης. Δημιουργήστε ένα αρχείο που ονομάζεται register.php και βάλτε τον παρακάτω κώδικα σε αυτό.

    Σύστημα διαχείρισης χρηστών (Tom Cameron για NetTuts)

    Λάθος"; ηχώ "

    Λυπούμαστε, αυτό το όνομα χρήστη έχει ληφθεί. Επιστρέψτε και δοκιμάστε ξανά.

    "; ) else ( $registerquery = mysql_query("INSERT INTO users (Username, Password, Email Address) VALUES("".$username."", "".$password.", "".$email."") " ); if($registerquery) ( echo "

    Επιτυχία

    "; ηχώ "

    Ο λογαριασμός σας δημιουργήθηκε με επιτυχία. Σας παρακαλούμε Κάντε κλικ εδώ για να συνδεθείτε.

    ";) else (ηχώ"

    Λάθος

    "; ηχώ "

    Λυπούμαστε, η εγγραφή σας απέτυχε. Επιστρέψτε και δοκιμάστε ξανά.

    "; ) ) ) αλλιώς ( ?>

    Κανω ΕΓΓΡΑΦΗ

    Εισαγάγετε τα στοιχεία σας παρακάτω για να εγγραφείτε.




    Έτσι, δεν υπάρχουν πολλά νέα PHP που δεν έχουμε μάθει ακόμη σε αυτήν την ενότητα. Ας ρίξουμε απλώς μια γρήγορη ματιά σε αυτό το ερώτημα SQL και να δούμε αν μπορούμε να καταλάβουμε τι κάνει.

    $registerquery = mysql_query("INSERT INTO users (Username, Password, Email Address) VALUES("".$username.", "".$password.", "".$email."")");

    Έτσι, εδώ προσθέτουμε τον χρήστη στη βάση δεδομένων μας. Αυτή τη φορά, αντί να ανακτήσουμε δεδομένα, τα εισάγουμε· επομένως, καθορίζουμε πρώτα σε ποιες στήλες εισάγουμε δεδομένα (μην ξεχνάτε, το User ID μας θα ανέβει αυτόματα). Στην περιοχή VALUES(), λέγοντάς του τι να βάλει σε κάθε στήλη. Σε αυτήν την περίπτωση οι μεταβλητές μας που προήλθαν από την είσοδο του χρήστη. Ας το δοκιμάσουμε λοιπόν. Μόλις δημιουργήσετε έναν λογαριασμό στην ολοκαίνουργια φόρμα εγγραφής σας, θα δείτε τι θα δείτε για την περιοχή των μελών.

    Βεβαιωθείτε ότι μπορούν να αποσυνδεθούν

    Είμαστε σχεδόν στο τέλος αυτής της ενότητας, αλλά υπάρχει ένα ακόμη πράγμα που χρειαζόμαστε πριν τελειώσουμε εδώ - ένας τρόπος για να αποσυνδεθούν οι χρήστες από τους λογαριασμούς τους. Αυτό είναι πολύ εύκολο να γίνει (ευτυχώς για εμάς). δημιουργήστε ένα νέο αρχείο με όνομα logout.php και πληκτρολογήστε τα παρακάτω σε αυτό.

    Σε αυτό, πρώτα επαναφέρουμε τον παγκόσμιο πίνακα $_SESSION και, στη συνέχεια, καταστρέφουμε εντελώς τη συνεδρία.

    Και αυτό είναι το τέλος αυτής της ενότητας και το τέλος του κώδικα PHP. Ας προχωρήσουμε τώρα στην τελευταία μας ενότητα.

    Βήμα 3 - Αποκτήστε στυλ

    Δεν πρόκειται να εξηγήσω πολλά σε αυτήν την ενότητα - εάν δεν καταλαβαίνετε HTML/CSS, θα σας συνιστούσα ανεπιφύλακτα όταν από τα πολλά εξαιρετικά σεμινάρια σε αυτόν τον ιστότοπο για να ξεκινήσετε. Δημιουργήστε ένα νέο αρχείο με το όνομα style.css και εισαγάγετε τα ακόλουθα σε αυτό. Αυτό θα διαμορφώσει όλες τις σελίδες που έχουμε δημιουργήσει μέχρι τώρα.

    * ( περιθώριο: 0; padding: 0; ) body ( γραμματοσειρά-οικογένεια: Trebuchet MS; ) a ( χρώμα: #000; ) a:hover, a:active, a:visited ( text-decoration: none; ) #main ( πλάτος: 780 εικονοστοιχεία; περιθώριο: 0 αυτόματο; περιθώριο-πάνω: 50 εικονοστοιχεία; συμπλήρωση: 10 εικονοστοιχεία; περίγραμμα: 1 εικονοστοιχείο συμπαγές #CCC; χρώμα φόντου: #EEE; ) σύνολο πεδίων φόρμας ( περίγραμμα: 0; ) σύνολο πεδίων φόρμας p br ( καθαρό: αριστερά; ) ετικέτα (περιθώριο-επάνω: 5 εικονοστοιχεία; οθόνη: μπλοκ; πλάτος: 100 εικονοστοιχεία; συμπλήρωση: 0; αιώρηση: αριστερά; ) είσοδος ( γραμματοσειρά-οικογένεια: Trebuchet MS; περίγραμμα: 1 εικονοστοιχείο συμπαγές #CCC; κάτω περιθώριο: 5 εικονοστοιχεία; χρώμα φόντου: #FFF; padding: 2px; ) input:hover ( περίγραμμα: 1px συμπαγές #222; χρώμα φόντου: #EEE; )

    Τώρα ας ρίξουμε μια ματιά σε μερικά στιγμιότυπα οθόνης του πώς θα πρέπει να είναι το τελικό μας έργο:

    Η φόρμα σύνδεσης.

    Η περιοχή μελών.

    Η φόρμα εγγραφής.

    Και τελικά...

    Και αυτό! Αλλά αυτό που ελπίζω να έχει μάθει οποιοσδήποτε αρχάριος στην PHP είναι τα βασικά για το πώς να χρησιμοποιήσει μια βάση δεδομένων και πώς να χρησιμοποιήσει τις συνεδρίες για την αποθήκευση πληροφοριών. Οι ζωτικές δεξιότητες για τη δημιουργία οποιασδήποτε διαδικτυακής εφαρμογής.

    • Εγγραφείτε στο NETTUTS RSS Feed για περισσότερες καθημερινές οδηγίες και άρθρα για την ανάπτυξη ιστού.

    Σήμερα θα εξετάσουμε την εκμετάλλευση μιας κρίσιμης ευπάθειας 1 ημέρας στο δημοφιλές CMS Joomla, η οποία εξερράγη στο Διαδίκτυο στα τέλη Οκτωβρίου. Θα μιλήσουμε για τρωτά σημεία με αριθμούς CVE-2016-8869, CVE-2016-8870Και CVE-2016-9081. Και τα τρία προέρχονται από ένα κομμάτι κώδικα που παρέμεινε στα βάθη του πλαισίου για πέντε ολόκληρα χρόνια, περιμένοντας στα φτερά, για να ελευθερωθεί και να φέρει μαζί του χάος, χακαρισμένους ιστότοπους και τα δάκρυα αθώων χρηστών αυτού του Joomla. Μόνο οι πιο γενναίοι και θαρραλέοι προγραμματιστές, των οποίων τα μάτια είναι κόκκινα από το φως των οθονών και των οποίων τα πληκτρολόγια είναι γεμάτα με ψίχουλα ψωμιού, μπόρεσαν να προκαλέσουν τα μανιασμένα κακά πνεύματα και να βάλουν το κεφάλι τους στο βωμό των διορθώσεων.

    ΠΡΟΕΙΔΟΠΟΙΗΣΗ

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

    Εκεί που ξεκίνησαν όλα

    Στις 6 Οκτωβρίου 2016, ο Demis Palma δημιούργησε ένα θέμα στο Stack Exchange στο οποίο ρώτησε: γιατί, στην πραγματικότητα, στην έκδοση 3.6 του Joomla υπάρχουν δύο μέθοδοι για την εγγραφή χρηστών με το ίδιο όνομα register(); Το πρώτο βρίσκεται στον ελεγκτή UsersControllerRegistration και το δεύτερο στον ελεγκτή UsersControllerUser. Ο Damis ήθελε να μάθει αν η μέθοδος UsersControllerUser::register() χρησιμοποιήθηκε κάπου ή αν ήταν απλώς ένας εξελικτικός αναχρονισμός που είχε απομείνει από την παλιά λογική. Η ανησυχία του ήταν ότι ακόμα κι αν αυτή η μέθοδος δεν χρησιμοποιείται από καμία προβολή, μπορεί να κληθεί με ένα επεξεργασμένο ερώτημα. Στο οποίο έλαβα μια απάντηση από έναν προγραμματιστή με το ψευδώνυμο itoctopus, ο οποίος επιβεβαίωσε: το πρόβλημα υπάρχει πραγματικά. Και έστειλε μια αναφορά στους προγραμματιστές του Joomla.

    Τότε τα γεγονότα εξελίχθηκαν πιο γρήγορα. Στις 18 Οκτωβρίου, οι προγραμματιστές του Joomla αποδέχθηκαν την αναφορά από τον Damis, ο οποίος μέχρι εκείνη τη στιγμή είχε συντάξει ένα PoC που θα επέτρεπε την εγγραφή των χρηστών. Δημοσίευσε ένα σημείωμα στην ιστοσελίδα του, όπου μίλησε γενικά για το πρόβλημα που βρήκε και τις σκέψεις του για αυτό το θέμα. Την ίδια μέρα, κυκλοφορεί μια νέα έκδοση του Joomla 3.6.3, η οποία εξακολουθεί να περιέχει ευάλωτο κώδικα.

    Μετά από αυτό, ο Davide Tampellini περιστρέφει το σφάλμα στο σημείο να εγγράφει όχι έναν απλό χρήστη, αλλά έναν διαχειριστή. Και στις 21 Οκτωβρίου, μια νέα υπόθεση φτάνει στην ομάδα ασφαλείας του Joomla. Ήδη μιλάει για αύξηση των προνομίων. Την ίδια μέρα εμφανίζεται μια ανακοίνωση στην ιστοσελίδα του Joomla ότι την Τρίτη 25 Οκτωβρίου θα κυκλοφορήσει η επόμενη έκδοση με σειριακό αριθμό 3.6.3, η οποία διορθώνει μια κρίσιμη ευπάθεια στον πυρήνα του συστήματος.

    25 Οκτωβρίου Το Joomla Security Strike Team εντοπίζει το πιο πρόσφατο πρόβλημα που δημιουργήθηκε από το κομμάτι κώδικα που ανακαλύφθηκε από τον Damis. Στη συνέχεια, ένα commit με ημερομηνία 21 Οκτωβρίου με το δυσδιάκριτο όνομα Prepare 3.6.4 Stable Release προωθείται στον κύριο κλάδο του επίσημου αποθετηρίου Joomla, το οποίο διορθώνει το ατυχές σφάλμα.

    Αφού βγει αυτό, πολλά ενδιαφερόμενα άτομα εντάσσονται στην κοινότητα προγραμματιστών - αρχίζουν να προωθούν την ευπάθεια και να προετοιμάζουν εκμεταλλεύσεις.

    Στις 27 Οκτωβρίου, ο ερευνητής Harry Roberts ανεβάζει ένα έτοιμο exploit στο αποθετήριο Xiphos Research που μπορεί να ανεβάσει ένα αρχείο PHP σε έναν διακομιστή με ευάλωτο CMS.

    Λεπτομέριες

    Λοιπόν, το παρασκήνιο τελείωσε, ας περάσουμε στο πιο ενδιαφέρον μέρος - την ανάλυση της ευπάθειας. Εγκατέστησα το Joomla 3.6.3 ως δοκιμαστική έκδοση, επομένως όλοι οι αριθμοί γραμμής θα είναι σχετικοί με αυτήν την έκδοση. Και όλες οι διαδρομές προς τα αρχεία που θα δείτε παρακάτω θα υποδεικνύονται σε σχέση με τη ρίζα του εγκατεστημένου CMS.

    Χάρη στην ανακάλυψη του Damis Palma, γνωρίζουμε ότι υπάρχουν δύο μέθοδοι που πραγματοποιούν εγγραφή χρήστη στο σύστημα. Το πρώτο χρησιμοποιείται από το CMS και βρίσκεται στο αρχείο /components/com_users/controllers/registration.php:108. Το δεύτερο (αυτό που θα χρειαστεί να καλέσουμε) ζει στο /components/com_users/controllers/user.php:293. Ας το ρίξουμε μια πιο προσεκτική ματιά.

    286: /** 287: * Μέθοδος εγγραφής χρήστη. 288: * 289: * @return boolean 290: * 291: * @since 1.6 292: */ 293: public function register() 294: ( 295: JSession::checkToken("post") ή jexit(JText::_ ("JINVALID_TOKEN")); ... 300: // Λήψη δεδομένων φόρμας. 301: $data = $this->input->post->get("user", array(), "array"); . .. 315: $return = $model->validate($form, $data); 316: 317: // Έλεγχος για σφάλματα. 318: εάν ($return === false) 319: ( ... 345: / / Ολοκληρώστε την εγγραφή 346: $return = $model->register($data);

    Εδώ άφησα μόνο ενδιαφέρουσες γραμμές. Η πλήρης έκδοση της ευάλωτης μεθόδου μπορεί να προβληθεί στο αποθετήριο του Joomla.

    Ας δούμε τι συμβαίνει κατά την κανονική εγγραφή χρήστη: ποια δεδομένα αποστέλλονται και πώς υποβάλλονται σε επεξεργασία. Εάν η εγγραφή χρήστη είναι ενεργοποιημένη στις ρυθμίσεις, η φόρμα βρίσκεται στη διεύθυνση http://joomla.local/index.php/component/users/?view=registration.


    Ένα νόμιμο αίτημα εγγραφής χρήστη μοιάζει με το παρακάτω στιγμιότυπο οθόνης.


    Το στοιχείο com_users είναι υπεύθυνο για τη συνεργασία με τους χρήστες. Δώστε προσοχή στην παράμετρο εργασίας στο αίτημα. Έχει τη μορφή $controller.$method . Ας δούμε τη δομή του αρχείου.

    Ονόματα σεναρίων στο φάκελο ελεγκτέςαντιστοιχούν στα ονόματα των καλούμενων ελεγκτών. Εφόσον το αίτημά μας περιέχει τώρα $controller = "registration" , το αρχείο θα κληθεί εγγραφή.phpκαι τη μέθοδο register().

    Προσοχή, ερώτηση: πώς να μεταφέρετε την επεξεργασία εγγραφής σε ένα ευάλωτο μέρος στον κωδικό; Μάλλον το μαντέψατε ήδη. Τα ονόματα των ευάλωτων και των πραγματικών μεθόδων είναι τα ίδια (register), επομένως πρέπει απλώς να αλλάξουμε το όνομα του καλούμενου ελεγκτή. Πού βρίσκεται ο ευάλωτος ελεγκτής μας; Σωστά, στο αρχείο user.php. Αποδεικνύεται $controller = "χρήστης" . Συνδυάζοντας τα πάντα παίρνουμε task = user.register . Τώρα το αίτημα εγγραφής επεξεργάζεται με τη μέθοδο που χρειαζόμαστε.


    Το δεύτερο πράγμα που πρέπει να κάνουμε είναι να στείλουμε τα δεδομένα στη σωστή μορφή. Όλα είναι απλά εδώ. Η νόμιμη register() περιμένει από εμάς έναν πίνακα που ονομάζεται jform , στον οποίο περνάμε δεδομένα εγγραφής - όνομα, σύνδεση, κωδικός πρόσβασης, email (δείτε στιγμιότυπο οθόνης με το αίτημα).

    • /components/com_users/controllers/registration.php: 124: // Λάβετε τα δεδομένα χρήστη. 125: $requestData = $this->input->post->get("jform", array(), "array");

    Ο πελάτης μας λαμβάνει αυτά τα δεδομένα από έναν πίνακα που ονομάζεται χρήστης.

    • /components/com_users/controllers/user.php: 301: // Λάβετε τα δεδομένα της φόρμας. 302: $data = $this->input->post->get("user", array(), "array");

    Επομένως, αλλάζουμε τα ονόματα όλων των παραμέτρων στο αίτημα από jfrom σε χρήστη .

    Το τρίτο μας βήμα είναι να βρούμε ένα έγκυρο διακριτικό CSRF, αφού χωρίς αυτό δεν θα υπάρχει εγγραφή.

    • /components/com_users/controllers/user.php: 296: JSession::checkToken("post") ή jexit(JText::_("JINVALID_TOKEN"));

    Μοιάζει με κατακερματισμό MD5 και μπορείτε να το πάρετε, για παράδειγμα, από τη φόρμα εξουσιοδότησης στον ιστότοπο /index.php/component/users/?view=login.


    Τώρα μπορείτε να δημιουργήσετε χρήστες χρησιμοποιώντας την επιθυμητή μέθοδο. Εάν όλα λειτούργησαν, τότε συγχαρητήρια - απλώς εκμεταλλευτείτε μια ευπάθεια CVE-2016-8870"Λείπει έλεγχος άδειας για εγγραφή νέων χρηστών."

    Έτσι φαίνεται στη μέθοδο μητρώου () "εργασίας" από τον ελεγκτή UsersControllerRegistration:

    • /components/com_users/controllers/registration.php: 113: // Εάν η εγγραφή είναι απενεργοποιημένη - Ανακατεύθυνση στη σελίδα σύνδεσης. 114: if (JComponentHelper::getParams("com_users")->get("allowUserRegistration") == 0) 115: ( 116: $this->setRedirect(JRoute::_("index.php?option=com_users&view= login", false)); 117: 118: return false; 119: )

    Και έτσι στους ευάλωτους:

    • /components/com_users/controllers/user.php:

    Ναι, δεν υπάρχει περίπτωση.

    Για να κατανοήσουμε το δεύτερο, πολύ πιο σοβαρό πρόβλημα, ας στείλουμε το αίτημα που δημιουργήσαμε και ας δούμε πώς εκτελείται σε διάφορα σημεία του κώδικα. Ακολουθεί το κομμάτι που είναι υπεύθυνο για την επικύρωση των δεδομένων που υπέβαλε ο χρήστης με τη μέθοδο του εργάτη:

    Η συνέχεια είναι διαθέσιμη μόνο στα μέλη

    Επιλογή 1. Εγγραφείτε στην κοινότητα "ιστότοπων" για να διαβάσετε όλο το υλικό στον ιστότοπο

    Η συμμετοχή στην κοινότητα εντός της καθορισμένης περιόδου θα σας δώσει πρόσβαση σε ΟΛΟ το υλικό των Hacker, θα αυξήσει την προσωπική σας αθροιστική έκπτωση και θα σας επιτρέψει να συγκεντρώσετε μια επαγγελματική βαθμολογία Xakep Score!

    Γειά σου! Τώρα θα προσπαθήσουμε να εφαρμόσουμε την απλούστερη εγγραφή στον ιστότοπο χρησιμοποιώντας PHP + MySQL. Για να γίνει αυτό, το Apache πρέπει να είναι εγκατεστημένο στον υπολογιστή σας. Η αρχή λειτουργίας του σεναρίου μας φαίνεται παρακάτω.

    1. Ας ξεκινήσουμε δημιουργώντας τον πίνακα χρηστών στη βάση δεδομένων. Θα περιέχει δεδομένα χρήστη (σύνδεση και κωδικό πρόσβασης). Ας πάμε στο phpmyadmin (αν δημιουργείτε μια βάση δεδομένων στον υπολογιστή σας http://localhost/phpmyadmin/). Δημιουργήστε έναν πίνακα χρήστες, θα έχει 3 πεδία.

    Το δημιουργώ στη βάση δεδομένων mysql, μπορείτε να το δημιουργήσετε σε άλλη βάση δεδομένων. Στη συνέχεια, ορίστε τις τιμές όπως στο σχήμα:

    2. Απαιτείται σύνδεση σε αυτόν τον πίνακα.Ας δημιουργήσουμε ένα αρχείο bd.php. Το ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ:

    $db = mysql_connect("ο διακομιστής σας MySQL", "login for this server","password for this server");
    mysql_select_db ("όνομα της βάσης δεδομένων στην οποία συνδέουμε", $db);
    ?>

    Στην περίπτωσή μου μοιάζει με αυτό:

    $db = mysql_connect("localhost","user","1234");
    mysql_select_db("mysql",$db);
    ?>

    Αποθηκεύσετε bd.php.
    Εξαιρετική! Έχουμε έναν πίνακα στη βάση δεδομένων και μια σύνδεση με αυτόν. Τώρα μπορείτε να ξεκινήσετε τη δημιουργία μιας σελίδας στην οποία οι χρήστες θα αφήνουν τα δεδομένα τους.

    3. Δημιουργήστε ένα αρχείο reg.php με τα περιεχόμενα (όλα τα σχόλια μέσα):



    Εγγραφή


    Εγγραφή
















    4. Δημιουργήστε ένα αρχείο, το οποίο θα εισάγει δεδομένα στη βάση δεδομένων και θα αποθηκεύσει τον χρήστη. save_user.php(σχόλια μέσα):



    {
    }
    //εάν εισαγάγετε τη σύνδεση και τον κωδικό πρόσβασης, τα επεξεργαζόμαστε έτσι ώστε οι ετικέτες και τα σενάρια να μην λειτουργούν, ποτέ δεν ξέρετε τι μπορούν να εισαγάγουν οι χρήστες


    //αφαίρεση επιπλέον διαστημάτων
    $login = trim($login);
    $password = trim($password);
    // σύνδεση στη βάση δεδομένων
    // ελέγξτε για την ύπαρξη χρήστη με την ίδια σύνδεση
    $result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
    if (!empty($myrow["id"])) (
    exit("Λυπούμαστε, η σύνδεση που εισαγάγατε είναι ήδη εγγεγραμμένη. Εισαγάγετε άλλη σύνδεση.");
    }
    // εάν αυτό δεν συμβαίνει, τότε αποθηκεύστε τα δεδομένα
    $result2 = mysql_query("INSERT INTO users (login,password) VALUES("$login","$password")");
    // Ελέγξτε εάν υπάρχουν σφάλματα
    εάν ($result2=="TRUE")
    {
    echo "Έχετε εγγραφεί με επιτυχία! Τώρα μπορείτε να εισέλθετε στον ιστότοπο. Αρχική σελίδα";
    }
    αλλού(
    echo "Σφάλμα! Δεν είστε εγγεγραμμένος.";
    }
    ?>

    5. Τώρα οι χρήστες μας μπορούν να εγγραφούν!Στη συνέχεια, πρέπει να δημιουργήσετε μια «πόρτα» για να μπουν ήδη εγγεγραμμένοι χρήστες στον ιστότοπο. index.php(σχόλια μέσα) :

    // όλη η διαδικασία λειτουργεί σε συνεδρίες. Είναι όπου αποθηκεύονται τα δεδομένα του χρήστη ενώ βρίσκεται στον ιστότοπο. Είναι πολύ σημαντικό να τα λανσάρουμε στην αρχή κιόλας της σελίδας!!!
    session_start();
    ?>


    Αρχική σελίδα


    Αρχική σελίδα











    Κανω ΕΓΓΡΑΦΗ



    // Ελέγξτε εάν οι μεταβλητές σύνδεσης και αναγνωριστικού χρήστη είναι κενές
    εάν (κενό($_SESSION["login"]) ή κενό($_SESSION["id"]))
    {
    // Εάν είναι κενό, τότε δεν εμφανίζουμε τον σύνδεσμο
    echo "Έχετε συνδεθεί ως επισκέπτης
    Αυτός ο σύνδεσμος είναι διαθέσιμος μόνο σε εγγεγραμμένους χρήστες".
    }
    αλλού
    {

    Στο αρχείο index.phpΘα εμφανίσουμε έναν σύνδεσμο που θα είναι ανοιχτός μόνο σε εγγεγραμμένους χρήστες. Αυτό είναι όλο το νόημα του σεναρίου - ο περιορισμός της πρόσβασης σε οποιαδήποτε δεδομένα.

    6. Παραμένει ένα αρχείο με επαλήθευση των εισαγόμενων στοιχείων σύνδεσης και κωδικού πρόσβασης. testreg.php (σχόλια μέσα):

    session_start();// όλη η διαδικασία λειτουργεί σε συνεδρίες. Είναι όπου αποθηκεύονται τα δεδομένα του χρήστη ενώ βρίσκεται στον ιστότοπο. Είναι πολύ σημαντικό να τα λανσάρουμε στην αρχή κιόλας της σελίδας!!!
    if (isset($_POST["login"])) ($login = $_POST["login"]; if ($login == "") ( unset($login);) ) //εισαγάγετε τη σύνδεση που έχει εισαχθεί από ο χρήστης στη μεταβλητή $login, εάν είναι κενή, τότε καταστρέψτε τη μεταβλητή
    if (isset($_POST["password"])) ($password=$_POST["password"]; if ($password =="") ( unset($password);) )
    //βάλτε τον κωδικό πρόσβασης που εισήγαγε ο χρήστης στη μεταβλητή $password, εάν είναι κενή, τότε καταστρέψτε τη μεταβλητή
    εάν (κενό($login) ή κενό($password)) //εάν ο χρήστης δεν εισήγαγε κωδικό σύνδεσης ή κωδικό πρόσβασης, τότε παρουσιάζουμε ένα σφάλμα και διακόπτουμε το σενάριο
    {
    exit ("Δεν έχετε εισαγάγει όλες τις πληροφορίες, επιστρέψτε και συμπληρώστε όλα τα πεδία!");
    }
    //εάν εισαγάγετε τη σύνδεση και τον κωδικό πρόσβασης, τα επεξεργαζόμαστε έτσι ώστε οι ετικέτες και τα σενάρια να μην λειτουργούν, ποτέ δεν ξέρετε τι μπορούν να εισαγάγουν οι χρήστες
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
    $password = stripslashes($password);
    $password = htmlspecialchars($password);
    //αφαίρεση επιπλέον διαστημάτων
    $login = trim($login);
    $password = trim($password);
    // σύνδεση στη βάση δεδομένων
    include("bd.php");// το αρχείο bd.php πρέπει να βρίσκεται στον ίδιο φάκελο με όλα τα άλλα, αν δεν είναι, απλώς αλλάξτε τη διαδρομή

    $result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //ανάκτηση από τη βάση δεδομένων όλων των δεδομένων σχετικά με τον χρήστη με την εισαγόμενη σύνδεση
    $myrow = mysql_fetch_array($result);
    if (κενό($myrow["password"]))
    {
    //αν δεν υπάρχει ο χρήστης με τα καταχωρημένα στοιχεία σύνδεσης
    }
    αλλού(
    //αν υπάρχει, τότε ελέγξτε τους κωδικούς πρόσβασης
    αν ($myrow["password"]==$password) (
    //αν οι κωδικοί πρόσβασης ταιριάζουν, τότε ξεκινάμε μια συνεδρία για τον χρήστη! Μπορείτε να τον συγχαρείτε, μπήκε!
    $_SESSION["login"]=$myrow["login"];
    $_SESSION["id"]=$myrow["id"];//αυτά τα δεδομένα χρησιμοποιούνται πολύ συχνά, επομένως ο συνδεδεμένος χρήστης θα "τα φέρει μαζί του"
    echo "Έχετε μπει με επιτυχία στον ιστότοπο! Αρχική σελίδα";
    }
    αλλού(
    //αν οι κωδικοί πρόσβασης δεν ταιριάζουν

    Έξοδος ("Λυπούμαστε, η σύνδεση ή ο κωδικός πρόσβασης που εισαγάγατε είναι λάθος.");
    }
    }
    ?>

    ΟΚ όλα τελείωσαν τώρα! Το μάθημα μπορεί να είναι βαρετό, αλλά πολύ χρήσιμο. Εδώ εμφανίζεται μόνο η ιδέα της εγγραφής, τότε μπορείτε να τη βελτιώσετε: προσθέστε προστασία, σχεδιασμό, πεδία δεδομένων, φόρτωση avatar, αποσύνδεση από τον λογαριασμό (για να το κάνετε αυτό, απλώς καταστρέψτε τις μεταβλητές από τη συνεδρία με τη συνάρτηση απενεργοποίηση) και ούτω καθεξής. Καλή τύχη!

    Τα τσέκαρα όλα, δουλεύει σωστά!

    Νέο στον ιστότοπο

    >

    Δημοφιλέστερος