Golang İle Kullanıcı Yönetim Sistemi

ByFelez

Uzman üye
9 Tem 2013
1,822
1,777
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.
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)
    }
}

 

murti-

Yeni üye
18 Ocak 2023
39
15
?
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.
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)
    }
}

eline emeğine sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.