Selamın Aleyküm
Bugün Golang (Go) ile basit bir Kullanıcı Yönetim Sistemi Kodlayacağız.
Bu Golang Yazılımı, kullanıcı yönetimi için basit bir web uygulaması oluşturmayı amaçlar. Kullanıcılar, kayıt olabilir, giriş yapabilir ve profil bilgilerini görüntüleyebilir. Kullanıcılar, isim ve e-posta gibi bilgileri girerek kayıt olurlar ve bu bilgiler bellekteki bir "users" dizisine eklenir.
Ana sayfa ("/") kullanıcılara uygulamayı tanıtan bir giriş sayfasıdır. Kayıt sayfası ("/register"), kullanıcılardan isim ve e-posta gibi bilgileri alır ve POST istekleriyle bu bilgileri alarak kullanıcıları "users" dizisine ekler.
Giriş sayfası ("/login"), kullanıcılardan e-posta adresi alır ve POST istekleriyle bu e-postaya sahip kullanıcıyı "users" dizisinde arar. Eşleşen bir kullanıcı bulunursa, kullanıcının profil sayfasına yönlendirilir ve kullanıcının profil bilgileri "profile.html" şablonuyla görüntülenir.
Bu proje, Go'nun "net/http" paketini kullanarak HTTP isteklerini yönlendirir ve HTML şablonlarını kullanarak kullanıcı arayüzünü oluşturur. Bu temel bir örnek olup, kullanıcı yönetimi için daha fazla özellik ve güvenlik önlemleri eklemek isteyebilirsiniz.
Bugün Golang (Go) ile basit bir Kullanıcı Yönetim Sistemi Kodlayacağız.
Bu Golang Yazılımı, kullanıcı yönetimi için basit bir web uygulaması oluşturmayı amaçlar. Kullanıcılar, kayıt olabilir, giriş yapabilir ve profil bilgilerini görüntüleyebilir. Kullanıcılar, isim ve e-posta gibi bilgileri girerek kayıt olurlar ve bu bilgiler bellekteki bir "users" dizisine eklenir.
Ana sayfa ("/") kullanıcılara uygulamayı tanıtan bir giriş sayfasıdır. Kayıt sayfası ("/register"), kullanıcılardan isim ve e-posta gibi bilgileri alır ve POST istekleriyle bu bilgileri alarak kullanıcıları "users" dizisine ekler.
Giriş sayfası ("/login"), kullanıcılardan e-posta adresi alır ve POST istekleriyle bu e-postaya sahip kullanıcıyı "users" dizisinde arar. Eşleşen bir kullanıcı bulunursa, kullanıcının profil sayfasına yönlendirilir ve kullanıcının profil bilgileri "profile.html" şablonuyla görüntülenir.
Bu proje, Go'nun "net/http" paketini kullanarak HTTP isteklerini yönlendirir ve HTML şablonlarını kullanarak kullanıcı arayüzünü oluşturur. Bu temel bir örnek olup, kullanıcı yönetimi için daha fazla özellik ve güvenlik önlemleri eklemek isteyebilirsiniz.
Kod:
package main
import (
"fmt"
"html/template"
"net/http"
)
type User struct {
Name string
Email string
}
var users []User
func main() {
http.HandleFunc("/", homeHandler)
http.HandleFunc("/register", registerHandler)
http.HandleFunc("/login", loginHandler)
http.HandleFunc("/profile", profileHandler)
fmt.Println("Server starting on port 8080...")
http.ListenAndServe(":8080", nil)
}
func homeHandler(w http.ResponseWriter, r *http.Request) {
renderTemplate(w, "home", nil)
}
func registerHandler(w http.ResponseWriter, r *http.Request) {
if r.Method == "POST" {
name := r.FormValue("name")
email := r.FormValue("email")
user := User{Name: name, Email: email}
users = append(users, user)
http.Redirect(w, r, "/login", http.StatusSeeOther)
} else {
renderTemplate(w, "register", nil)
}
}
func loginHandler(w http.ResponseWriter, r *http.Request) {
if r.Method == "POST" {
email := r.FormValue("email")
var user User
for _, u := range users {
if u.Email == email {
user = u
break
}
}
renderTemplate(w, "profile", user)
} else {
renderTemplate(w, "login", nil)
}
}
func profileHandler(w http.ResponseWriter, r *http.Request) {
renderTemplate(w, "profile", nil)
}
func renderTemplate(w http.ResponseWriter, tmpl string, data interface{}) {
templates := template.Must(template.ParseFiles("templates/"+tmpl+".html"))
err := templates.ExecuteTemplate(w, tmpl+".html", data)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}