1,登陆测试页面代码login.html:
<!DOCTYPE HTML>
<html dir="ltr" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Web 2.0 Login Form</title>
<!--- CSS --->
<link rel="stylesheet" href="style.css" type="text/css" />
<!--- Javascript libraries (jQuery and Selectivizr) used for the custom checkbox --->
<!--[if (gte IE 6)&(lte IE 8)]>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="selectivizr.js"></script>
<noscript><link rel="stylesheet" href="fallback.css" /></noscript>
<![endif]-->
</head>
<body>
<div id="container">
<form action="welcome.php" method="post">
<div class="login">LOGIN</div>
<div class="username-text" >Username:</div>
<div class="password-text" >Password:</div>
<div class="username-field">
<input type="text" name="username" value="azmind" />
</div>
<div class="password-field">
<input type="password" name="password" value="azmind" />
</div>
<input type="checkbox" name="remember-me" id="remember-me" /><label for="remember-me">Remember me</label>
<div class="forgot-usr-pwd">Forgot <a href="#">username</a> or <a href="#">password</a>?</div>
<input type="submit" name="submit" value="GO" />
</form>
</div>
<div id="footer">
Copyright © 2015.Company name All rights reserved.<a target="_blank" href="#">网页模板</a>
</div>
<div style="display:none"><script src='http://v7.cnzz.com/stat.php?id=155540&web_id=155540' language='JavaScript'
charset='gb2312'></script></div>
<div style="width:960px;margin:auto;"><a href="welcome.php?name=tianlei" style="text-decoration:none;">测试get</a></div>
</body>
</html>
2,处理登陆信息显示页面welcome.php:
<!DOCTYPE HTML>
<html dir="ltr" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Web 2.0 Login Form by Azmind.com</title>
<!--- CSS --->
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="container">
<div class="welcome">
<div class="welcome-user">Welcome
<?php
if(empty($_POST["username"])) //判断字符串是否为空
{
echo "<script type=text/javascript>alert('请输入用户名!');</script>"; //前端输出javascript代码
}
else
{
echo $_POST["username"];
}
?>
</div>
<div class="welcome-text">
<?php
if(empty($_GET["name"]))
{
echo "<script type=text/javascript>alert('参数为空');</script>";
}
else
{
echo $_GET["name"];
}
?>
<?php
echo "如果将这个代码段放在die()函数之后,即下边代码段之后,将不会输出,为什么?因为die函数会终止脚本的运行,即die函数之后的脚本程序不会再运行";
?>
<?php
//2,触发错误
//在脚本中用户输入数据的位置,当用户的输入无效时触发错误的很有用的。在 PHP 中,这个任务由 trigger_error() 完成。
if(empty($_GET["name"]))
{
trigger_error("Value must be not empty!");
}
//符合条件的话,以上代码的输出应该类似这样:Notice: Value must be not empty! in D:\Workspace\login\welcome.php on line 47
?>
<?php
//error handler function
function customError($errno, $errstr)
{
echo "<b>Error:</b> [$errno] $errstr"."<br/>";
}
//set error handler
set_error_handler("customError");
//trigger error
echo($test);
?>
<?php
//php错误处理机制
//1,简单的用die函数
/*
基本的错误处理:使用 die() 函数
第一个例子展示了一个打开文本文件的简单脚本:
<?php
$file=fopen("welcome.txt","r");
?>
如果文件不存在,您会获得类似这样的错误:
Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:
No such file or directory in C:\webfolder\test.php on line 2
为了避免用户获得类似上面的错误消息,我们在访问文件之前检测该文件是否存在:
<?php
if(!file_exists("welcome.txt"))
{
die("File not found");
}
else
{
$file=fopen("welcome.txt","r");
}
?>
现在,假如文件不存在,您会得到类似这样的错误消息:
File not found
比起之前的代码,上面的代码更有效,这是由于它采用了一个简单的错误处理机制在错误之后终止了脚本。
不过,简单地终止脚本并不总是恰当的方式。
*/
if(empty($_GET["name"]))
{
die("name is empty");
}
else
{
echo $_GET["name"];
}
//3,创建自定义错误处理器,测试代码在上边
/*创建一个自定义的错误处理器非常简单。我们很简单地创建了一个专用函数,可以在 PHP 中发生错误时调用该函数。
该函数必须有能力处理至少两个参数 (error level错误级别 和 error message错误信息),但是可以接受最多五个参数(可选的:file文件,
line-number错误代码行数 以及 error context错误内容):
语法:error_function(error_level,error_message,error_file,error_line,error_context)
具体错误参数和错误报告级别的选项看http://www.w3school.com.cn/php/php_error.asp,里边有详细介绍。
现在,让我们创建一个处理错误的函数:
function customError($errno, $errstr)
{
echo "<b>Error:</b> [$errno] $errstr<br />";
echo "Ending Script";
die(); //注意,这里也用到了die函数来终止脚本
}
上面的代码是一个简单的错误处理函数。当它被触发时,它会取得错误级别和错误消息。然后它会输出错误级别和消息,并终止脚本。
现在,我们已经创建了一个错误处理函数,我们需要确定在何时触发该函数。
Set Error Handler
PHP 的默认错误处理程序是内建的错误处理程序。我们打算把上面的函数改造为脚本运行期间的默认错误处理程序。
实例
通过尝试输出不存在的变量,来测试这个错误处理程序:
<?php
//error handler function
function customError($errno, $errstr)
{
echo "<b>Error:</b> [$errno] $errstr";
}
//set error handler
set_error_handler("customError");
//trigger error
echo($test);
?>
以上代码的输出应该类似这样:
Error: [8] Undefined variable: test
---注意,如果我们不自定义这个错误处理函数的话,会默认输出这样的报错信息:
Notice: Undefined variable: test in D:\Workspace\login\welcome.php on line 52;
所以,自定义错误信息和系统默认输出的信息是不一样的。
*/
//4,错误记录:
/*
默认地,根据在php.ini中的error_log配置,PHP向服务器的错误记录系统或文件发送错误记录。通过使用error_log()函数,
您可以向指定的文件或远程目的地发送错误记录。
通过电子邮件向您自己发送错误消息,是一种获得指定错误的通知的好办法。
还有就是将错误记录在数据库中。
*/
?>
</div>
<div class="home"><a href="index.html">HOME</a></div>
</div>
</div>
<div id="footer">
Web 2.0 Login More Templates <a href="#" target="_blank" title="模板之家">模板之家</a>
</div>
</body>
</html>