@DKENdhdhdasd

Почему условие не работает?

У меня есть html файл, в нем после ввода пароля идет редирект на /login с pass

<form action="/login" method="post">
        Пароль <input type="text" name="pass"><br><br>
        <input type="submit" value="Submit">
    </form>


И есть go файл

router.POST("/login", func(c *gin.Context) {
		pass, _ := ioutil.ReadAll(c.Request.Body)

		if strings.ReplaceAll(string(pass), "pass=", "") != "123" {
			fmt.Println("Ошибка")
			return
		}
	})


Но даже с паролем 123 всегда пишется ошибка
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
The_Sketch
@The_Sketch
Веб разработчик x)
Вероятно, проблема заключается в том, что вы пытаетесь сравнивать строку, которая содержит и "pass=" и "123". Чтобы получить только значение пароля из запроса, вы можете использовать метод `FormValue` из `gin.Context`, который позволяет получить значение формы по имени поля:

router.POST("/login", func(c *gin.Context) {
    pass := c.PostForm("pass")

    if pass != "123" {
        fmt.Println("Ошибка")
        return
    }
})


Теперь при получении значения пароля в переменную `pass` уже не будет содержаться "pass=" - будет только сам пароль.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы