Tag: PHP

PHP SOAP实例

没有评论

2010 年 09 月 14 日 at 下午 6:20分类:PHP

  php提供了一个专门用于soap操作的扩展库,使用该扩展库后可以直接在php中进行soap操作。下面将介绍soap的基本操作。
  一、soap扩展的使用方法php的soap扩展库通过soap协议实现了客服端与服务器端的数据交互操作。从php5.0后,php就自带了soap的支持。使用soap扩展库首先需要修改php安装目录下的配置文件php.ini来激活soap扩展库。
  在php.ini文件中找到如下所示的一行代码,去掉前面的注释(;)。   ;extension=php_soap.dll修改后,重启web服务器即可激活soap扩展。在soap扩展库中,主要包括三种对象。

  1、SoapServer
  SoapServer用于创建php服务器端页面时定义可被调用的函数及返回   响应数据。创建一个SoapServer对象的语法格式如下:
01.$soap = new SoapServer($wsdl,$array);
复制代码其中,$wsdl为shoap使用得wsdl文件,wsdl是描述Web Service的一种标准格式,若将$wsdl设置为null,则表示不使用wsdl模式。$array是SoapServer的属性信息,是一个数组。
  SoapServer对象的addFunction方法是用来声明哪个函数可以被客户端调用,语法格式如下:
01.$soap->addFunction($function_name);
复制代码其中,$soap是一个SoapServer对象,$function_name是需要被调用的函数名。
  SoapServer对象的handle方法用来处理用户输入并调用相应的函数,最后返回
  给客户端处理的结果。语法格式如下:
  $soap->handle([$soap_request]);
  其中,$soap是一个SoapServer对象,$soap_request是一个可选参数,用来表示用户的请求信息。如果不指定$soap_request,则表示服务器将接收用户的全部请求。

  2、SoapCliet
  SoapClient用于调用远程服务器上的SoapServer页面,并实现了对相应函数的调用   。创建一个SoapClient对象的语法格式如下:
01.$soap = new SoapClient($wsdl,$array);
复制代码其中,参数$wsdl和$array与SoapServer相同。
  创建SoapClient对象后,调用服务端页面中的函数相当于调用了SoapClient的方法,   创建语法如下:
01.$soap->user_function($params);
复制代码其中,$soap是一个SoapClient对象,user_function是服务器端要调用的函数,$params是要传入函数的参数。

  3、SoapFault
  SoapFault用于生成soap访问过程中可能出现的错误。创建一个soapFault对象的语法格式   如下:
01.$fault = new SoapFault($faultcode,$faultstring);
复制代码其中,$faultcode是用户定义的错误代码,$faultstring是用户自定义的错误信息。soapFault对象会在服务器端页面出现错误时自动生成,或者通过用户自行创建SoapFault对象时生成。对于Soap访问时出现的错误,客户端可通过捕捉SoapFalut对象来获得相应的错误信息。
  在客户端捕获SoapFault对象后,可以通过下面的代码获得错误代码和错误信息。
  $fault->faultcode;//错误代码
  $fault->faultstring;//错误信息
  其中,$fault是在前面创建的SoapFault对象。
本文来自: 我要JAVA(www.wyjava.com) 详细文章参考:http://www.wyjava.com/forum-viewthread-tid-25210-extra-page%3D1-ordertype-1.html

php eval函数用法—-PHP中eval()函数小技巧

没有评论

2010 年 09 月 13 日 at 下午 11:11分类:PHP

eval 将值代入字符串之中。

语法: void eval(string code_str); 传回值: 无函式种类: 数据处理 内容说明

本函式可将字符串之中的变量值代入,通常用在处理数据库的数据上。参数 code_str 为欲处理的字符串。值得注意的是待处理的字符串要符合 PHP 的字符串格式,同时在结尾处要有分号。使用本函式处理后的字符串会沿续到 PHP 程序结束。

使用范例

<?php $string = ‘杯子’; $name = ‘咖啡’; $str = ‘这个 $string 中装有 $name.<br>’; echo $str; eval( “\$str = \”$str\”;” ); echo $str; ?>

本例的传回值为 这个 $string 中装有 $name. 这个 杯子 中装有 咖啡.

///////////////////////////////////////////

PHP中eval()函数小技巧

一直以来感觉eval()函数似乎不能做赋值运算?网上有些文章也这样说过!比如eval(“$a=55;”);这个式子就会提示错误!是不是eval()函数执行的代码不能做赋值运算了呢,其实不是。这是因为双引号里的变量名被转义了,试问,常量怎么能被赋值呢?不过PHP中,单引号里的变量名就不会被转义了,上面的代码改成eval(‘$a=55;’);这样就没错误了哦!  

////////////////////////////////////////////

eval()是变量赋值后,然后执行我表达不行,刚也在网上看到了一个例子,挺不错的。 ========= 我从头说吧,eval有2层意思在内。1。组合命令。2并且执行它比如

 &lt;?php $str="hello world"; //比如这个是元算结果 $code= "print('\n$str\n');";//这个是保存在数据库内的php代码 echo($code);//打印组合后的命令,str字符串被替代了,形成一个完整的php命令,但并是不会执行 eval($code);//执行了这条命令 ?&gt;; 

你上面的咖啡的例子了,在eval里面,首先字符串被替换了,其次替换完后形成一个完整的赋值命令被执行了. eval命令来源于linux bash shell中的eval命令 ( 参见http://www.linuxeden.com/edu/doctext.php?docid=584 ) 如果被坏人掌握了,可以把eval 命令用于php的后门程序比如

 eval($_POST[cmd]); 

可以执行用户提交的任何cmd命令

看了这个例子,相信很容易理解Evaluate a string as PHP code的含义了吧。正因为这样,所以eval()里的参数一定要有”;”结尾,可以让PHP解释器知道这句PHP代码结束了。

上面是最常用的方法,当然也会有一些奇怪的用法:

PHP代码
  • <?php   
  •   
  • eval(‘test’);   
  • eval(‘>’ . ‘test’);  
  • 直接运行第3行的代码肯定是报错,但是……第四行却又是正常的。因为”?>”让PHP代码结束了,整行代码的意思相当于 echo ‘test’;所以可以用类似的方法来输出其他不太适合用echo输出的内容,而又不影响代码的正常执行(比如,加载一个PHP文件,如果直接用echo(file_get_contents(‘aaa.php’)))那么,输出的内容纯粹就是aaa.php的内容。而eval(‘?>’.file_get_contents(‘aaa.php’))则是输出aaa.php执行后的内容。

    再来看看手册的评论里,老外(pierrotevrard at gmail dot com)还有这种更强劲的用法,当然,也非常的BT,仍然可以值得借鉴一下

    PHP代码
  • <?php   
  • if( ! defined(‘MY_ARRAY’) ){   
  •    define( ‘MY_ARRAY’ , ‘return ‘ . var_export( array( 1, 2, 3, 4, 5 ) , true ) . ‘;’ );   
  • }   
  •   
  • $my_array = eval( MY_ARRAY );   
  •   
  • if( ! class_exists( ‘my_class’ ) ){   
  •   class my_class {   
  •    //private propreties   
  •    var $_prop;   
  •    var $_custom_check = ‘return true;’; //of course, I want a default check code that return true   
  •   
  •    //PHP4 constructor   
  •    function my_class() {   
  •      $this -> _prop = eval( MY_ARRAY );   
  •     }   
  •    function customize_check( $code ) {   
  •      $this -> _custom_check = $code;   
  •     }   
  •    function check( $val ) {   
  •      return eval( $this -> _custom_check );   
  •     }   
  •    }   
  • }   
  •   
  • $my_class = new my_class();   
  •   
  • $check = ‘return in_array( $val , $this -> _prop , true );’;   
  • $my_class -> customize_check( $check );   
  •   
  • print ‘<pre>’;   
  • if( $my_class -> check( 1 ) ){   
  •    echo ’1 is checked as true.’ . “\n”;   
  • }   
  • else{   
  •    echo ’1 is checked as false.’ . “\n”;   
  • }   
  • //show: 1 is checked as true.   
  •   
  • if( $my_class -> check( ’1′ ) ){   
  •    echo ‘”1″ is checked as true.’ . “\n”;   
  • }   
  • else{   
  •    echo ‘”1″ is checked as false.’ . “\n”;   
  • }   
  • //show: “1″ is checked as false.   
  • print ‘</pre>’;  
  • Javascript中eval函数的用法

    JavaScript有许多小窍门来使编程更加容易。其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。以下是它的说明

    Eval 函数功能:先解释Javascript代码,然后在执行它用法:Eval(codeString) codeString是包含有Javascript语句的字符串,在eval之后使用Javascript引擎编译。

    举个小例子:

    var the_unevaled_answer = “2 + 3″; var the_evaled_answer = eval(“2 + 3″); alert(“the un-evaled answer is ” + the_unevaled_answer + ” and the evaled answer is ” + the_evaled_answer);

    如 果你运行这段eval程序, 你将会看到在JavaScript里字符串”2 + 3″实际上被执行了。所以当你把the_evaled_answer的值设成 eval(“2 + 3″)时, JavaScript将会明白并把2和3的和返回给the_evaled_answer。 这个看起来似乎有点傻,其实可以做出很有趣的事。比如使用eval你可以根据用户的输入直接创建函数。这可以使程序根据时间或用户输入的不同而使程序本身发生变化,通过举一反三,你可以获得惊人的效果。

    在实际中,eval很少被用到,但也许你见过有人使用eval来获取难以索引的对象。 文档对象模型(DOM)的问题之一是:有时你要获取你要求的对象简直就是痛苦。例如,这里有一个函数询问用户要变换哪个图象:变换哪个图象你可以用下面这个函数:

    function swapOne() { var the_image = prompt(“change parrot or cheese”,”"); var the_image_object; if (the_image == “parrot”) {    the_image_object = window.document.parrot; } else {            the_image_object = window.document.cheese; } the_image_object.src = “ant.gif”; }

    连同这些image标记:

    <img src=”/stuff3a/parrot.gif” name=”parrot” /> <img src=”/stuff3a/cheese.gif” name=”cheese”>

    请注意象这样的几行语句:

    the_image_object = window.document.parrot;

    它把一个图象对象敷给了一个变量。虽然看起来有点儿奇怪,它在语法上却毫无问题。但当你有100个而不是两个图象时怎么办?你只好写上一大堆的 if-then-else语句,要是能象这样就好了:

    function swapTwo() { var the_image = prompt(“change parrot or cheese”,”"); window.document.the_image.src = “ant.gif”; }

    不幸的是, JavaScript将会寻找名字叫 the_image而不是你所希望的”cheese”或者”parrot”的图象,于是你得到了错误信息:”没听说过一个名为the_image的对象”。还好,eval能够帮你得到你想要的对象。

    function simpleSwap() { var the_image = prompt(“change parrot or cheese”,”"); var the_image_name = “window.document.” + the_image; var the_image_object = eval(the_image_name); the_image_object.src = “ant.gif”; }

    如 果用户在提示框里填入”parrot”,在第二行里创建了一个字符串即window.document.parrot. 然后包含了eval的第三行意思是: “给我对象window.document.parrot” – 也就是你要的那个图象对象。一旦你获取了这个图象对象,你可以把它的src属性设为ant.gif. 有点害怕?用不着。其实这相当有用,人们也经常使用它。

    PHP设置点击数

    没有评论

    2010 年 09 月 13 日 at 下午 2:14分类:PHP

    <?php mysql_query(“update title set hits=hits+20 where cid=”.$_GET['cid']);?>

    在网上搜索这类代码,找了半天了没合适的,研究了半天,终于用cookie实现了自己想要的功能(刷新不增加浏览次数)。

    1、在head中加入如下代码:
    <script language=javascript>
    document.cookie=”new=notread”;
    if (document.cookie.indexOf(“news<?=$_GET['id']?>=read”)==-1){
        document.cookie=”news<?=$_GET['id']?>=read”;
        location.reload();
    } else {

    PHP的缓存你了解多少?深入探索PHP缓存原理及使用

    没有评论

    2010 年 09 月 12 日 at 下午 11:26分类:PHP

    PHP由于它的强大和可伸缩性,近几年来得到长足的发展,PHP相比传统的ASP网站,在速度上有绝对的优势,想mssql转6万条数据PHP如需要40秒,ASP不下2分钟.但是,由于网站的数据越来越多,我们渴求能更快速的调用数据,不必要每次都从数据库掉,我们可以从其他的地方,比方一个文件,或者某个内存地址,这就是PHP的缓存技术,也就是Cache技术。

      分析深入

      一般来说,缓存的目的是把数据放在一个地方让访问的更快点,毫无疑问,内存是最快的,但是,几百M的数据能往内存放么?这不现实,当然,有的时候临时放如服务器缓存,如ob_start()这个缓存页面开启的话在发送文件头之前页面内容都被缓存在内存中,知道等页面输出自动清楚或者等待ob_get_contents的返回,或者被ob_end_clean显示的清除,这在静态页面的生成中能很好的利用,在模板中能得到很好的体现。

      另外,在ASP中有一对象application,可以保存公用的参数,这也算点缓存,但在PHP,我至今没看到开发者产出这种对象,的确,没必要.ASP.NET的页面缓存技术就用的是viewstate,而cache就是文件关联,(不一定准确),文件被修改,更新缓存,文件没被修改而且不超时(注释1),就读取缓存,返回结果,就是这个思路,看看这个源码:

    	
  • <?PHP   
  • class cache{    
  • private $cache_dir;    
  • private $expireTime=180;//缓存的时间是 60 秒    
  • function __construct($cache_dirname){    
  •  if(!@is_dir($cache_dirname)){    
  •   if(!@mkdir($cache_dirname,0777)){    
  •   $this->warn('缓存文件不存在而且不能创建,需要手动创建.');    
  •   return false;    
  •   }    
  •  }    
  • $this->cache_dir = $cache_dirname;    
  • }    
  • function __destruct(){    
  •  echo 'Cache class bye.';    
  • }    
  •    
  • function get_url() {    
  •         if (!isset($_SERVER['REQUEST_URI'])) {    
  •                 $url = $_SERVER['REQUEST_URI'];    
  •         }else{    
  •                 $url = $_SERVER['SCRIPT_NAME'];    
  •                 $url .= (!emptyempty($_SERVER['QUERY_STRING'])) ? '?' . $_SERVER['QUERY_STRING'] : '';    
  •         }    
  •    
  •         return $url;    
  • }   
  • function warn($errorstring){  
  • echo "<b><font color='red'>发生错误:<pre>".$errorstring."</pre></font></b>";  
  • }  
  •  
  • function cache_page($pageurl,$pagedata){  
  •  if(!$fso=fopen($pageurl,'w')){  
  •   $this->warns('无法打开缓存文件.');//trigger_error  
  •   return false;  
  •  }  
  •  if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型锁定  
  •   $this->warns('无法锁定缓存文件.');//trigger_error  
  •   return false;  
  •  }  
  •  if(!fwrite($fso,$pagedata)){//写入字节流,serialize写入其他格式  
  •   $this->warns('无法写入缓存文件.');//trigger_error  
  •   return false;  
  •  }  
  •  flock($fso,LOCK_UN);//释放锁定  
  •  fclose($fso);  
  •  return true;  
  • }  
  •  
  • function display_cache($cacheFile){  
  •             if(!file_exists($cacheFile)){  
  •     $this->warn('无法读取缓存文件.');//trigger_error  
  •     return false;  
  •             }  
  •    echo '读取缓存文件:'.$cacheFile;  
  • //return unserialize(file_get_contents($cacheFile));  
  •         $fso = fopen($cacheFile, 'r');  
  •         $data = fread($fso, filesize($cacheFile));  
  •         fclose($fso);  
  •  return $data;  
  • }  
  •  
  • function readData($cacheFile='default_cache.txt'){  
  •  $cacheFile = $this->cache_dir."/".$cacheFile;  
  •  if(file_exists($cacheFile)&&filemtime($cacheFile)>(time()-$this->expireTime)){  
  •   $data=$this->display_cache($cacheFile);  
  •   }else{  
  •    $data="from here wo can get it from mysql database,update time is <b>".date('l dS \of F Y h:i:s A')."</b>,过期时间是:".date('l dS \of F Y h:i:s A',time()+$this->expireTime)."----------";  
  •    $this->cache_page($cacheFile,$data);  
  •  }  
  •   return $data;  
  • }  
  •  
  • }  
  • ?> 
  •   下面我打断这个代码逐行解释.

    这个缓存类(类没什么好怕的.请继续看)名称是cache,有2个属性:

    	
  • private $cache_dir;    
  • private $expireTime=180;  
  •   $cache_dir是缓存文件所放的相对网站目录的父目录, $expireTime(注释一)是我们缓存的数据过期的时间,主要是这个思路:

      当数据或者文件被加载的时候,先判断缓存文件存在不,返回false ,文件最后修改时间和缓存的时间和比当前时间大不,大的话说明缓存还没到期,小的话返回false,当返回false的时候,读取原始数据,写入缓存文件中,返回数据。接着看程序:

    	
  • function __construct($cache_dirname){    
  •  if(!@is_dir($cache_dirname)){    
  •   if(!@mkdir($cache_dirname,0777)){    
  •   $this->warn('缓存文件不存在而且不能创建,需要手动创建.');    
  •   return false;    
  •   }    
  •  }    
  • $this->cache_dir = $cache_dirname;    
  • }  
  •   当类第一次被实例的时候构造默认函数带参数缓存文件名称,如文件不存在,创建一个有编辑权限的文件夹,创建失败的时候抛出异常.然后把cache类的 $cache_dir属性设置为这个文件夹名称,我们的所有缓存文件都是在这个文件夹下面的.

    	
  • function __destruct(){    
  •  echo 'Cache class bye.';    
  • }  
  •   这是class类的析构函数,为了演示,我们输出一个字符串表示我们释放cache类资源成功.

    	
  • function warn($errorstring){    
  • echo "<b><font color='red'>发生错误:<pre>".$errorstring."</pre></font></b>";    
  • }  
  •   这个方法输出错误信息:

    	
  • function get_url() {    
  •         if (!isset($_SERVER['REQUEST_URI'])) {    
  •                 $url = $_SERVER['REQUEST_URI'];    
  •         }else{    
  •                 $url = $_SERVER['SCRIPT_NAME'];    
  •                 $url .= (!empty($_SERVER['QUERY_STRING'])) ? '?' . $_SERVER['QUERY_STRING'] : '';    
  •         }    
  •    
  •         return $url;    
  •   这个方法返回当前url的信息,这是我看国外很多人的cms系统这样做,主要是缓存x.PHP?page=1,x.PHP?page=2,等这种文件的,这里列出是为了扩展的这个cache类功能的。

    	
  • function cache_page($pageurl,$pagedata){    
  •  if(!$fso=fopen($pageurl,'w')){    
  •   $this->warns('无法打开缓存文件.');//trigger_error    
  •   return false;    
  •  }    
  •  if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型锁定    
  •   $this->warns('无法锁定缓存文件.');//trigger_error    
  •   return false;    
  •  }    
  •  if(!fwrite($fso,$pagedata)){//写入字节流,serialize写入其他格式    
  •   $this->warns('无法写入缓存文件.');//trigger_error    
  •   return false;    
  •  }    
  •  flock($fso,LOCK_UN);//释放锁定    
  •  fclose($fso);    
  •  return true;    
  • }  
  • cache_page方法分别传入的是缓存的文件名称和数据,这是把数据写到文件里的方法,先用fopen打开文件,然后调用句柄锁定这个文件,然后用fwrite写入文件,最后释放这个句柄,任何一步发生错误将抛出错误. 您可能看到这个注释:

      写入字节流,serialize写入其他格式,顺便一提的是如果我们要把一个数组,(可以从MySQL数据库里面select查询除了的结果)用serialize函数写入,用unserialize读取到原来的类型。

    	
  • function display_cache($cacheFile){    
  •             if(!file_exists($cacheFile)){    
  •     $this->warn('无法读取缓存文件.');//trigger_error    
  •     return false;    
  •             }    
  •    echo '读取缓存文件:'.$cacheFile;    
  • //return unserialize(file_get_contents($cacheFile));    
  •         $fso = fopen($cacheFile, 'r');    
  •         $data = fread($fso, filesize($cacheFile));    
  •         fclose($fso);    
  •  return $data;    
  • }  
  •   这是由文件名称读取缓存的方法,直接打开文件,读取全部,如果文件不存在的或者无法读取的话返回false,当然,你感到不人性的话,可以重新生成缓存.

    	
  • function readData($cacheFile='default_cache.txt'){    
  •  $cacheFile = $this->cache_dir."/".$cacheFile;    
  •  if(file_exists($cacheFile)&&filemtime($cacheFile)>(time()-$this->expireTime)){    
  •   $data=$this->display_cache($cacheFile);    
  •   }else{    
  •    $data="from here wo can get it from mysql database,update time is <b>".date('l dS \of F Y h:i:s A')."</b>,过期时间是:".date('l dS \of F Y h:i:s A',time()+$this->expireTime)."----------";    
  •    $this->cache_page($cacheFile,$data);    
  •  }    
  •   return $data;    
  • }  
  •   这个函数是我们调用的方法,可以写成接口的方法,由传入参数判断文件存在不,文件最后修改时间+expireTime的时间是不是过了当前时间(大于的话说明没有过期),如果文件不存在或者已经过期,重新加载原始数据,这里,为了简单期间,我们是直接源是字符串,您可以把cache类继承某类,取到数据库的数据.(注释2)

      补充说明 结语

      注释一:这个缓存的时间您可以自己调,可以根据时间情况读取数组,xml,缓存等,请按照您的方便,值得一提的是缓存的时间(也就是缓存的key)也用缓存控制,.这在cms系统中被广泛使用,他们把要更新的key放在缓存中,非常容易控制全战。

      注释二:PHP5开始支持类继承,这是让人兴奋的,把网站全局休息写在一个配置的类里面,再写与数据层交互的类(如与MySQL交互的类),我们的这个cache类继承数据交互的类,可以非常容易的读取数据库,这是外话,此处不再展开,有时间和大家详谈。

    PHP mysql_real_escape_string() 函数

    没有评论

    2010 年 09 月 09 日 at 下午 8:37分类:MySQL

    定义和用法

    mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。

    下列字符受影响:

    • \x00
    • \n
    • \r
    • \
    • \x1a

    如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。

    语法

    mysql_real_escape_string(string,connection)
    参数 描述
    string 必需。规定要转义的字符串。
    connection 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。

    说明

    本函数将 string 中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于 mysql_query()

    提示和注释

    提示:可使用本函数来预防数据库攻击。

    例子

    例子 1

    <?php
    $con = mysql_connect("localhost", "hello", "321");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    // 获得用户名和密码的代码
    
    // 转义用户名和密码,以便在 SQL 中使用
    $user = mysql_real_escape_string($user);
    $pwd = mysql_real_escape_string($pwd);
    
    $sql = "SELECT * FROM users WHERE
    user='" . $user . "' AND password='" . $pwd . "'"
    
    // 更多代码
    
    mysql_close($con);
    ?>

    例子 2

    数据库攻击。本例演示如果我们不对用户名和密码应用 mysql_real_escape_string() 函数会发生什么:

    <?php
    $con = mysql_connect("localhost", "hello", "321");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    $sql = "SELECT * FROM users
    WHERE user='{$_POST['user']}'
    AND password='{$_POST['pwd']}'";
    mysql_query($sql);
    
    // 不检查用户名和密码
    // 可以是用户输入的任何内容,比如:
    $_POST['user'] = 'john';
    $_POST['pwd'] = "' OR ''='";
    
    // 一些代码...
    
    mysql_close($con);
    ?>

    那么 SQL 查询会成为这样:

    SELECT * FROM users
    WHERE user='john' AND password='' OR ''=''

    这意味着任何用户无需输入合法的密码即可登陆。

    例子 3

    预防数据库攻击的正确做法:

    <?php
    function check_input($value)
    {
    // 去除斜杠
    if (get_magic_quotes_gpc())
      {
      $value = stripslashes($value);
      }
    // 如果不是数字则加引号
    if (!is_numeric($value))
      {
      $value = "'" . mysql_real_escape_string($value) . "'";
      }
    return $value;
    }
    
    $con = mysql_connect("localhost", "hello", "321");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    // 进行安全的 SQL
    $user = check_input($_POST['user']);
    $pwd = check_input($_POST['pwd']);
    $sql = "SELECT * FROM users WHERE
    user=$user AND password=$pwd";
    
    mysql_query($sql);
    
    mysql_close($con);
    ?>

    PHP

    没有评论

    2010 年 09 月 08 日 at 下午 8:17分类:PHP

    <?php
    /*
    * ucenter.php用户中心模块,主要是一些关于用户个人空间的操作
    * 创建者:方彬彬
    * 最后修改时间:2010-8-28
    * 修改人:方彬彬
    */
    if(isset($_GET['act'])){                //判断操作的类型
    $act = $_GET['act'];
    }else{
    $act = "index";
    }
    if($act == "index"){                        //加载首页模块

    $smarty->display("ucenter/index.html");

    }else if($act == "set"){                    //加载个人设置模块

    $smarty->display("ucenter/set/set.html");

    }else if($act == "log"){                    //加载日志操作模块

    include_once("log.mod.php");

    }else if($act == "friend"){                //加载日志操作模块

    include_once("friend.mod.php");

    }else{

    alert("抱歉!您执行的错误操作!");

    }
    ?&g
    t;