php学习交流博客

好好写代码,好好痛她

#

03.02_php学习笔记—HTML01



有一天结束了! 快5.30了.回去了~
一天下来,没觉得有啥收获.  但理解了一句话, 学习真的没有捷径.只有努力,不断的努力....

    今天开始老师开始进入真正的课程讲解.不过还是在讲枯燥的html标签. 千百年也用不到一回.
老师给了个练习.不过很快完成. 一个下午都在研究 html5. 看着蛮新鲜.蛮期待的.

也推荐一篇文章给大家。讲的真的很不错.点击(惦记)跳转

但也对于真正的开发人员来说,在追求新技术,还的不断的追求浏览器的兼容性.
这也...(我还没有说这些的xx)

但真的希望,浏览器标准统一的那天早日实现

算了不多说了. 回去. 超时了!

讲义还是留着这里吧. 点击(惦记)我下载

明天见!



posted @ 2010-03-02 17:32 王吉刚 阅读(475) | 评论 (0)编辑 收藏

03.01_php学习笔记—前沿

    第一天的学习,感觉还是很轻松.老师没讲什么新内容.
就是做了些行业介绍 , 编辑器,环境搭配... 做了一份试题, 错了很多不该错的地方,很xx
具体东西也没什多说的. 

还是把讲义恭喜大家一起分享吧. 希望在学习的过程中能认识更多的phper. 可以更多的交流、学习、进步.




刚刚搞到一份w3schoolWeb全套教程  chm版本的.真的觉得很棒

有需要的这里可以下载 点击我吧

讲义我都存在dbank 有需要的可以去下载

今天才是第一天的讲义 我奉献上 要的点击(惦记)我吧



posted @ 2010-03-01 14:05 王吉刚 阅读(563) | 评论 (0)编辑 收藏

php.验证是否是 email 地址

 

 1<?php
 2/*
 3Original script by Tobias Ratschiller.
 4
 5* top level domain must have at least 2 chars
 6* there can be more than one dot in the address
 7*/
 8
 9    function is_email($address) {
10      $rc1 = (ereg('^[-!#$%&'*+./0-9=?A-Z^_`a-z{|}~]+'.
11             '@'.
12             '[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+.'.
13             '[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+$',
14             $address));
15      $rc2 = (preg_match('/.+.ww+$/',$address));
16      return ($rc1 && $rc2);
17    }
18?>

posted @ 2010-02-26 20:05 王吉刚 阅读(630) | 评论 (0)编辑 收藏

经典的Ajax示例----登录验证(转载学习)

<?php
/**************************************************************
 * login.php
 * @author 风舞
 * @email wjiujun (at) gmail.com
 * @note ajax登录验证,用户名和密码保存在客户端cookies中
 **************************************************************/

//得到安全字符串
function safe_str($str)
{
    return (string)htmlspecialchars(trim($str));
}

if(safe_str($_GET['action'])=='login')
{
 //登录验证
    header("Content-type: text/xml");
 $user=safe_str($_POST['user']);
 $pwd=safe_str($_POST['pwd']);

 $response_xml='<info>';

 //只有当用户名为root,密码为888时才通过验证
 $response_xml.=($user!='root'||$pwd!='888')?'<error>incorrect username or password!</error>':"<login><info><user>{$user}</user><pwd>{$pwd}</pwd></info></login>";

 $response_xml.='</info>';
 print $response_xml;
 exit;
}
else
{
?>
<html>
<head>
<title>Ajax登录验证</title>
<script type="text/javascript" src="prototype.js"></script>
<script language="JavaScript" type="text/javascript">
<!--
 //得到cookies的值
 function getCookie(name)
 {
  var dc=document.cookie;
  var prefix=name+"=";
  var begin=dc.indexOf("; "+prefix);

  if(begin==-1)
  {
   begin=dc.indexOf(prefix);
   if(begin!=0)
    return "";
  }
  else
   begin+=2;
  var end=document.cookie.indexOf(";",begin);
  if(end==-1)
   end=dc.length;
  return unescape(dc.substring(begin+prefix.length,end));
 }

 //删除cookies
 function delCookie(name)
 {
  if(getCookie(name))
   document.cookie=name+"=; path=/; expires=Thu, 01-Jan-70 00:00:01 GMT";
 }

 //设置cookies
 function setCookie(name,value)
 {
  var expires=new Date();
  expires.setTime(expires.getTime()+30*24*60*60*1000); //设置cookies失效时间为一个月
  document.cookie=name+"="+escape(value)+"; expires="+expires.toGMTString()+"; path=/";
 }

 //得到节点的值
 function getElementTextNS(local,parentElem,index)
 {
  var result = parentElem.getElementsByTagName(local)[index];
  return result?result.childNodes.length>1?result.childNodes[1].nodeValue:(result.firstChild?result.firstChild.nodeValue:""):"n/a";
 }

 //初始化
 function init()
 {
  var loginUser=getCookie("ajaxUser");
  var loginPwd=getCookie("ajaxPwd");
  loginUser!=""?parseLogin(loginUser,loginPwd):genLoginForm();
 }

 //退出登录
 function logOut()
 {
  delCookie("ajaxUser");
  delCookie("ajaxPwd");
  genLoginForm();
 }

 //用指定的用户名和密码登录
 function parseLogin(username,password)
 {
  var postBody="user="+escape(username)+"&pwd="+escape(password);
  new Ajax.Request("?action=login", {method:"post", postBody:postBody,
      onFailure:function() {alert("程序异常")}, 
      onSuccess:makeResult});
  return false;
 }

 //处理登录返回结果
 function makeResult(response)
 {
  var info=response.responseXML.getElementsByTagName("info");
  var error=getElementTextNS("error",info[0],0);
  if(error!="n/a")
  {
   genLoginForm();
   alert("请输入正确的用户名和密码");
  }
  else
  {
   var user=getElementTextNS("user",info[0],0);
   var pwd=getElementTextNS("pwd",info[0],0);

   setCookie("ajaxUser",user);
   setCookie("ajaxPwd",pwd);
   if(getCookie("ajaxUser")=="")
   {
    genLoginForm();
    alert("您的浏览器必须支持cookies");
   }
   else
    $("content").innerHTML="<h2>Hello,<font color=\"red\">"+user+"</font>!<a href=\"javascript:logOut();\">logout</a></h2>";
  }
 }

 //显示登录框
 function genLoginForm()
 {
  $("content").innerHTML="<form onsubmit=\"return parseLogin($('user').value,$('pwd').value);\">用户名:<input type=\"text\" id=\"user\" size=\"12\"> 密码:<input type=\"password\" id=\"pwd\" size=\"12\"> <input type=\"submit\" value=\"登录\"></form>";
 }
//-->
</script>
</head>

<body onload="init();">
<div id="content"></div>
</body>
</html>
<?php
}
?>

    程序的思路主要是:页面加载时调用init判断客户端是否存有网站所需的cookies,如果有的话取相应cookies到服务端验证,通过验证显示成功提示,反之显示登录框,同样如果没有所需cookies也显示登录框直到用户输入正确的用户名和密码。整个过程两次用到了ajax,一次是用户输入用户名和密码点击登录按钮后,另一次是页面加载时的用户名和密码验证,其实两个过程调用的是同一个函数parseLogin,这个函数主要负责与远程(也就是“?action=login”)通讯,“?action=login”接受post过来的用户名和密码进行处理并返回处理结果,客户端收到服务端的处理结果后进行进一步的处理(调用函数makeResult)。可以看出与传统的“处理登录”相比是有很大差别的,首先整个过程中没有任何的页面加载(也就是无刷新),form中我并没有指定action和method,由js完成与PHP的通信,同时也是异步的(你可以同时进行多个请求,而按传统方式在进行一个请求时不能再进行其他请求(使用多个iframe也可以模拟出异步的效果,这里不包括这种情况)),充分利用这两点就可以制作出以前需要通过非常复杂的方法才可能达到的效果,如自动完成等。
    客户端使用的prototype.js,实际上从我第一眼发现这个强悍无比的家伙时就离不了它了,还狠心“抛弃”了已经很习惯的SAJAX。另外服务端返回的是XML,在这里使用XML只是想说明一种通用的js处理XML的方式。
    当然由于是无刷新的,所以在提交登录时已经看不到状态栏上的进度条,如果登录时间过长,用户可能不知道发生了什么事情,会不停的点击提交,这时我们一般会在提交时生成一个加载条,告诉用户目前正在发生什么,如gmail右上角的loading...,chinaren的“我正在帮您登录,请稍等...”,当服务端返回结果时就要隐藏这个加载条,控制display属性就可以简单的实现这种轮换效果

posted @ 2010-02-25 16:28 王吉刚 阅读(880) | 评论 (0)编辑 收藏

让你的IE支持HTML5视频功能


一个由Christian Adams开发的IE浏览器插件刚刚出现,它可以帮助“老掉牙”的IE支持HTML5的<video>标签,像Google Chrome, Firefox, Safari和Opera一样能够播放HTML5视频。

注:不过目前仅限于播放,用户无法对播放的内容实现控制,预计微软IE9会原生支持这一特性。


下载:

下载地址Xiph.Org Ogg Codecs


  趁着午饭时间敲了几个字,晚上回去再体验一下.大家也可以试试,交流学习......

posted @ 2010-02-23 12:37 王吉刚 阅读(660) | 评论 (0)编辑 收藏

smarty section、foreach 学习笔记

     摘要: section循环 section的运用了解:1、循环一个简单的一维数组:Example 7-30. Looping a simple array with {section}   Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1&n...  阅读全文

posted @ 2010-02-06 12:36 王吉刚 阅读(2418) | 评论 (0)编辑 收藏

仅列出标题
共8页: 1 2 3 4 5 6 7 8