ホームページ >バックエンド開発 >PHPチュートリアル >Smarty によって作成された登録およびログイン ページをお探しですか?
Smarty で作成された登録とログイン ページが必要です
Smarty で作成された登録とログイン ページのコードが必要です。また、プロジェクトの作成に必要なファイルのスクリーンショットを撮る必要があります。Baidu 検索は使用できません。これを通じてサムルティを学びたいと思っています。よろしくお願いします。
------ソリューションのアイデア----------------------
スマートなカスタム関数を自分で作成してください。仕様に従ってプラグインディレクトリに配置します... 例: b01b50f3975f0040cafcda29b40bd69e 関数名はloginで、次のいくつかがパラメータとして使用されます
Smarty は拡張性が高いので、必要な関数を自由に定義でき、仕様は非常にシンプルです。
たとえば、smarty_function_custom 関数名を次のように記述します。この方法では、プラグインディレクトリに置くだけです。
smarty の役割はインターフェース分離の定期的な置き換えだけではなく、キャッシュ技術が鍵となりますが、これは filemtime や crc32 などの検証にすぎません。
---- - -解決策のアイデア----------------------================== == ===sql========================
CREATE TABLE `user` (
`user_id` int(5) NOT NULL AUTO_INCREMENT 、
`user_name` varchar(20) NOT NULL、
`password` varchar(20) NOT NULL、
主キー (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET= utf8
<br />========================db.php=====================<br /><?php<br />class DB {<br /> private $host;<br /> private $db_name;<br /> private $user_name;<br /> private $password;<br /> private $conn;<br /> <br /> public function __construct($host, $user_name, $password, $db_name) {<br /> $this->host = $host;<br /> $this->user_name = $user_name;<br /> $this->password = $password;<br /> $this->db_name = $db_name;<br /> $this->connect();<br /> }<br /> public function connect() {<br /> $this->conn = mysql_connect($this->host, $this->user_name, $this->password) or die("数据库连接失败!");<br /> mysql_select_db($this->db_name);<br /> mysql_query("SET CHARACTER SET utf8");<br /> }<br /> public function getObj($sql) {<br /> $rs = mysql_query($sql, $this->conn) or die (mysql_error());<br /> $arr = array();<br /> while ($row = mysql_fetch_array($rs)) {<br /> if (!empty($row))<br /> $arr[] = $row;<br /> }<br /> return $arr;<br /> }<br /> public function add_data($table, $fields = array(), $values = array()) {<br /> $sql = "insert into " . $table . "(" ;<br /> for($i = 0; $i < count($fields); $i++) {<br /> if ($i < count($fields) - 1)<br /> $sql .= $fields[$i] . ',';<br /> else<br /> $sql .= $fields[$i] . ")";<br /> }<br /> $sql .= " values (";<br /> for($i = 0; $i < count($values); $i++) {<br /> if ($i < count($values) - 1)<br /> $sql .= "'" . $values[$i] . "'" . ',';<br /> else<br /> $sql .= "'" . $values[$i] . "')";<br /> }<br /> mysql_query($sql, $this->conn) or die (mysql_error());<br /> $insert_id = mysql_insert_id($this->conn) or die (mysql_error());<br /> return $insert_id;<br /> }<br /> public function close() {<br /> mysql_close($this->conn);<br /> }<br /> <br />}<br />$db = new DB('localhost', 'root', '', 'test');<br />?><br />==========================User类=====================================<br /><?php<br />require './Mysql/db.php';<br />?><br /><br /><?php<br />class User {<br /> private $user_name;<br /> private $password;<br /> private $table;<br /> function __construct($table, $user_name, $password) {<br /> $this->user_name = $user_name;<br /> $this->password = $password;<br /> $this->table = $table;<br /> }<br /> public function add_user() {<br /> global $db;<br /> $user_data = array($this->user_name, $this->password);<br /> return $db->add_data($this->table, array('user_name', 'password'), $user_data);<br /> }<br /> public function get_user($user_name) {<br /> global $db;<br /> $sql = "select * from $this->table where user_name = '" . $user_name . " '";<br /> return $db->getObj($sql);<br /> }<br /> <br />}<br />?><br /><br />===================user.php================================<br /><?php<br />session_start();<br />header("Content-type: text/html; charset=utf-8"); <br />require 'User.class.php';<br />require './Smarty-2.6.26/libs/Smarty.class.php';<br />$smarty = new Smarty;<br />$smarty->compile_check = true;<br />$smarty->debugging = false;<br /><br />if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'register') {<br /> $user_name = $_REQUEST['user'];<br /> $password = $_REQUEST['password'];<br /> $user = new User('user', $user_name, $password);<br /> $user_arr = $user->get_user($user_name);<br /> if (empty($user_arr)) {<br /> $user->add_user();<br /> echo "用户注册成功!" . "<br/>";<br /> } else {<br /> echo "用户已经存在!" . "<br/>";<br /> }<br />} elseif (isset($_REQUEST['act']) && $_REQUEST['act'] == 'login') {<br /> $user_name = $_REQUEST['user'];<br /> $password = $_REQUEST['password'];<br /> $user = new User('user', $user_name, $password);<br /> $user_arr = $user->get_user($user_name);<br /> if (empty($user_arr)) { <br /> echo "用户不存在!" . "<br/>";<br /> } else {<br /> if ($user_arr[0]['user_name'] == $user_name && $user_arr[0]['password'] == $password) {<br /> echo "登录成功!"; <br /> /***<br /> * 然后就是记录session,跳转到登录成功的页面<br /> * 把用户名使用smarty常用的assign变量方法,在注册成功的页面取出来,<br /> */<br /> }<br /> }<br />} elseif (isset($_REQUEST['act']) && $_REQUEST['act'] == 'login_page'){<br /> $smarty->display('login.html');<br />} elseif (isset($_REQUEST['act']) && $_REQUEST['act'] == 'register_page'){<br /> $smarty->display('register.html');<br />} else {<br /> $smarty->display('register.html');<br />}<br /><br />?><br /><br /><br />==============register.html==============<br /><!DOCTYPE html><br /><html><br /> <head><br /> <title>用户注册</title><br /> <meta charset="UTF-8"><br /> </head><br /> <body><br /> <form action="/csdn/user.php" method="post" /><br /> User Name: <input type="text" name="user" /><br/><br/><br /> Password: <input type="password" name="password" /><br/><br/><br /> <input type="submit" name="register" value="register"/> <br><font color='#FF8000'>------解决思路----------------------</font><br> <a href="/csdn/user.php?act=login_page">登录</a> <br /> <input type="hidden" name="act" value="register" /><br /> </form><br /> </body><br /></html><br /><br />==============login.html=========================<br /><!DOCTYPE html><br /><html><br /> <head><br /> <title>用户登录</title><br /> <meta charset="UTF-8"><br /> </head><br /> <body><br /> <form action="/csdn/user.php" method="post" /><br /> User Name: <input type="text" name="user" /><br/><br/><br /> Password: <input type="password" name="password" /><br/><br/><br /> <input type="submit" name="login" value="login"/> <br><font color='#FF8000'>------解决思路----------------------</font><br> <a href="/csdn/user.php?act=register_page">注册</a> <br /> <input type="hidden" name="act" value="login" /><br /> </form><br /> </body><br /></html><br /><br /><br />