十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创建conn.php,连接数据库。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的万荣网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
$dns = 'mysql:host=127.0.0.1;dbname=test';
$username = 'root';
$password = 'root';
// 1.连接数据库,创建PDO对象
$pdo = new PDO($dns,$username,$password);
创建login.html,登陆页面。
用户名
密 码
创建login.php,验证账号密码。
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST["submit"])){
exit("错误执行");
}//检测是否有submit操作
include('conn.php');//链接数据库
$name = $_POST['name'];//post获得用户名表单值
$pwd = sha1($_POST['password']);//post获得用户密码单值
if ($name $pwd){//如果用户名和密码都不为空
$sql = "select * from user where username = '$name' and password='$pwd'";//检测数据库是否有对应的username和password的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
if($stmt-fetch(PDO::FETCH_BOUND)){//0 false 1 true
header("refresh:0;url=welcome.html");//如果成功跳转至welcome.html页面
exit;
}else{
echo "用户名或密码错误";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";//如果错误使用js 1秒后跳转到登录页面重试;
}
}else{//如果用户名或密码有空
echo "表单填写不完整";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";
//如果错误使用js 1秒后跳转到登录页面重试;
}
$pdo = null;
创建signup.html,注册页面
用户名:
密 码:
创建signup.php
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST['submit'])){
exit("错误执行");
}//判断是否有submit操作
$name=$_POST['name'];//post获取表单里的name
$pwd = sha1($_POST['password']);//post获取表单里的password
include('conn.php');//链接数据库
$sql="insert into user(id,username,password) values (null,'$name','$pwd')";//向数据库插入表单传来的值的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
$stmt-fetch(PDO::FETCH_BOUND);
if (!$stmt){
die('Error: ' . $stmt-getMessage());//如果sql执行失败输出错误
}else{
echo "注册成功";//成功输出注册成功
}
$pdo = null;//关闭数据库
1. 查看具体值:
echo $result[0];
2. 打印数组(使用源代码看的情况下会很清楚)
print_r($row);
3. 使用php自带的调试函数看数据结构:
var_dump($row);
结果已经有了,我就说下这句话的区别\x0d\x0a\x0d\x0amysql_select_db,字面上就能理解,选择数据库\x0d\x0a\x0d\x0a去PHP手册中可以发现该函数的返回值是bool,也就是布尔值\x0d\x0abool mysql_select_db ( string $database_name [, resource $ link_identifier ] )\x0d\x0a\x0d\x0a只是确定操作是否成功\x0d\x0a\x0d\x0a$result = mysql_query($sql, $link); // 执行查询语句\x0d\x0a\x0d\x0a是执行查询语句,这时返回的是\x0d\x0aresource mysql_query ( string $query [, resource $link_identifier ] )\x0d\x0a\x0d\x0a资源符号,通过var_dump($result)可以看到该变量的类型,不是数组\x0d\x0a\x0d\x0a随后通过mysql_fetch_array($result);获取实际查询语句所能获取的数据\x0d\x0a每次操作,返回一行数据\x0d\x0a该操作会变相的移动该资源的指针,PHP的概念里面没有指针,但需要知道该函数可以多次执行\x0d\x0a概念和foreach一致\x0d\x0a\x0d\x0a所以通过\x0d\x0awhile ($bookInfo = mysql_fetch_array($result)){\x0d\x0a\x0d\x0a}\x0d\x0a可以获取所有的行数据\x0d\x0a如果没有数据会返回false,所以while会自动停止循环
面向对象写法:登录模板login.html,处理类,LoginAction.class.php。给你个最简单的过程化代码login.php:
html
head
meta http-equiv="content-type" content="text/html; charset=utf-8"
titleLogin/title
/head
body
div id="pic"
a href="#" title="立刻体检"img src="../img/login.jpg"//a
/div
div id="input"
form action="do_login.php" method="post"
p class="name"用户名:input class="in" type="text" name="username"//p
p class="name"密nbsp;nbsp;码:input class="in" type="password" name="password"//p
input id="deng" type="image" src="../img/login.gif" title="登录" name="submit" value="登录"/
/form
/div
/body
/html
dologin.php:
?php
session_start();
include './config.php';
if(isset($_POST['submit'])){
$username=$_POST['username'];
$password=md5($_POST['password']);
$error=array();
$sql="select * from user where username='{$username}' and password='{$password}'";
$result= mysql_query($sql);
if(mysql_num_rows($result)0){
$_SESSION['username']=$username;
header("location:./head.php");
exit;
}else{
$error[]="用户名或密码错误,请重新输入!";
$_SESSION['error']=$error;
header("location:./error.php?from=login.php");
exit;
}
mysql_close();
}
?