À l'ère d'Internet, avec les progrès continus de la technologie Internet et la demande croissante d'informations de la part des gens, les fonctions d'enregistrement et de connexion des sites Web et des applications sont devenues de plus en plus courantes. Cet article expliquera comment utiliser le langage Golang pour implémenter la fonction d'enregistrement et de connexion.
1. Introduction à golang
golang est un langage de programmation développé par Google. Il présente les caractéristiques d'un traitement simultané efficace, d'un garbage collection automatique, d'un temps de compilation extrêmement faible, etc. caractéristiques des systèmes. Ces fonctionnalités font de Golang un très excellent langage côté serveur. Par conséquent, l’utiliser pour mettre en œuvre la fonction d’enregistrement et de connexion est un très bon choix.
2. Configuration de l'environnement
Pour utiliser Golang pour implémenter la fonction d'enregistrement et de connexion, vous devez d'abord installer le langage Golang dans l'environnement local. Avant l'installation, vous devez déterminer le type de système d'exploitation de votre ordinateur (Windows, Linux, Mac, etc.) et sélectionner la version Golang correspondante à télécharger et à installer.
Une fois l'installation terminée, vous pouvez saisir la commande suivante dans la ligne de commande pour vérifier si l'installation a réussi :
go version
Si le numéro de version de Golang est affiché, l'installation est réussie.
3. Implémentation de la fonction d'enregistrement
Créez un dossier nommé "login" pour placer les fichiers de ce projet. Créez deux dossiers dans ce dossier : contrôleur et modèle. Parmi eux, le contrôleur est utilisé pour placer le code du contrôleur de l'interface Web et le modèle est utilisé pour placer le code des opérations de base de données.
Créez un fichier nommé "db.go" dans le dossier modèle, et écrivez-y le code suivant pour établir une connexion à la base de données :
package model import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) const ( USERNAME = "root" PASSWORD = "" NETWORK = "tcp" SERVER = "localhost" PORT = 3306 DATABASE = "login_system" ) func DbConn() (db *sql.DB) { dbDriver := "mysql" dbUser := USERNAME dbPass := PASSWORD dbName := DATABASE db, err := sql.Open(dbDriver, dbUser+":"+dbPass+"@tcp("+SERVER+":"+strconv.Itoa(PORT)+")/"+dbName) if err != nil { fmt.Println("无法连接数据库:", err) } else { fmt.Println("成功连接数据库!") } return db }
Dans le code ci-dessus, un tiers est utilisé la bibliothèque "go-sql-driver/mysql" pour réaliser la connexion à la base de données. Dans le code, nous devons également définir certaines informations de base de la base de données, telles que le nom d'utilisateur, le mot de passe, l'adresse de l'hôte, le numéro de port, le nom de la base de données, etc.
Prochaine étape, nous devons créer un fichier nommé "user.sql" pour écrire l'instruction SQL permettant de créer la table utilisateur, qui contient des champs tels que l'ID utilisateur, le nom d'utilisateur et le mot de passe.
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
En exécutant l'instruction SQL ci-dessus, la table utilisateur peut être créée dans la base de données.
Créez un fichier nommé "register.go" dans le dossier du contrôleur pour écrire le code du contrôleur pour l'interface d'enregistrement. Dans ce fichier, vous devez importer la bibliothèque tierce « net/http » et écrire le code suivant :
package controller import ( "crypto/md5" "database/sql" "encoding/hex" "fmt" "io/ioutil" "net/http" "server/model" ) func Register(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { username := r.FormValue("username") password := r.FormValue("password") // 密码加密 h := md5.New() h.Write([]byte(password)) password = hex.EncodeToString(h.Sum(nil)) // 数据库操作 db := model.DbConn() defer db.Close() stmt, err := db.Prepare("INSERT INTO user(username, password) VALUES (?, ?)") if err != nil { fmt.Println("SQL语句执行失败:", err) return } _, err = stmt.Exec(username, password) if err != nil { fmt.Println("用户注册失败:", err) return } fmt.Println("用户注册成功!") } // 返回页面内容 data, err := ioutil.ReadFile("register.html") if err != nil { fmt.Println("读取文件失败:", err) return } w.Write([]byte(data)) }
Dans le code ci-dessus, nous déterminons d'abord si la méthode de requête est POST. S'il s'agit d'une requête POST, le nom d'utilisateur et le mot de passe sont obtenus, le mot de passe est crypté MD5 et le mot de passe et le nom d'utilisateur cryptés sont stockés dans la base de données.
A la fin du fichier, utilisez la fonction ioutil.ReadFile() pour lire un fichier nommé "register.html" et renvoyer le contenu du fichier au navigateur. De cette manière, le navigateur peut afficher notre interface d'inscription.
Créez un fichier nommé "register.html" dans le dossier de connexion pour écrire le code de la page d'inscription. Dans cette page, vous devez utiliser la balise