用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3599|回复: 5
收起左侧

[已解决] 一个关于html form的问题

[复制链接]
发表于 2009-11-13 09:46:22 | 显示全部楼层 |阅读模式
本帖最后由 heraldic 于 2009-11-13 11:02 编辑

最近在钻研 yinzhili  的大作 网上书店的源码,http://codeigniter.org.cn/forums/thread-2708-1-1.html

有个小问题,向大家求教:

在其目录中 views\console\logon.php 中,有这样一段代码:

<form name="consolelogin" id="consolelogin" method="POST" Action="logincheck">

我想问的就是红色标出的部分,一般form action指的是其他网页或者本网页的某个函数过程,请问这里是什么意思?
发表于 2009-11-13 10:19:40 | 显示全部楼层
本帖最后由 yinzhili 于 2009-11-13 10:25 编辑

这里的意思是当前控制器类中有个名叫 logincheck 的函数,用来处理表单。你仔细看看控制器源码就能找到了。

你这里所说的登录表单视图是由 console 控制器加载的,你看一下console控制器的源码(位于system/application/controllers/console.php),里面是不是有个 logincheck 函数?

我这些代码是很久以前写的,有些地方写得不是很规范(比如说有些地方没有写绝对路径),所以不要被我的坏习惯影响了。
 楼主| 发表于 2009-11-13 10:29:24 | 显示全部楼层
好快,没想到作者直接来回复,太感激了

当前控制器,应该是调用这个view的那个吧,我查询了源码,只有这个 Console controller 有调用:
$this->load->view('console/login');

确实,这个Console 里面有logincheck函数,而且也只有这个里面有这个函数

问题是我打开页面:
http://127.0.0.1/bookstore/index.php/console登录以后(确认密码和用户都是你初始的admin没错)
提示:


404 Page Not Found

The page you requested was not found.


这个现象不是固定的,有时候能正常进入后台管理界面的
发表于 2009-11-13 10:33:53 | 显示全部楼层
就像前面说的,这就是我之前的坏习惯,没有写绝对路径。你试着访问一下
http://127.0.0.1/bookstore/index.php/console/ (也就是加上一个斜杠),应该可以。
 楼主| 发表于 2009-11-13 10:39:40 | 显示全部楼层
本帖最后由 heraldic 于 2009-11-13 11:04 编辑

多谢yinzhili(一只梨?)

问题确实如此,解决了

按照你的规范化写法修改为可读性更大的:

<form name="consolelogin" id="consolelogin" method="POST" Action="<?php echo site_url('console/logincheck');?>">

或者直接修改地址:

http://127.0.0.1/bookstore/index.php/console/
发表于 2009-11-13 14:58:41 | 显示全部楼层
没错,确实应该用绝对路径,也就是用 site_url()

本版积分规则