<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[Ajax_php]用户名检测代码]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sat, 25 Nov 2006 10:01:58 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	[p align=center]Sajax2.php<br/>&lt;?php&nbsp;&nbsp;<br/>if (!isset($SAJAX_INCLUDED)) {<br/><br/>&nbsp;&nbsp;/*&nbsp;&nbsp;<br/>&nbsp;&nbsp; * GLOBALS AND DEFAULTS<br/>&nbsp;&nbsp; *<br/>&nbsp;&nbsp; */ <br/>&nbsp;&nbsp;$sajax_debug_mode = 0;<br/>&nbsp;&nbsp;$sajax_export_list = array();<br/>&nbsp;&nbsp;$sajax_request_type = &quot;GET&quot;;<br/>&nbsp;&nbsp;$sajax_remote_uri = &quot;&quot;;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;/*<br/>&nbsp;&nbsp; * CODE<br/>&nbsp;&nbsp; *<br/>&nbsp;&nbsp; */ <br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;//<br/>&nbsp;&nbsp;// Initialize the Sajax library.<br/>&nbsp;&nbsp;//<br/>&nbsp;&nbsp;function sajax_init() {<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//<br/>&nbsp;&nbsp;// Helper function to return the script&#039;s own URI. <br/>&nbsp;&nbsp;// <br/>&nbsp;&nbsp;function sajax_get_my_uri() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $REQUEST_URI;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $REQUEST_URI;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;$sajax_remote_uri = sajax_get_my_uri();<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//<br/>&nbsp;&nbsp;// Helper function to return an eval()-usable representation<br/>&nbsp;&nbsp;// of an object in JavaScript.<br/>&nbsp;&nbsp;// <br/>&nbsp;&nbsp;function sajax_get_js_repr($value) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;$type = gettype($value);<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ($type == &quot;boolean&quot; &amp;#124;&amp;#124;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$type == &quot;integer&quot;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &quot;parseInt($value)&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;elseif ($type == &quot;double&quot;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &quot;parseFloat($value)&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;elseif ($type == &quot;array&quot; &amp;#124;&amp;#124; $type == &quot;object&quot; ) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// XXX Arrays with non-numeric indices are not<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// permitted according to ECMAScript, yet everyone<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// uses them.. We&#039;ll use an object.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$s = &quot;{ &quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($type == &quot;object&quot;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$value = get_object_vars($value);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach ($value as $k=&gt;$v) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$esc_key = sajax_esc($k);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (is_numeric($k)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$s .= &quot;$k: &quot; . sajax_get_js_repr($v) . &quot;, &quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$s .= &quot;&#92;&quot;$esc_key&#92;&quot;: &quot; . sajax_get_js_repr($v) . &quot;, &quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (count($value))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$s = substr($s, 0, -2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $s . &quot; }&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$esc_val = sajax_esc($value);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$s = &quot;&#039;$esc_val&#039;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $s;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;function sajax_handle_client_request() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $sajax_export_list;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$mode = &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (! empty($_GET[&quot;rs&quot;])) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mode = &quot;get&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (!empty($_POST[&quot;rs&quot;]))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mode = &quot;post&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (empty($mode)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$target = &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ($mode == &quot;get&quot;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Bust cache in the head<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header (&quot;Expires: Mon, 26 Jul 1997 05:00:00 GMT&quot;);&nbsp;&nbsp;&nbsp;&nbsp;// Date in the past<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header (&quot;Last-Modified: &quot; . gmdate(&quot;D, d M Y H:i:s&quot;) . &quot; GMT&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// always modified<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header (&quot;Cache-Control: no-cache, must-revalidate&quot;);&nbsp;&nbsp;// HTTP/1.1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header (&quot;Pragma: no-cache&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// HTTP/1.0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$func_name = $_GET[&quot;rs&quot;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (! empty($_GET[&quot;rsargs&quot;])) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$args = $_GET[&quot;rsargs&quot;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$args = array();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$func_name = $_POST[&quot;rs&quot;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (! empty($_POST[&quot;rsargs&quot;])) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$args = $_POST[&quot;rsargs&quot;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$args = array();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (! in_array($func_name, $sajax_export_list))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;-:$func_name not callable&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;+:&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = call_user_func_array($func_name, $args);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;var res = &quot; . trim(sajax_get_js_repr($result)) . &quot;; res;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;exit;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;function sajax_get_common_js() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $sajax_debug_mode;<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $sajax_request_type;<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $sajax_remote_uri;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$t = strtoupper($sajax_request_type);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if ($t != &quot;&quot; &amp;&amp; $t != &quot;GET&quot; &amp;&amp; $t != &quot;POST&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &quot;// Invalid type: $t.. &#92;n&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ob_start();<br/>&nbsp;&nbsp;&nbsp;&nbsp;?&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;// remote scripting library<br/>&nbsp;&nbsp;&nbsp;&nbsp;// (c) copyright 2005 modernmethod, inc<br/>&nbsp;&nbsp;&nbsp;&nbsp;var sajax_debug_mode = &lt;?php echo $sajax_debug_mode ? &quot;true&quot; : &quot;false&quot;; ?&gt;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var sajax_request_type = &quot;&lt;?php echo $t; ?&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var sajax_target_id = &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;function sajax_debug(text) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (sajax_debug_mode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(&quot;RSD: &quot; + text)<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp; function sajax_init_object() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sajax_debug(&quot;sajax_init_object() called..&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var A;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A=new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (e) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (oc) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A=null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!A &amp;&amp; typeof XMLHttpRequest != &quot;undefined&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A = new XMLHttpRequest();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!A)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sajax_debug(&quot;Could not create connection object.&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return A;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;function sajax_do_call(func_name, args) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var i, x, n;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var uri;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var post_data;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var target_id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sajax_debug(&quot;in sajax_do_call()..&quot; + sajax_request_type + &quot;/&quot; + sajax_target_id);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target_id = sajax_target_id;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (sajax_request_type == &quot;&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sajax_request_type = &quot;GET&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uri = &quot;&lt;?php echo $sajax_remote_uri; ?&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (sajax_request_type == &quot;GET&quot;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (uri.indexOf(&quot;?&quot;) == -1) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uri += &quot;?rs=&quot; + escape(func_name);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uri += &quot;&amp;rs=&quot; + escape(func_name);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uri += &quot;&amp;rst=&quot; + escape(sajax_target_id);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uri += &quot;&amp;rsrnd=&quot; + new Date().getTime();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i = 0; i &lt; args.length-1; i++) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uri += &quot;&amp;rsargs[]=&quot; + escape(args[i]);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;post_data = null;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if (sajax_request_type == &quot;POST&quot;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;post_data = &quot;rs=&quot; + escape(func_name);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;post_data += &quot;&amp;rst=&quot; + escape(sajax_target_id);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;post_data += &quot;&amp;rsrnd=&quot; + new Date().getTime();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i = 0; i &lt; args.length-1; i++) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;post_data = post_data + &quot;&amp;rsargs[]=&quot; + escape(args[i]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(&quot;Illegal request type: &quot; + sajax_request_type);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = sajax_init_object();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.open(sajax_request_type, uri, true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (sajax_request_type == &quot;POST&quot;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.setRequestHeader(&quot;Method&quot;, &quot;POST &quot; + uri + &quot; HTTP/1.1&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.setRequestHeader(&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.onreadystatechange = function() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (x.readyState != 4) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sajax_debug(&quot;received &quot; + x.responseText);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var status;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var data;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var txt = x.responseText.replace(/^&#92;s*&amp;#124;&#92;s*$/g,&quot;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;status = txt.charAt(0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data = txt.substring(2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (status == &quot;-&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(&quot;Error: &quot; + data);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (target_id != &quot;&quot;) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(target_id).innerHTML = eval(data);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var callback;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var extra_data = false;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (typeof args[args.length-1] == &quot;object&quot;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback = args[args.length-1].callback;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extra_data = args[args.length-1].extra_data;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback = args[args.length-1];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback(eval(data), extra_data);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (e) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(e + &quot;: Could not eval &quot; + data);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sajax_debug(func_name + &quot; uri = &quot; + uri + &quot;/post = &quot; + post_data);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.send(post_data);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sajax_debug(func_name + &quot; waiting..&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete x;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;$html = ob_get_contents();<br/>&nbsp;&nbsp;&nbsp;&nbsp;ob_end_clean();<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $html;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;function sajax_show_common_js() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo sajax_get_common_js();<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;// javascript escape a value<br/>&nbsp;&nbsp;function sajax_esc($val)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;$val = str_replace(&quot;&#92;&#92;&quot;, &quot;&#92;&#92;&#92;&#92;&quot;, $val);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$val = str_replace(&quot;&#92;r&quot;, &quot;&#92;&#92;r&quot;, $val);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$val = str_replace(&quot;&#92;n&quot;, &quot;&#92;&#92;n&quot;, $val);<br/>&nbsp;&nbsp;&nbsp;&nbsp;return str_replace(&#039;&quot;&#039;, &#039;&#92;&#92;&quot;&#039;, $val);<br/>&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;function sajax_get_one_stub($func_name) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;ob_start();&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;?&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;// wrapper for &lt;?php echo $func_name; ?&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;function x_&lt;?php echo $func_name; ?&gt;() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sajax_do_call(&quot;&lt;?php echo $func_name; ?&gt;&quot;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x_&lt;?php echo $func_name; ?&gt;.arguments);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;$html = ob_get_contents();<br/>&nbsp;&nbsp;&nbsp;&nbsp;ob_end_clean();<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $html;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;function sajax_show_one_stub($func_name) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo sajax_get_one_stub($func_name);<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;function sajax_export() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $sajax_export_list;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$n = func_num_args();<br/>&nbsp;&nbsp;&nbsp;&nbsp;for ($i = 0; $i &lt; $n; $i++) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sajax_export_list[] = func_get_arg($i);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;$sajax_js_has_been_shown = 0;<br/>&nbsp;&nbsp;function sajax_get_javascript()<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $sajax_js_has_been_shown;<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $sajax_export_list;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$html = &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (! $sajax_js_has_been_shown) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$html .= sajax_get_common_js();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sajax_js_has_been_shown = 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;foreach ($sajax_export_list as $func) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$html .= sajax_get_one_stub($func);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $html;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;function sajax_show_javascript()<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo sajax_get_javascript();<br/>&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;$SAJAX_INCLUDED = 1;<br/>}<br/>?&gt;<br/>Username_ajax.php<br/><br/>&lt;?php<br/>// Include the Sajax library<br/>include &quot;Sajax2.php&quot;;<br/><br/>// Open conection to the database<br/>mysql_connect(&#039;localhost&#039;, &#039;root&#039;, &#039;myoa888&#039;);<br/>mysql_select_db(&#039;database&#039;);<br/><br/>/*<br/>CREATE TABLE `users` (<br/>`user_id` INT( 9 ) NOT NULL AUTO_INCREMENT ,<br/>`username` VARCHAR( 50 ) NOT NULL ,<br/>`password` VARCHAR( 32 ) NOT NULL ,<br/>PRIMARY KEY ( `user_id` ) ,<br/>UNIQUE (`username`)<br/>);<br/><br/>INSERT INTO `users` ( `username` , `password` ) VALUES (&#039;username&#039;, &#039;password&#039;);<br/>INSERT INTO `users` ( `username` , `password` ) VALUES (&#039;tom&#039;, &#039;password&#039;);<br/>INSERT INTO `users` ( `username` , `password` ) VALUES (&#039;bill&#039;, &#039;password&#039;);<br/>INSERT INTO `users` ( `username` , `password` ) VALUES (&#039;bob&#039;, &#039;password&#039;);<br/>*/<br/><br/>// Function to check if a username exists inside the database<br/>function check_user_exist($username) {<br/>&nbsp;&nbsp;$username = mysql_escape_string($username);<br/>&nbsp;&nbsp;// Make a list of words to postfix on username for suggest<br/>&nbsp;&nbsp;$suggest = array(&#039;007&#039;, &#039;1&#039;, &#039;theman&#039;, &#039;rocks&#039;);<br/>&nbsp;&nbsp;//$suggest = array();<br/>&nbsp;&nbsp;$sql = &quot;SELECT `username` FROM `users` WHERE `username` = &#039;$username&#039;&quot;;<br/>&nbsp;&nbsp;$result = mysql_query($sql);<br/>&nbsp;&nbsp;if(mysql_num_rows($result) &gt; 0) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;// Username not available<br/>&nbsp;&nbsp;&nbsp;&nbsp;$avail[0] = &#039;no&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$i = 2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;// Loop through suggested ones checking them<br/>&nbsp;&nbsp;&nbsp;&nbsp;foreach($suggest AS $postfix) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql = &quot;SELECT `username` FROM `users` WHERE `username` = &#039;&quot;.$username.$postfix.&quot;&#039;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = mysql_query($sql);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(mysql_num_rows($result) &lt; 1) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$avail[$i] = $username.$postfix;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$i ++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;$avail[1] = $i - 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $avail;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;// Username is available<br/>&nbsp;&nbsp;return array(&#039;yes&#039;);<br/>}<br/><br/>sajax_init(); // Intialize Sajax<br/>//$sajax_debug_mode = 1; //Uncomment to put Sajax in debug mode<br/>sajax_export(&quot;check_user_exist&quot;); // Register the function<br/>sajax_handle_client_request(); // Serve client instances<br/>?&gt;<br/><br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&nbsp;&nbsp;&lt;title&gt;Gmail Style Check Username AJAX&lt;/title&gt;<br/>&nbsp;&nbsp;&lt;script type=&quot;text/javascript&quot;&gt;<br/>&nbsp;&nbsp;&lt;?php<br/>&nbsp;&nbsp;sajax_show_javascript();<br/>&nbsp;&nbsp;?&gt;<br/>&nbsp;&nbsp;function check_handle(result) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(result[0] == &#039;yes&#039;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&#039;not_available&#039;).style.display = &#039;none&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&#039;available&#039;).style.display = &#039;block&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&#039;available&#039;).style.display = &#039;none&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&#039;not_available&#039;).style.display = &#039;block&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var str = &#039;Sorry that username is not available try these &lt;br /&gt;&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i = 1; i &lt; result[1]; i++) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str += &quot;&lt;input type=&#92;&quot;radio&#92;&quot; name=&#92;&quot;try&#92;&quot; onclick=&#92;&quot;switch_username(&#039;&quot;+result[i+1]+&quot;&#039;)&#92;&quot;/&gt;&quot; + result[i+1] + &quot;&lt;br /&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&#039;not_available&#039;).innerHTML = str;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;function check_user_exist() {<br/>&nbsp;&nbsp;&nbsp;&nbsp;var username = document.getElementById(&#039;username&#039;).value;<br/>&nbsp;&nbsp;&nbsp;&nbsp;x_check_user_exist(username, check_handle);<br/>&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;function switch_username(username) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&#039;username&#039;).value = username;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&lt;/script&gt;<br/><br/>&nbsp;&nbsp;&lt;style type=&quot;text/css&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@import url( test.css );<br/>&nbsp;&nbsp;#available {<br/>&nbsp;&nbsp;&nbsp;&nbsp;display: none;<br/>&nbsp;&nbsp;&nbsp;&nbsp;color: green;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;#not_available {<br/>&nbsp;&nbsp;&nbsp;&nbsp;display: none;<br/>&nbsp;&nbsp;&nbsp;&nbsp;color: red;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&lt;/style&gt;<br/>&lt;/head&gt;<br/>&lt;body &gt;<br/>&nbsp;&nbsp;&lt;h2&gt;AJAX Check Username&lt;/h2&gt;<br/>&nbsp;&nbsp;&lt;p&gt;The following does a gmail style check on the username supplied to see if it is a unqiue username, using the AJAX method.<br/>&nbsp;&nbsp;&lt;br /&gt;If not, it makes some suggestions to ones which are available. It uses a development version of Sajax.<br/>&nbsp;&nbsp;&lt;br /&gt;&lt;a href=&quot;username-ajax.phps&quot;&gt;View Source&lt;/a&gt; (&lt;a href=&quot;Sajax2.php&quot;&gt;Sajax2.php&lt;/a&gt;) &amp;#124; &lt;a href=&quot;&quot;&gt;Comments&lt;/a&gt; &amp;#124; &lt;a href=&quot;ajax_user.zip&quot;&gt;Download Files&lt;/a&gt;&lt;/p&gt; <br/>&nbsp;&nbsp;&lt;h2&gt;Example&lt;/h2&gt;<br/>&nbsp;&nbsp;Some examples of taken usernames are: &lt;strong&gt;tom&lt;/strong&gt; , &lt;strong&gt;bill&lt;/strong&gt;, &lt;strong&gt;bob&lt;/strong&gt;, &lt;strong&gt;username&lt;/strong&gt;&lt;br /&gt;<br/>&nbsp;&nbsp;&lt;input type=&quot;text&quot; name=&quot;username&quot; id=&quot;username&quot; size=&quot;20&quot; value=&quot;tom&quot;&gt;<br/>&nbsp;&nbsp;&lt;input type=&quot;button&quot; name=&quot;check&quot; value=&quot;Check Username&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;onclick=&quot;check_user_exist(); return false;&quot;&gt;<br/><br/>&nbsp;&nbsp;&lt;div id=&quot;available&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Username is available!<br/>&nbsp;&nbsp;&lt;/div&gt;<br/><br/>&nbsp;&nbsp;&lt;div id=&quot;not_available&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sorry that username is not available.<br/>&nbsp;&nbsp;&lt;/div&gt;<br/><br/><br/>&lt;/body&gt;<br/>&lt;/html&gt;[/p]
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [Ajax_php]用户名检测代码]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>