thinkphp框架有感(一)
一:每一個html表單都需要在控制器中進行調(diào)用,否則無法對表單中的數(shù)據(jù)進行控制。
二:html中,<form>標簽里的action地址應(yīng)指向控制器中所對應(yīng)的方法名。
三:在瀏覽器中如果要通過某個控制器訪問視圖,應(yīng)訪問到該控制器中的各個方法。
如:http://localhost/tpone/index.php/Home/Index/register
不知為何我直接訪問http://localhost/tpone/index.php/無法實現(xiàn)頁面跳轉(zhuǎn)的功能,但訪問到方法層時就可以.
四:model
并不是必須要建,我目前對model不是很收悉,這次的程序完成品中,我最后是將所有的操作數(shù)據(jù)庫代碼寫在了controller中,沒有建立model.
五:多用var_dump()進行調(diào)試,它可以判斷出具體問題到底出在哪。
六:之前整個程序中困擾我最厲害的是各個文件的調(diào)用路徑和配置問題,好吧,其實我現(xiàn)在這方面也比較模糊.
這次”thinkphp框架實現(xiàn)注冊登錄程序“的最終成品一共由四個文件組成,一個控制器,三個html頁面.
具體功能:
1,注冊頁面輸入信息,信息會被寫入后臺數(shù)據(jù)庫.
2,登錄界面輸入正確的用戶名和密碼后會跳轉(zhuǎn)到新的頁面將數(shù)據(jù)庫中所有注冊人的信息展示出來(除了密碼).
3,登錄和注冊頁面之間可通過按鈕相互跳轉(zhuǎn).
IndexController.class.php文件:
- <?php
- namespace Home/Controller;
- use Think/Controller;
- class IndexController extends Controller
- {
- //登錄控制器
- public function Index()
- {
- $this->display(index);//加載view/index目錄下的index.html文件
- }
- function login()
- {
- $User = M("User"); // 進行數(shù)據(jù)庫表的實例化,User是我的表名。得到$User對象。
- $data['user'] = $_POST["user"];
- $data['password'] = $_POST["password"];
- if($data['user'] == "" || $data['password'] == "")
- {
- echo "<script>alert('請輸入用戶名或密碼!'); history.back();</script>"; //js程序,彈出對話框顯示信息,并返回上個頁面
- }
- else
- {
- $result = $User ->query("select user,password from user where user = '$_POST[user]' and password = '$_POST[password]'");//調(diào)用$User對象的query方法來執(zhí)行sql語句。和數(shù)據(jù)庫中的用戶名和密碼比對,看是否正確
- if($result)
- {
- $this->success('登錄成功', 'result');
- }
- else
- {
- $this->error('用戶名或密碼不正確!');
- }
- }
- }
- //--------------------------------------------------------------------------------------------------------------
- //注冊控制器
- public function Register()
- {
- $this->display(register);//加載view/index目錄下的register.html文件
- }
- function zhuce()
- {
- $User = M("User"); // 進行數(shù)據(jù)庫表的實例化,User是我的表名。得到$User對象。
- $data['user'] = $_POST["user"];
- $data['password'] = $_POST["password"];
- $data['passwordcheck'] = $_POST["passwordcheck"];
- $data['sex'] = $_POST["sex"];
- $data['subject'] = $_POST["subject"];
- if($data['user'] == "" || $data['password'] == ""|| $data['passwordcheck'] == ""|| $data['sex'] == ""|| $data['subject'] == "")
- {
- echo "<script>alert('請?zhí)顚懲暾?#39;);history.back(); </script>"; //js程序,彈出對話框顯示信息,并返回上個頁面
- }
- else
- if($data['password'] == $data['passwordcheck']) //密碼和確認密碼是否一致
- {
- $result = $User ->query("select user from user where user = '$_POST[user]'");
- if($result) //如果為真,則已存在
- {
- echo "<script>alert('用戶名已存在');history.back();</script>";
- }
- else
- {
- $User->add($data);
- if($User)
- echo "<script>alert('注冊成功!');history.back();</script>";
- else
- throw_exception("數(shù)據(jù)庫添加失敗");
- }
- }
- else
- {
- echo "<script>alert('密碼不一致!');history.back();</script>";
- }
- }
- //--------------------------------------------------------------------------------------------------------------
- //登錄后顯示結(jié)果控制器
- function result()
- {
- $User = M("User");
- $data=$User->select();
- $this->data=$data;
- $this->display();
- } //Vevb.com
- }
- ?>
index.html文件:
- <!DOCTYPE
- html
- PUBLIC
- "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html
- xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta
- http-equiv="Content-Type"
- content="text/html; charset=utf-8"
- />
- <title>登錄頁面</title>
- <style
- type="text/css">
- #form1
- {
- width:250px;
- height:250px;
- margin:20px
- auto;
- border:1px
- #039
- solid;
- padding:20px
- 20px;
- }
- </style>
- <script
- type='text/javascript'>
- function
- freshVerify()
- {
- document.getElementByIdx_x_x_xx('verifyImg').src='__URL__/verify/'+Math.random();
- }
- </script>
- </head>
- <body>
- <form
- name="form1" id="form1" method="post"
- action="__URL__/login">
- 登錄帳號:<br/><br/>
- 姓名:<input type="text" name="user"/>
- <br/><br/>
- 密碼:<input type="password"
- name="password"/>
- <br/><br/>
- <input type="submit"
- name="submit" value="登錄"/>
- <a href="register.html">注冊</a>
- </form>
- </body>
- </html>
register.html文件:
- <!DOCTYPE
- html
- PUBLIC
- "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html
- xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta
- http-equiv="Content-Type"
- content="text/html; charset=utf-8"
- />
- <title>注冊頁面</title>
- <style
- type="text/css">
- #form1
- {
- width:250px;
- height:250px;
- margin:20px
- auto;
- border:1px
- #039
- solid;
- padding:20px
- 20px;
- }
- </style>
- <script
- type='text/javascript'>
- function
- freshVerify()
- {
- document.getElementByIdx_x_x_xx('verifyImg').src='__URL__/verify/'+Math.random();
- }
- </script>
- </head>
- <body>
- <form
- name="form1" id="form1" method="post" action="__URL__/zhuce">
- 注冊帳號:<br/><br/>
- 姓名:<input type="text" name="user" maxlength="16"/><br /><br />
- 性別:<input type="radio" name="sex" value="男" maxlength="16" />男
- <input
- type="radio"
- name="sex" value="女" maxlength="16"/>女<br /><br />
- 專業(yè):<input
- type="text"
- name="subject" maxlength="16"/><br /><br />
- 密碼:<input type="password"
- name="password"
- maxlength="16"/><br /><br />
- 確認密碼:<input type="password"name="passwordcheck" maxlength="16"/><br /><br />
- <input type="submit" name="btn1"
- id="btn1"
- value="提交" />
- <a
- href="index.html">登錄</a>
- </form>
- </body>
- </html>
result.thml文件:
- <html>
- <head>
- <title>信息頁面</title>
- </head>
- <body>
- <b>目前已注冊的用戶</b><br/><br />
- <foreach name="data" item="vo">
- <li>用戶名:{$vo.user}
- 性別:{$vo.sex}
- 專業(yè):{$vo.subject}<br/><br />
- </li>
- </foreach>
- </body>
- </html>
新聞熱點
疑難解答
圖片精選