- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想在Beego下使用captcha生成验证码。但是它有错误无效的内存地址或零指针取消引用。有谁知道如何解决这个问题?谢谢。
Request Method: GET
Request URL: /accounts/forgotpassword
RemoteAddr: 127.0.0.1
Stack
C:/Go/src/runtime/asm_amd64.s:573
C:/Go/src/runtime/panic.go:505
C:/Go/src/text/template/exec.go:137
C:/Go/src/runtime/asm_amd64.s:573
C:/Go/src/runtime/panic.go:505
C:/Go/src/runtime/panic.go:63
C:/Go/src/runtime/signal_windows.go:167
D:/Google Drive/Work/GoWorkspace/src/github.com/astaxie/beego/utils/captcha/captcha.go:186
D:/Google Drive/Work/GoWorkspace/src/github.com/astaxie/beego/utils/captcha/captcha.go:164
D:/Google Drive/Work/GoWorkspace/src/github.com/astaxie/beego/utils/captcha/captcha.go:267
C:/Go/src/runtime/asm_amd64.s:573
C:/Go/src/reflect/value.go:447
C:/Go/src/reflect/value.go:308
C:/Go/src/text/template/exec.go:667
C:/Go/src/text/template/exec.go:535
C:/Go/src/text/template/exec.go:432
C:/Go/src/text/template/exec.go:405
C:/Go/src/text/template/exec.go:231
C:/Go/src/text/template/exec.go:239
C:/Go/src/text/template/exec.go:194
C:/Go/src/text/template/exec.go:177
C:/Go/src/html/template/template.go:137
D:/Google Drive/Work/GoWorkspace/src/github.com/astaxie/beego/template.go:66
D:/Google Drive/Work/GoWorkspace/src/github.com/astaxie/beego/controller.go:283
D:/Google Drive/Work/GoWorkspace/src/github.com/astaxie/beego/controller.go:234
D:/Google Drive/Work/GoWorkspace/src/github.com/astaxie/beego/controller.go:214
D:/Google Drive/Work/GoWorkspace/src/github.com/astaxie/beego/router.go:863
C:/Go/src/net/http/server.go:2694
C:/Go/src/net/http/server.go:1830
C:/Go/src/runtime/asm_amd64.s:2361
我的代码:conf\app.conf
# Cache Provider
CacheProvider = redis
CacheConnection = {"conn":"127.0.0.1:6379"}
controllers\main.go
package controllers
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/cache"
"github.com/astaxie/beego/utils/captcha"
)
var(
cpt *captcha.Captcha
CacheProvider string = beego.AppConfig.String("CacheProvider")
CacheConnection string = beego.AppConfig.String("CacheConnection")
)
func init() {
store, _ := cache.NewCache(CacheProvider, CacheConnection)
cpt = captcha.NewWithFilter("/accounts/captca/", store)
}
views\forgotpasswordcontroller\get.tpl
<div class="w3-container w3-center">
<form method="post" id="mainForm"class="w3-container" style="margin-top:90px">
<div class="w3-card " style=" padding-left: 0px;
padding-right: 0px; margin-top: 30px;">
<div class="w3-container">
<h1>Reset password</h1>
</div><div class="w3-container" style=" padding-bottom: 16px;">
{{create_captcha}}
<input type="text" class="w3-input "name="captcha"style="outline: none;">
<p style="text-align: left;margin-top: 0px;color:red">
{{if .Errors.Captcha}}
{{.Errors.Captcha}}{{else}}‌{{end}}</p>
<input type="submit" value="Request reset password" onclick="login()" class="w3-button w3-indigo w3-block w3-round-large">
</div>
</div>
</form>
</div>
controllers\forgotpassword.go
package controllers
import (
"github.com/astaxie/beego"
)
type ForgotPasswordController struct {
beego.Controller
}
func (c *ForgotPasswordController) Get() {
beego.Debug("In ForgotPasswordController:Get - Start")
c.Layout = "shared/layout.tpl"
}//end ForgotPasswordController:Get()
func (this *ForgotPasswordController) Post() {
beego.Debug("In ForgotPasswordController:Post - Start")
captchaVerification := cpt.VerifyReq(this.Ctx.Request)
if !captchaVerification {
errormap := make(map[string]string)
beego.Debug("In ForgotPasswordController:Post - captchaVerification Got wrong captcha")
errormap["Captcha"] = "Sorry but the characters you endered didn't match. Please try again"
this.Data["Errors"] = errormap
return
}
} //end ForgotPassword() func
环境
最佳答案
刚刚在我的本地测试了你的代码。错误来自缓存创建部分。
store, err := cache.NewCache(CacheProvider, CacheConnection)
if err != nil {
log.Fatal(err.Error())
os.Exit(0)
}
要获取详细错误,请检查从 cache.NewCache()
返回的 err
变量。此外,最好始终记录来自错误对象的任何可能错误,不要忽略它。
错误日志如下:
2018/11/14 11:13:24 cache: unknown adapter name "redis" (forgot to import?)
出现上述错误是因为缓存包找不到redis
适配器。那是因为你还没有导入包。所以让我们尝试导入它,然后你的问题就解决了。
import (
"fmt"
"log"
"os"
"github.com/astaxie/beego"
"github.com/astaxie/beego/cache"
"github.com/astaxie/beego/utils/captcha"
_ "github.com/astaxie/beego/cache/redis" // <----- this one
)
由于我们不直接与缓存redis包交互,所以用_
导入。
关于go - 使用beego验证码: invalid memory address or nil pointer dereference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53292963/
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .
有谁知道区别吗? 最佳答案 如果您想玩可移植的可执行文件,就没有办法绕过 the specs 的副本。 . 已经有一段时间了,但如果内存正确地为我服务:IT 和 IAT 是相同的,除了 IAT 在解析
我正在尝试在 ec2-instance 上安装 Hadoop-2.6.0。 我下载并安装了 Hadoop。我还设置了环境变量。尝试启动 hdfs 服务时出现以下错误。 [ec2-user@ip-10-
我写了一个示例程序。如果我打印 pa 和 pb 的地址都是不同的。你能告诉我为什么会这样吗? #include using namespace std; class A { int x; }; cla
*&x 是否总是等于 x?如果不是,什么时候不是? &*x 是否总是等于 x?如果不是,什么时候不是? 我的猜测是 (1) 总是正确的,但 (2) 并不总是正确的,因为 x 可能并不总是一个指针,所以
我有一个 Address 类,它是一个非常简单的元数据容器。 (在底部。) 我有一个 Address 对象数组,它不是可选的 - 它肯定存在。我还有一个类维护这些引用的可选列表,如下所示: publi
我在理解 wsdl 中 soap:address 和 http:address 标签之间的区别时遇到了一些问题。它可以互换吗?我可以使用 soap:address 代替 http:address 吗?
关于AT (...) ld 的指令, this source状态: AT ( ldadr ) The expression ldadr that follows the AT keyword spec
我正在使用 Tensorflow 的 C API 在并行模拟中进行推理。因为我想要 AVX 支持,所以我从源代码编译了 Tensorflow。我链接它并使用 wmake 编译所有内容。 现在,如果我开
就像标题一样,我是cxf的新手。只是想知道 soap:address 和发布时在应用程序上下文中的 jaxws:endpoint 中指定的地址有什么区别? 此外,在jaxws:endpoint中,地址
#include #include using namespace std; class myexception: public exception { virtual const char*
C/C++ 应用程序抛出该错误,如何开始调试(比添加打印语句更好的主意)? 最佳答案 第二个地址是不是一个非常小的数字,比如 0x00000001 或 0x00000000?如果是这样,您可能只是忘记
如果我没记错的话,几天前它曾经显示“localhost”。我不确定是什么改变了 server.address().address 返回双冒号 (::) 。我在这里读到,如果它可用,它会返回一个 IPv
我现在正在使用 MPI 练习简单的并行编程。该代码旨在通过随机生成 N*N 矩阵并使用简单的邻域加权平均滤波器来模拟图像处理,而不处理第一行和最后一行和列。我在编译时没有出错,但在运行时出现了一些我无
这个问题在这里已经有了答案: How to retrieve range.address which is longer than 255 character? (2 个回答) 5年前关闭。 觉得很奇
当我尝试启动 Apache2 时收到以下消息: * Restarting web server apache2
我正在阅读一些有关指针和结构的内容,但我就是不明白:微 Controller 的头文件中有这样的内容: #define NVIC_BASE (SCS_BASE + 0x0100) /*ICER[0]
我有 alertmanager 作为 docker 容器在两台不同的主机上运行,并且两者都应该作为集群运行。两台机器都在同一个 vpc 内,并与私有(private) IP 地址通信。 我需要知道
在 Organization schema两者都有属性 address和 location . 什么时候应该使用每一个的真实世界例子? 地点 事件、组织或行动的地点。 地址 项目的物理地址。 最佳答案
我想要具有 FIFO 的服务器-客户端模型和客户端获取目录路径,但我收到错误“读:错误地址”和“写:错误地址”。 客户端 服务器错误:“读取:地址错误” 客户端错误:“写入:地址错误” 最佳答案 您可
我是一名优秀的程序员,十分优秀!