2009/05/19
Web开发,迄今为止我感觉最难学并最难精通的是Javascript,其次是CSS+DIV(WEB标准),最后才是编程语言,我接触过PHP,.NET。
1、PHP要实现一个功能很难,语言入门却很简单,PHP安全性要做的好相当不容易。
2、.NET入门有点困难,但你越过这个门槛时,写项目估计会比较简单,但精通也难。
3、JSP和J2EE这种东西没学过,不过想靠它找工作,那是难上加难。原因:JSP 一般用在银行,大规模企业里,而且目前不是非常的普及,即使你很牛,比你牛的人多的是,在大企业中竞争会非常大,基本没戏。相比之下PHP工作需求量非常大,所以想找一个工资高的PHP工作,也是相当不易,大家都在学PHP,其实我本来是很看好PHP的,可是最近几年PHP盛行,PHP已经排行到编程语言的第四名了,想想,一个用于Web开发的语言能攀到这个程度足以证明它的学习者和需求量是多么的大。
4、以前如果你能写几句Javascript代码,那工资起码上万元一个月,现在也不行了,大量的框架出现了,说说几个流行的框架:前身为雅虎UI,现在名字叫ExtJs这种东西,虽然本人不会,不过现在非常流行;还有一个是:jQuery,这个也很难学,一个“闭包”函数原理我看了两个晚上还不是很明白。
5、Ajax异步交互也相当难学,如果你不用框架实现,估计得写程序写晕你!
6、最后一个说说:Web标准,可能是因为我写的不多吧,非常不熟练,虽然它本身不是很难学,但要排除各种Browser的BUG,也绝非易事。


2009/01/12


http://blog.wenxueba.net/snake.html
绿色方块表示食物,红色表示蛇。
注意:不能走相反方向。
2008/12/19
checkUsername.php
<?php
$info= "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
parse_str($info);
if($username == "wxxslt"){
echo "failure";
}
else{
echo "success";
}
?>
check.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>检测用户名</title>
<script language="javascript" type="text/javascript">
function createRequest(){
var xmlHttp = false;
if (window.XMLHttpRequest) { // 在非IE浏览器中创建XMLHttpRequest对象
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) { //通过ActiveX创建XMLHttpRequest
try {
// 尝试按新版InternetExplorer方法创建
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (error1) { // 创建请求的ActiveX对象失败
try {
// 尝试按老版InternetExplorer方法创建
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (error2) {
// 不能通过ActiveX创建XMLHttpRequest
xmlHttp = false;
}
}
}
return xmlHttp;
}
function checkUsername(username){
var checkRet = document.getElementById("checkRet");
var form=document.forms[0];
var name=form.username;
if(name.value!=""){
checkRet.innerHTML = "请稍候,正在检测用户名...";
}
var xmlHttp = createRequest();
var url = "checkUsername.php?username=" + username;
xmlHttp.open("get",url);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
if(xmlHttp.responseText=="success"&&name.value!=""){
checkRet.innerHTML = "恭喜你,该用户名还没有被使用!";
}else if(xmlHttp.responseText=="failure"){
checkRet.innerHTML = "对不起,该用户名已经被占用!";
name.value="";
name.focus();
}
}
}
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>用户名:
<input type="text" name="username" onblur="checkUsername(this.value)" /><div id="checkRet"></div>
</label>
<br/>
<label>性别:
<input type="text" name="sex" />
</label>
</form>
</body>
</html>
<?php
$info= "http://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
parse_str($info);
if($username == "wxxslt"){
echo "failure";
}
else{
echo "success";
}
?>
check.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>检测用户名</title>
<script language="javascript" type="text/javascript">
function createRequest(){
var xmlHttp = false;
if (window.XMLHttpRequest) { // 在非IE浏览器中创建XMLHttpRequest对象
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) { //通过ActiveX创建XMLHttpRequest
try {
// 尝试按新版InternetExplorer方法创建
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (error1) { // 创建请求的ActiveX对象失败
try {
// 尝试按老版InternetExplorer方法创建
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (error2) {
// 不能通过ActiveX创建XMLHttpRequest
xmlHttp = false;
}
}
}
return xmlHttp;
}
function checkUsername(username){
var checkRet = document.getElementById("checkRet");
var form=document.forms[0];
var name=form.username;
if(name.value!=""){
checkRet.innerHTML = "请稍候,正在检测用户名...";
}
var xmlHttp = createRequest();
var url = "checkUsername.php?username=" + username;
xmlHttp.open("get",url);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
if(xmlHttp.responseText=="success"&&name.value!=""){
checkRet.innerHTML = "恭喜你,该用户名还没有被使用!";
}else if(xmlHttp.responseText=="failure"){
checkRet.innerHTML = "对不起,该用户名已经被占用!";
name.value="";
name.focus();
}
}
}
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>用户名:
<input type="text" name="username" onblur="checkUsername(this.value)" /><div id="checkRet"></div>
</label>
<br/>
<label>性别:
<input type="text" name="sex" />
</label>
</form>
</body>
</html>
2008/11/07
<?php session_start(); ?>
<title>通过session禁用页面刷新</title>
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style>
<center>
<?php
if($_SESSION[temp]==""){
if(($fp=fopen("count.txt","r"))==false){
echo "打开文件失败!";
}else{
$counter=fgets($fp,1024); //读取文件中数据
fclose($fp); //关闭文本文件
$counter++; //计数器增加1
$fp=fopen("count.txt","w"); //以写的方式打开文本文件
fputs($fp,$counter); //将新的统计数据增加1
fclose($fp); //关闭文件
}
if(($fp=fopen("count.txt","r"))==false){
echo "打开文件失败!";
}else{
$counter=fgets($fp,1024);
fclose($fp);
echo "数字计数器: " .$counter ; //输出访问次数
}
$_SESSION[temp]=1; //登录以后,$_SESSION[temp]的值不为空,给$_SESSION[temp]赋一个值1
}else{
echo "<script>alert('您不可以刷新本页!!'); history.back();</script>";
if(($fp=fopen("count.txt","r"))==false){
echo "打开文件失败!";
}else{
$counter=fgets($fp,1024);
fclose($fp);
echo "网页访问量: " .$counter ; //输出访问次数
}
}
?>
</center>
<title>通过session禁用页面刷新</title>
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style>
<center>
<?php
if($_SESSION[temp]==""){
if(($fp=fopen("count.txt","r"))==false){
echo "打开文件失败!";
}else{
$counter=fgets($fp,1024); //读取文件中数据
fclose($fp); //关闭文本文件
$counter++; //计数器增加1
$fp=fopen("count.txt","w"); //以写的方式打开文本文件
fputs($fp,$counter); //将新的统计数据增加1
fclose($fp); //关闭文件
}
if(($fp=fopen("count.txt","r"))==false){
echo "打开文件失败!";
}else{
$counter=fgets($fp,1024);
fclose($fp);
echo "数字计数器: " .$counter ; //输出访问次数
}
$_SESSION[temp]=1; //登录以后,$_SESSION[temp]的值不为空,给$_SESSION[temp]赋一个值1
}else{
echo "<script>alert('您不可以刷新本页!!'); history.back();</script>";
if(($fp=fopen("count.txt","r"))==false){
echo "打开文件失败!";
}else{
$counter=fgets($fp,1024);
fclose($fp);
echo "网页访问量: " .$counter ; //输出访问次数
}
}
?>
</center>
2008/10/22
$array 是存储返回内容集的变量名字
mysql_fetch_row 返回的要用
$array[0],$array[1]…… 这样的格式调用
mysql_fetch_array(返回索引数组+关联数组)
即可以用 $array[0],$array[1]…… 这样的格式调用
也可以用 $array['字段名1'],$array['字段名2']…… 这样的格式调用
mysql_fetch_object 返回对象格式
$array->字段名1,$array->字段名2…… 这样调用
mysql_fetch_row 返回的要用
$array[0],$array[1]…… 这样的格式调用
mysql_fetch_array(返回索引数组+关联数组)
即可以用 $array[0],$array[1]…… 这样的格式调用
也可以用 $array['字段名1'],$array['字段名2']…… 这样的格式调用
mysql_fetch_object 返回对象格式
$array->字段名1,$array->字段名2…… 这样调用
2008/10/04
来厦门没买过什么东西,也没带过什么东西,买的书和带的书是最多的。刚开学的时候,搬了一大堆文学作品,本想闲暇时回味下,结果发现,在宿舍根本看不下书,静不下心,临放假的时候,提了一袋书回家。
说到买书,总是去外图,也买了不少书,有的带回家了,有的还放在学校看,今天下午,问了大三的课程,他们开了VB/ASP/XML,还有一门传说中我认为不会开的Linux课程,想了下,VB有时间了解下,至于ASP,我早放弃了,直接过渡到PHP,But,XML我还不会,这是一个好东西,要学习了,最后的Linux,找个时间自己电脑装个虚拟机玩下,一直没时间。《XML 基础教程:入门、DOM、Ajax与Flash》这本书以前有看过,好像很大本,当时没买,现在想买回来看下,希望有帮助。其实任何东西只要你熟练了,一切都简单了,看来又要有一段磨合期了,下周一定要得到XML的相关书籍。 这里还有Else给我的一本PHP 圣经,等我PHP 到接近中级水平了在还书,嘻嘻。
说到买书,总是去外图,也买了不少书,有的带回家了,有的还放在学校看,今天下午,问了大三的课程,他们开了VB/ASP/XML,还有一门传说中我认为不会开的Linux课程,想了下,VB有时间了解下,至于ASP,我早放弃了,直接过渡到PHP,But,XML我还不会,这是一个好东西,要学习了,最后的Linux,找个时间自己电脑装个虚拟机玩下,一直没时间。《XML 基础教程:入门、DOM、Ajax与Flash》这本书以前有看过,好像很大本,当时没买,现在想买回来看下,希望有帮助。其实任何东西只要你熟练了,一切都简单了,看来又要有一段磨合期了,下周一定要得到XML的相关书籍。 这里还有Else给我的一本PHP 圣经,等我PHP 到接近中级水平了在还书,嘻嘻。
2008/07/12
加入干扰象素:
中文验证码好像不能输出?暂时没有试成功,不知道怎么编写,还有一个问题是如何绘制一个矩形边框?如果矩形边框要为黑色?程序又如何编写?高手跟帖。
<?php
/*
* 文件:code.php
* 作用:验证码生成
*/
$chinesechar = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
/*
$chinesechar = array("人","出","来","友","学","孝","仁","义","礼","廉","忠","国","中","易","白","者","火 ","土","金","木","雷","风","龙","虎","天","地", "生","晕","菜","鸟","田","三","百","钱","福 ","爱","情","兽","虫","鱼","九","网","新","度","哎","唉","啊","哦","仪","老","少","日","月 ","星");
*/
session_start();
// 设置 content-type
header("Content-type: image/png");
// 创建图片
$im = imagecreatetruecolor(62,20);
// 创建颜色
$fontcolor = imagecolorallocate($im,0,0,0);
$bgcolor=imagecolorallocate($im,200,200,200);
imagefill($im,0,0,$bgcolor);
// 设置文字
for($i=0;$i<4;$i++)
{
$text.=$chinesechar[(array_rand($chinesechar))];
}
$_SESSION['code'] = $text;
// 设置字体
$font = 'cc.ttf';
// 添加文字
imagettftext($im,12,0,3,15,$fontcolor,$font,$text);
srand((double)microtime()*1000000);
for($i=0;$i<200;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()%70,rand()%30,$randcolor);
}
// 输出图片
imagepng($im);
imagedestroy($im);
?>
/*
* 文件:code.php
* 作用:验证码生成
*/
$chinesechar = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
/*
$chinesechar = array("人","出","来","友","学","孝","仁","义","礼","廉","忠","国","中","易","白","者","火 ","土","金","木","雷","风","龙","虎","天","地", "生","晕","菜","鸟","田","三","百","钱","福 ","爱","情","兽","虫","鱼","九","网","新","度","哎","唉","啊","哦","仪","老","少","日","月 ","星");
*/
session_start();
// 设置 content-type
header("Content-type: image/png");
// 创建图片
$im = imagecreatetruecolor(62,20);
// 创建颜色
$fontcolor = imagecolorallocate($im,0,0,0);
$bgcolor=imagecolorallocate($im,200,200,200);
imagefill($im,0,0,$bgcolor);
// 设置文字
for($i=0;$i<4;$i++)
{
$text.=$chinesechar[(array_rand($chinesechar))];
}
$_SESSION['code'] = $text;
// 设置字体
$font = 'cc.ttf';
// 添加文字
imagettftext($im,12,0,3,15,$fontcolor,$font,$text);
srand((double)microtime()*1000000);
for($i=0;$i<200;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()%70,rand()%30,$randcolor);
}
// 输出图片
imagepng($im);
imagedestroy($im);
?>
中文验证码好像不能输出?暂时没有试成功,不知道怎么编写,还有一个问题是如何绘制一个矩形边框?如果矩形边框要为黑色?程序又如何编写?高手跟帖。
2007/11/06
orderform.html
processorder.php
<?php
$tireqty=$_POST['tireqty'];
$oilqty=$_POST['oilqty'];
$sparkqty=$_POST['sparkqty'];
$address=$_POST['address'];
$document_root=$_SERVER['DOCUMENT_ROOT'];
?>
<html>
<head>
<title>
Bob's Auto Parts-Order Results
</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?php
$date=date('H:i,jS F');
echo '<p>Order processed at';
echo $date;
echo '</P>';
echo '<P>Your order is as follows:</P>';
$totalqty=0;
$totalqty=$tireqty+$oilqty+$sparkqty;
echo 'Items ordered: '.$totalqty.'<br>';
if($totalqty==0)
{
echo 'You did not order anything on the previous page!<br>';
}
else
{
if($tireqty>0)
echo $tireqty.'tires<br>';
if($oilqty>0)
echo $oilqty.'oil<br>';
if($sparkqty>0)
echo $sparkqty.'spark<br>';
}
$totalamount=0.00;
define('tireprice',100);
define('oilprice',10);
define('sparkprice',4);
$totalamount=$tireqty*tireprice+$oilqty*oilprice+$sparkqty*sparkprice;
$totalamount=number_format($totalamount, 2, '.', ' ');
echo '<p>Total of order is '.$totalamount.'</p>';
echo '<p>Address to ship to is '.$address.'</P>';
$outputstring=$date."\t".$tireqty."tires \t".$oilqty."oil \t".$sparkqty."spark plugs\t\$".$totalamount."\t".$address."\n";
@ $fp=fopen("$document_root/order/data/order.txt",'ab');
if(!$fp)
{
echo '<P><strong>Your order could not be processed at this time.'
.'Please try again later.</strong></P></body></html>';
exit;
}
fwrite($fp,$outputstring,strlen($outputstring));
fclose($fp);
echo '<P>Order Written.</P>';
?>
</body>
</html>
测试页面 http://www.waigua.biz/order/orderform.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Bob's basic order form</title>
</head>
<body>
<form action="processorder.php" method="post">
<table>
<tr bgcolor="#CCCCCC">
<td width="150">Item</td>
<td width="15">Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align="center"><input type="text" name="tireqty" size="3" maxlength="3" /></td>
</tr>
<tr>
<td>Oil</td>
<td align="center"><input type="text" name="oilqty" size="3" maxlength="3"/></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align="center"><input type="text" name="sparkqty" size="3"
maxlength="3"/></td>
</tr>
<tr>
<td>Address</td>
<td align="center"><input type="text" name="address" size="20" ></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Bob's basic order form</title>
</head>
<body>
<form action="processorder.php" method="post">
<table>
<tr bgcolor="#CCCCCC">
<td width="150">Item</td>
<td width="15">Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align="center"><input type="text" name="tireqty" size="3" maxlength="3" /></td>
</tr>
<tr>
<td>Oil</td>
<td align="center"><input type="text" name="oilqty" size="3" maxlength="3"/></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align="center"><input type="text" name="sparkqty" size="3"
maxlength="3"/></td>
</tr>
<tr>
<td>Address</td>
<td align="center"><input type="text" name="address" size="20" ></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>
</html>
processorder.php
<?php
$tireqty=$_POST['tireqty'];
$oilqty=$_POST['oilqty'];
$sparkqty=$_POST['sparkqty'];
$address=$_POST['address'];
$document_root=$_SERVER['DOCUMENT_ROOT'];
?>
<html>
<head>
<title>
Bob's Auto Parts-Order Results
</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?php
$date=date('H:i,jS F');
echo '<p>Order processed at';
echo $date;
echo '</P>';
echo '<P>Your order is as follows:</P>';
$totalqty=0;
$totalqty=$tireqty+$oilqty+$sparkqty;
echo 'Items ordered: '.$totalqty.'<br>';
if($totalqty==0)
{
echo 'You did not order anything on the previous page!<br>';
}
else
{
if($tireqty>0)
echo $tireqty.'tires<br>';
if($oilqty>0)
echo $oilqty.'oil<br>';
if($sparkqty>0)
echo $sparkqty.'spark<br>';
}
$totalamount=0.00;
define('tireprice',100);
define('oilprice',10);
define('sparkprice',4);
$totalamount=$tireqty*tireprice+$oilqty*oilprice+$sparkqty*sparkprice;
$totalamount=number_format($totalamount, 2, '.', ' ');
echo '<p>Total of order is '.$totalamount.'</p>';
echo '<p>Address to ship to is '.$address.'</P>';
$outputstring=$date."\t".$tireqty."tires \t".$oilqty."oil \t".$sparkqty."spark plugs\t\$".$totalamount."\t".$address."\n";
@ $fp=fopen("$document_root/order/data/order.txt",'ab');
if(!$fp)
{
echo '<P><strong>Your order could not be processed at this time.'
.'Please try again later.</strong></P></body></html>';
exit;
}
fwrite($fp,$outputstring,strlen($outputstring));
fclose($fp);
echo '<P>Order Written.</P>';
?>
</body>
</html>
测试页面 http://www.waigua.biz/order/orderform.html



