昨晚给朋友讲解php,做一个简单的登陆退出小系统,做好之后,代码放上来,java程序员可以顺便学点php的知识哦!
在windows下开发PHP,我首选 AppServ 和 eclipse for php,这两个均可以从谷歌搜索下载到,其中安装Appserv中的mysql的时候,用户名密码均为: root 数据库安装好之后,创建一个数据库为 user,user数据库有个表叫做admin,admin有三个属性name,pass,id。name 和 pass 都是varchar,长度为50,id为bigint类型,自增长类型数据,设为主键。
其中的sql脚本如下:
/* SQLyog 企业版 - MySQL GUI v8.14 MySQL - 5.0.51b-community-nt-log : Database - user ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; CREATE DATABASE /*!32312 IF NOT EXISTS*/`user` /*!40100 DEFAULT CHARACTER SET gbk COLLATE gbk_bin */; USE `user`; /*Table structure for table `admin` */ DROP TABLE IF EXISTS `admin`; CREATE TABLE `admin` ( `name` varchar(255) collate gbk_bin default NULL, `pass` varchar(255) collate gbk_bin default NULL, `id` bigint(20) NOT NULL auto_increment, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=gbk COLLATE=gbk_bin; /*Data for the table `admin` */ insert into `admin`(`name`,`pass`,`id`) values ('admin','admin',1),('yy','yy',2),('root','root',3),('root','root',4),('root','root',5),('yy','yy',6),('gg','gg',7),('a','a',12),('','',11); /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
下面是代码,注释都在代码里。
首先是:index.php 做一个简单的表单
<html> <head> <title>欢迎来登录</title> <script type="text/javascript" src="js/check.js"></script> </head> <body> 欢迎来登陆<hr /> <form action="login.php" method="post" onsubmit="return check();"> 用户名:<input type="text" name="username" id="name"/><br /> 密 码:<input type="text" name="password" id="pass" /><br /> <input type="submit" value="登陆"> <a href="getuser.php">注册</a> </form> </body> </html>
然后是处理程序login.php,这里面涉及到php对mysql的连接,查询......
<?php session_start(); $username = $_POST['username']; $pass = $_POST['password']; $link = mysql_connect('localhost', 'root', 'root'); if (!$link) { die('Could not connect: ' . mysql_error()); } else { mysql_select_db('user', $link) or die ('Can\'t use user : ' . mysql_error()); $sql = "select * from admin where name='".$username."' and pass='".$pass."'"; $result = mysql_query($sql) or die("Invalid query: " . mysql_error()); if (mysql_num_rows($result) > 0){ mysql_close($link); $_SESSION['user'] = 'user'; echo "<script type='text/javascript'>alert('登陆成功!');</script>"; echo "<script type='text/javascript'>window.location.href='usercenter.php'</script>"; } else { echo "<script type='text/javascript'>alert('登陆失败!');</script>"; echo "<script type='text/javascript'>window.location.href='index.php'</script>"; } } ?>
紧接着是:usercenter.php,这里面只是个登陆成功之后的界面,里面有个session验证,还有个退出的超链接
<?php session_start(); if (! (isset($_SESSION['user']))) { echo "<script type='text/javascript'>alert('登陆失败!');</script>"; echo "<script type='text/javascript'>window.location.href='index.php'</script>"; } ?> <html> <head> <title>个人中心</title> </head> <body> 欢迎你回来!| <a href="logout.php">退出</a> </body> </html>
最后是退出代码 logout.php
<?php session_start(); session_unset(); session_destroy(); echo "<script type='text/javascript'>alert('退出成功!');</script>"; echo "<script type='text/javascript'>window.location.href='index.php'</script>"; ?>
注册的页面是:getuser.php,只是做一个简单的表单,跟index.php几乎一样,只是修改了form的action
<html> <head> <title>欢迎来注册</title> <script type="text/javascript" src="js/check.js"></script> </head> <body> 欢迎来注册<hr /> <form action="register.php" method="post" onsubmit="return check();"> 用户名:<input type="text" name="username" id="name"/><br /> 密 码:<input type="text" name="password" id="pass" /><br /> <input type="submit" value="注册"> </form> </body> </html>
注册处理程序:register.php
<?php session_start(); session_unset(); session_destroy(); $link = mysql_connect('localhost', 'root', 'root'); if (!$link) { die('Could not connect: ' . mysql_error()); } else { mysql_select_db('user', $link) or die ('Can\'t use user : ' . mysql_error()); $name = $_POST['username']; $pass = $_POST['password']; $sql = "insert into admin(name,pass) values('".$name."','".$pass."')"; mysql_query($sql) or die("Invalid query: " . mysql_error()); echo "<script type='text/javascript'>alert('注册成功,请登陆!');</script>"; echo "<script type='text/javascript'>window.location.href='index.php'</script>"; } ?>
最后我还写了段脚本,用来检验用户名和密码不能为空。
function check(){ var name = document.getElementById('name').value; var pass = document.getElementById('pass').value; if (name == "" || name == null) { alert("姓名不能为空!"); document.getElementById('name').focus(); return false; } if (pass == "" || pass == null) { alert("密码不能为空!"); document.getElementById('pass').focus(); return false; } return true; }
整个小小的项目,可以锻炼下一个人的Web基础吧,源例子代码在此,大家可以下载。
http://www.jyguagua.com/go/download.php?id=30
文章的脚注信息由WordPress的wp-posturl插件自动生成