smarty结合xajax检测用户名

 更新时间:2016年11月25日 16:12  点击:2066

先看htm文件吧

 <html>
<head>
<title><{$title}></title>
<{$xajax_javascript}><{*使smarty支持xajax*}>
</head>

<body>
<form  name="check" >
请输入用户名:
  <input type="text" name="username" />
  <input type="button" name="button" value="检查用户名"  />
  <div id="result"></div>
</form>
</body>
</html>

php处理代码

<?php

  /*****************************************

   Title :smarty结合xajax检测用户名简单实例
   Author:leehui1983(辉老大)
   Finish Date  :2006-12-09

  *****************************************/

  //为避免中文乱码,需要在 xajax.inc.php 需要改一下默认的encoding:define ('XAJAX_DEFAULT_CHAR_ENCODING', 'gbk' )UTF8编码格式文件不需要更改

  require_once('./libs/Smarty.class.php');//包含smarty类库
  require('./xajax/xajax.inc.php');//包含xajax类库

  function checkusername($textvalue){//编写需要的PHP函数
       $checkresult=($textvalue=='test' ? '<font color=red>该用户名已经注册</font>' :'<font color=red>可以注册</font>');
       $objresponse=new xajaxResponse();//实例化xajaxresponse对象
       $objresponse->addassign("result","innerHTML",$checkresult);//指定ID为result的元素中添加内容$checkresult
       return $objresponse;//返回结果文本
  }

  $xajax=new xajax();//实例化xajax对象
  $smarty=new Smarty();//实例化smarty对象
  $smarty->template_dir = "./templates";//设置模板目录
  $smarty->compile_dir = "./templates_c"; //设置编译目录
  $smarty->caching = false; //设置缓存方式
  /*****************************************************
  左右边界符,默认为{},但实际应用当中容易与JavaScript
  相冲突,所以建议设成<{}>或其它。
  *****************************************************/
  $smarty->left_delimiter = "<{";
  $smarty->right_delimiter = "}>";


  $xajax->registerFunction("checkusername");//注册checkusername函数
  $xajax->processRequests();//调用xajax用于接管请求
 
  $smarty->assign('xajax_javascript', $xajax->getJavascript('./xajax/'));//输出JS代码,注意('./xajax/')中参数为xajax.inc.php父目录,在同意目录下可不同填写,否则必须填写
  $smarty->assign('title','smarty结合xajax检测用户名简单实例');//替换模板内容
  $smarty->display('index.tpl');//显示模板内容
?>

 

$path=$_SERVER["DOCUMENT_ROOT"];//服务器路径        
$i = 0;                 
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
            
        $upload_file=$_FILES['pictures']['tmp_name'][$key];//文件被上传后在服务端储存的临时文件名

        $imgtype = strtolower(strrchr($_FILES['pictures']['name'][$key],"."));

        $name_1 = strtolower(substr($_FILES["pictures"]["name"][$key],0,2));

        $upload_file_name= "lanmayi_".time().$name_1.$imgtype;//以字母及系统时间的秒来做文件名

        $store_dir = $path."/up_img/";// 上传文件的储存位置

        $file_size_max = 100000000000;// 1M限制文件上传最大容量(bytes)

        $accept_overwrite = 0;//是否允许覆盖相同文件

        move_uploaded_file($upload_file,$store_dir.$upload_file_name);         

        $new_img_name = $upload_file_name;
                        
        $new_img_type = substr($imgtype,1,3);
                          
        $new_img_path = $store_dir;
                        
        $suo_name = Makesuo ($new_img_path,$new_img_name,$new_img_type);         
               
                $sh_time = date('Y-m-d H:i:s');
               
                $name = $_POST['name'];
               
                $pid = $id;
               
                $sql = "insert into lanmayi_img_show(pid,sh_name,sh_url,sh_suo,sh_time) values (".$pid.",'".$name[$i]."','".$upload_file_name."','".$suo_name."','".$sh_time."')";
               
                $res = mysqli_query($conn,$sql);
                        
                $i++;
     }

}
//*批量上传结束********************************************************
?>
<script language="javascript">
alert("图片上传成功!")
</script>
<?php
}



if($_POST['fanhui']){
?>
<script language="javascript">
window.location='pro_list.php?id=<?php echo $id?>';
</script>
<?php
}

?>

<html>
<head>
<title>filemanage</title>
</head>
<body>
<center>
<p><h2>文件管理</h2></p><br>
<table border=1><tr size=18>
<td>文件ID</td><td>文件名称</td><td>文件大小</td><td>上传时间</td><td>下载</td><td>删除</td></tr>
<?php
include("conn.php");
//echo '<table border=1>';
$rs=$db->query("select * from filem order by f_id DESC");
$i=1;
while($row = $rs->fetch_assoc())      
{
 $size=$row['f_size']/1024;
echo "<tr><td>".$i++."</td><td>".$row['f_name']."</td><td>".number_format($size, 2, '.', '')."KB</td><td>".$row['f_date']."</td><td><a href=".$row['f_url']." target=_blank>下载</a></td><td><a href=del.php?id=".$row['f_id'].">删除</a></td></tr>"; 
}
echo '</table>';
unset($rs);
$db->close();
?>
</center>
<br><br><hr><br>
<b><h2>uploadfile</h2></b>
<br>
<form enctype="multipart/form-data" action="" method="post">
选择上传文件:<br><input name="userfile" type="file"><br>
<input type="submit" value="发送">
</form>
<?php
 if(!$_FILES["userfile"]["name"])  exit;
//echo $_FILES['userfile']['type'];
if ($_FILES['userfile']['error'] > 0)
  {
    echo 'Problem: ';
    switch ($_FILES['userfile']['error'])
    {
      case 1:  echo 'File exceeded upload_max_filesize';  break;
      case 2:  echo '不能超过800M';  break;
      case 3:  echo 'File only partially uploaded';  break;
      case 4:  echo 'No file uploaded';  break;
    }
    exit;
  }
else
{ //检查上传文件是否在允许上传的类型
   $tp = array("gif","jpeg","png","txt","doc","rar","zip","xls","bmp","wmv","mp3","flv","rmvb","avi");
if (!in_array(strtolower(substr(strrchr($_FILES['userfile']['name'], '.'),1)), $tp))

   {
    echo '文件类型错误,请重新选择文件!<br>只允许rar,zip,jpg,gif,txt,png,bmp,xls类型的文件';
    exit;
   }

   $path="./file/";        //上传路径

   if(file_exists($path.$_FILES['userfile']['name']))    //判断文件是否存在
   {
    echo '文件已存在,请更改后重新上传!';
    exit;
   }

   if($_FILES["userfile"]["name"])
   {
        $file1=$_FILES["userfile"]["name"];
        $file2 = $path.$file1;
        $flag=1;
   }
   if($flag)
       $result=move_uploaded_file($_FILES["userfile"]["tmp_name"],$file2);
   //特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件
   if($result)
      {
        
         $time=date("Y-m-d");
     //   $url=$patch.$name;
        $size=$_FILES["userfile"]["size"];
         include("conn.php");
         $rs=$db->query("insert into filem(f_name,f_url,f_date,f_size) values('$file1','$file2','$time','$size')");
    //     $rs=$db->query($sql);
       echo "<script language='javascript'>location='index.php';</script>";
      }
   unset($rs);
   $db->close();

}
?>
</body>
</html>

我想用ADODB实现事务,让两条update语句要么都做要么都不做,但是却始终不成功。代码如下:

<?php
$db = NewADOConnection('mysql'); //创建一个ADODB连接对象
$mysql_conn = $db->Connect("localhost","root","", "anna");

$db->BeginTrans();
$ok = $db->Execute("update user set user_name= '098'where id=3");
if($ok)
$ok=$db->Execute("update user set user_name= where id=2");
if ($ok) {$db->CommitTrans();}
else {$db->RollbackTrans(); }
?>

结果却是第一条语句成功了,第二条没有成功。
但是同样我用MYSQL自带的函数却可以实现我要的功能,代码如下:

<?php
mysql_query("SET AUTOCOMMIT=0");
$ok1 = $db->Execute("update user set user_name= '098'where id=3");
$ok2=$db->Execute("update user set user_name= where id=2");
if ($ok1 && $ok2 ){ mysql_query("COMMIT");}
else  {mysql_query("ROLLBACK");}
?>


<div id="b">test</div>
<script>
function createAjax() {            //该函数将返回XMLHTTP对象实例
    var _xmlhttp;
    try {    
        _xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");    //IE的创建方式
    }
    catch (e) {
        try {
            _xmlhttp=new XMLHttpRequest();    //FF等浏览器的创建方式
        }
        catch (e) {
            _xmlhttp=false;        //如果创建失败,将返回false
        }
    }
    return _xmlhttp;    //返回xmlhttp对象实例
       
}
var exitdos =createAjax();
alert(exitdos)
exitdos.open("GET","www.111cn.net",true);
exitdos.onreadystatechange= function()
{
 if (exitdos.readyState == 1) {document.getElementById("b").innerHTML="check..."}
 if(exitdos.readyState==4)
 {
  
  //( == 200) &&
  alert(exitdos.status)
  alert(exitdos.responseText);
 }
}
exitdos.send(null);
</script>
[!--infotagslink--]

相关文章

  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • js检测用户输入密码强度

    一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
  • php ajax注册验证用户名是否存在代码

    这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
  • 微信小程序用户授权最佳实践指南

    这篇文章主要给大家介绍了关于微信小程序用户授权最佳实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-08
  • 简单php cookie用户登录实例

    cookie 的用途之一是存储用户在特定网站上的密码和 id。另外,也用于存储起始页的首选项。在提供个人化查看的网站上,将要求阁下的网络浏览器利用阁下计算机硬驱上的少量...2016-11-25
  • smarty中改进truncate使其支持中文的方法

    这篇文章主要介绍了smarty中改进truncate使其支持中文的方法,涉及针对Smarty源码中truncate源文件进行函数功能扩展的相关技巧,需要的朋友可以参考下...2016-06-12
  • MySQL验证用户权限的方法

    知识归纳因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host。 如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先...2015-11-08
  • sqlserver添加sa用户和密码的实现

    这篇文章主要介绍了sqlserver添加sa用户和密码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
  • 超详细的php用户注册页面填写信息完整实例(附源码)

    注册页面是大多数网站必备的页面,所以很有必要对自己的注册页面做些精心的设计。下面三张图,第一张是注册的展示页面,第二张思维导图就一个简单的逻辑,第三张是通过firebug查看调用的JS文件。 一、给每个输入框写下说明在...2015-11-24
  • mysql误删root用户恢复方法

    装完数据库清理一些默认账号的时候不小心把root删除了,flush privileges 之后的新 root 忘了grant任何权限,查看mysqld选项里面有个 &#8722;&#8722;skip-grant-tables复制代码 代码如下: #/usr/libexec/mysqld --verbos...2015-03-15
  • Win2012服务器 远程桌面帐户允许多用户同时登录的配置方法

    这篇文章主要介绍了Win2012服务器 远程桌面帐户允许多用户同时登录的配置方法,需要的朋友可以参考下...2016-11-01
  • 如何有效提高网站的用户回头率

    第一,网站的内容;请各位站长朋友不要一天到晚只想着出什么好的绝招来推广网站,却忽略了网站的内容;其实网站的内容是极为重要的,因为这是你的本,你的根!网站的内容只有不断...2017-07-06
  • 关于JSP用户登录连接数据库详情

    这篇文章主要介绍了关于JSP用户登录连接数据库的相关资料,需要的朋友可以参考下面文章内容...2021-09-07
  • 如何判断用户是否访问过某个网址

    一位站长译的一个国外的如何判断用户是否访问过某个网址文章,个人感觉写得非常不错,下面分享一下。 我们经常有这样的需求:想知道用户之前有没有访问过某个网址。有...2016-09-20
  • dos之net创建管理员用户的实现

    这篇文章主要介绍了dos之net创建管理员用户的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30
  • Oracle用户自定义异常实现过程解析

    这篇文章主要介绍了Oracle用户自定义异常实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-29
  • JQuery用户名校验的具体实现

    这篇文章主要为大家详细介绍了JQuery用户名校验的具体实现,感兴趣的小伙伴们可以参考一下...2016-03-22