0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的\函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。
1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

2、$row["id"] 的速度是$row[id]的7倍。

3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。

4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。

5、注销那些不用的变量尤其是大数组,以便释放内存。

6、尽量避免使用__get,__set,__autoload。

7、require_once()代价昂贵。

8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。

阅读全文 »

1 设计数据库表

sql 在已有的数据库里创建user表,id,username,password三个字段享

create table user(id int(10) not null auto_increment,username varchar(30),password varchar(40),primary key(id));

2 connect.php 数据库配置文件

<?php
    $server="localhost";//主机
    $db_username="";//你的数据库用户名
    $db_password="";//你的数据库密码

    $con = mysql_connect($server,$db_username,$db_password);//链接数据库
    if(!$con){
        die("can't connect".mysql_error());//如果链接失败输出错误
    }
    
    mysql_select_db('test',$con);//选择数据库(我的是test)
?>

3 signup.html 注册表单

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>用户注册页面</title>
    </head>
    <body>
        <form action="signup.php" method="post">
            <p>用户名:<input type="text" name="name"></p>
            <p>密  码: <input type="text" name="password"></p>
            <p><input type="submit" name="submit" value="注册"></p>
        </form>
    </body>
</html>

4 signup.php 注册程序

<?php 
    header("Content-Type: text/html; charset=utf8");

    if(!isset($_POST['submit'])){
        exit("错误执行");
    }//判断是否有submit操作

    $name=$_POST['name'];//post获取表单里的name
    $password=$_POST['password'];//post获取表单里的password

    include('connect.php');//链接数据库
    $q="insert into user(id,username,password) values (null,'$name','$password')";//向数据库插入表单传来的值的sql
    $reslut=mysql_query($q,$con);//执行sql
    
    if (!$reslut){
        die('Error: ' . mysql_error());//如果sql执行失败输出错误
    }else{
        echo "注册成功";//成功输出注册成功
    }

    

    mysql_close($con);//关闭数据库



注册流程完成,下面是用户登录

5 login.html 登录表单

<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登陆</title>
    </head>
    <body>
        <form name="login" action="login.php" method="post">
                <p>用户名<input type=text name="name"></p>
                <p>密 码<input type=password name="password"></p>
                <p><input type="submit" name="submit" value="登录"></p>
            </form>
    </body>
</html>

6 login.php 登录程序

<?PHP
    header("Content-Type: text/html; charset=utf8");
    if(!isset($_POST["submit"])){
        exit("错误执行");
    }//检测是否有submit操作 

    include('connect.php');//链接数据库
    $name = $_POST['name'];//post获得用户名表单值
    $passowrd = $_POST['password'];//post获得用户密码单值

    if ($name && $passowrd){//如果用户名和密码都不为空
             $sql = "select * from user where username = '$name' and password='$passowrd'";//检测数据库是否有对应的username和password的sql
             $result = mysql_query($sql);//执行sql
             $rows=mysql_num_rows($result);//返回一个数值
             if($rows){//0 false 1 true
                   header("refresh:0;url=welcome.html");//如果成功跳转至welcome.html页面
                   exit;
             }else{
                echo "用户名或密码错误";
                echo "
                    <script>
                            setTimeout(function(){window.location.href='login.html';},1000);
                    </script>

                ";//如果错误使用js 1秒后跳转到登录页面重试;
             }
             

    }else{//如果用户名或密码有空
                echo "表单填写不完整";
                echo "
                      <script>
                            setTimeout(function(){window.location.href='login.html';},1000);
                      </script>";

                        //如果错误使用js 1秒后跳转到登录页面重试;
    }

    mysql_close();//关闭数据库
?>

7 welcome.html 登录成功跳转页面

<!doctype html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登陆成功</title>
    </head>
    <body>
        欢迎光临
    </body>
</html>

至此一个简单的完整的注册登录系统完成,代码很简单没有考虑验证安全性健壮性,后面会一步步完善,使之强大

创建数组
在JavaScript多种方式创建数组

构造函数

1.无参构造函数,创建一空数组

var a1=new Array();

2.一个数字参数构造函数,指定数组长度(由于数组长度可以动态调整,作用并不大),创建指定长度的数组

var a2=new Array(5);

3.带有初始化数据的构造函数,创建数组并初始化参数数据

var a3=new Array(4,'hello',new Date());

字面量

1.使用方括号,创建空数组,等同于调用无参构造函数

var a4=[];

2.使用中括号,并传入初始化数据,等同于调用调用带有初始化数据的构造函数

var a5=[10];

注意点

1.在使用构造函数创建数组时如果传入一个数字参数,则会创建一个长度为参数的数组,如果传入多个,则创建一个数组,参数作为初始化数据加到数组中

var a1=new Array(5);
            console.log(a1.length);//5
            console.log(a1); //[] ,数组是空的

            var a2=new Array(5,6);
            console.log(a2.length);//2
            console.log(a2); //[5,6]

但是使用字面量方式,无论传入几个参数,都会把参数当作初始化内容

var a1=[5];
            console.log(a1.length);//1
            console.log(a1); //[5]

            var a2=[5,6];
            console.log(a2.length);//2
            console.log(a2); //[5,6]

2.使用带初始化参数的方式创建数组的时候,最好最后不要带多余的”,”,在不同的浏览器下对此处理方式不一样

var a1=[1,2,3,];
console.log(a1.length);
console.log(a1);

这段脚本在现代浏览器上运行结果和我们设想一样,长度是3,但是在低版本IE下确实长度为4的数组,最后一条数据是undefined

阅读全文 »

第一次布局.. 看来还是要学点前端.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " 
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html lang="en">
    <head>
    
        <meta charset="utf-8">
        <title>李凯的布局测试</title>
        <style type="text/css">
        *{
            margin: 0px;
        }

        #container{
            width: 1000px;
            background-color: grey;
            margin: 0px auto;
        }
        #header{
            height: 90px;
            background-color: #96b97d;
        }
        #main{
            height: 800px;
            background-color: #8050D1;
            margin-top: 10px;
        }
        #zuo{
            width: 300px;
            height: 100%;
            background-color: red;
            float: left;
        }
        #you{
            width: 700px;
            height: 100%;
            background-color: #917419;
        }
        #footer{
            height: 90px;
            background-color: #911963;
        }
        .border{
            width:  200px;
            height: 200px;
            border: 10px solid blue;
            padding: 20px;
            background: red;


        </style>
    </head>
    <body>
        <div id="container">
        <div id="header">
            <div id="logo"></div>
        </div>
        <div id="main">
            <div id="zuo"></div>
            <div id="you"></div>
        </div>
        <div id="footer"></div>
        </div>

        <div class="border">12312312312</div>
    </body>
</html>

在发表这个观点之前,网络上有很多争论的声音
   譬如:

         博客又没几个人看,搞这个有啥用
         目前很多地方都不兼容,得不偿失
         其实很简单,装逼本身就是写博客的一部分