国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

網游練習總結(1)

2019-11-14 13:20:38
字體:
來源:轉載
供稿:網友

最近一段時間在校也閑得沒事干,反正是好長一段時間,干脆就做一個《中國象棋》網游耍耍打發時間。弄了好久沒有寫總結,以及整個過程中遇到的問題,今天就趕緊寫一哈,難免后面就會忘了。

一、注冊登錄界面:

    可能會說這么簡單的游戲,網上可能例子很多,也沒有必要弄注冊這樣的功能,其實我只是學著玩玩哈。

關于注冊我使用的是php與as3.0交互做的,有與php學的非常淺,也遇到了不少問題:

1.檢測是否注冊成功:這個也困了時間不是很長,但是覺得比較重要,我搜了一些資料找到的:

MySQL_affected_rows()// 函數返回前一次 MySQL 操作所影響的記錄行數。執行成功,則返回受影響的行的數目,如果最近一次查詢失敗的話,函數返回 -1。

2.郵箱激活驗證:

<?phpclass smtp{/* Public Variables */var $smtp_port;var $time_out;var $host_name;var $log_file;var $relay_host;var $debug;var $auth;var $user;var $pass;/* PRivate Variables */ var $sock;/* Constractor */function smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$pass){$this->debug = FALSE;$this->smtp_port = $smtp_port;$this->relay_host = $relay_host;$this->time_out = 30; //is used in fsockopen() #$this->auth = $auth;//auth$this->user = $user;$this->pass = $pass;#$this->host_name = "localhost"; //is used in HELO command $this->log_file = "";$this->sock = FALSE;}/* Main Function */function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = ""){$mail_from = $this->get_address($this->strip_comment($from));$body = ereg_replace("(^|(/r/n))(/.)", "/1./3", $body);$header = "MIME-Version:1.0/r/n";if($mailtype=="HTML"){$header .= "Content-Type:text/html/r/n";}$header .= "To: ".$to."/r/n";if ($cc != "") {$header .= "Cc: ".$cc."/r/n";}$header .= "From: $from<".$from.">/r/n";$header .= "Subject: ".$subject."/r/n";$header .= $additional_headers;$header .= "Date: ".date("r")."/r/n";$header .= "X-Mailer:By Redhat (PHP/".phpversion().")/r/n";list($msec, $sec) = explode(" ", microtime());$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">/r/n";$TO = explode(",", $this->strip_comment($to));if ($cc != "") {$TO = array_merge($TO, explode(",", $this->strip_comment($cc)));}if ($bcc != "") {$TO = array_merge($TO, explode(",", $this->strip_comment($bcc)));}$sent = TRUE;foreach ($TO as $rcpt_to) {$rcpt_to = $this->get_address($rcpt_to);if (!$this->smtp_sockopen($rcpt_to)) {$this->log_write("Error: Cannot send email to ".$rcpt_to."/n");$sent = FALSE;continue;}if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body)) {$this->log_write("E-mail has been sent to <".$rcpt_to.">/n");} else {$this->log_write("Error: Cannot send email to <".$rcpt_to.">/n");$sent = FALSE;}fclose($this->sock);$this->log_write("Disconnected from remote host/n");}return $sent;}/* Private Functions */function smtp_send($helo, $from, $to, $header, $body = ""){if (!$this->smtp_putcmd("HELO", $helo)) {return $this->smtp_error("sending HELO command");}#authif($this->auth){if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) {return $this->smtp_error("sending HELO command");}if (!$this->smtp_putcmd("", base64_encode($this->pass))) {return $this->smtp_error("sending HELO command");}}#if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">")) {return $this->smtp_error("sending MAIL FROM command");}if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">")) {return $this->smtp_error("sending RCPT TO command");}if (!$this->smtp_putcmd("DATA")) {return $this->smtp_error("sending DATA command");}if (!$this->smtp_message($header, $body)) {return $this->smtp_error("sending message");}if (!$this->smtp_eom()) {return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]");}if (!$this->smtp_putcmd("QUIT")) {return $this->smtp_error("sending QUIT command");}return TRUE;}function smtp_sockopen($address){if ($this->relay_host == "") {return $this->smtp_sockopen_mx($address);} else {return $this->smtp_sockopen_relay();}}function smtp_sockopen_relay(){$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."/n");$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);if (!($this->sock && $this->smtp_ok())) {$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."/n");$this->log_write("Error: ".$errstr." (".$errno.")/n");return FALSE;}$this->log_write("Connected to relay host ".$this->relay_host."/n");return TRUE;;}function smtp_sockopen_mx($address){$domain = ereg_replace("^.+@([^@]+)$", "/1", $address);if (!@getmxrr($domain, $MXHOSTS)) {$this->log_write("Error: Cannot resolve MX /"".$domain."/"/n");return FALSE;}foreach ($MXHOSTS as $host) {$this->log_write("Trying to ".$host.":".$this->smtp_port."/n");$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);if (!($this->sock && $this->smtp_ok())) {$this->log_write("Warning: Cannot connect to mx host ".$host."/n");$this->log_write("Error: ".$errstr." (".$errno.")/n");continue;}$this->log_write("Connected to mx host ".$host."/n");return TRUE;}$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")/n");return FALSE;}function smtp_message($header, $body){fputs($this->sock, $header."/r/n".$body);$this->smtp_debug("> ".str_replace("/r/n", "/n"."> ", $header."/n> ".$body."/n> "));return TRUE;}function smtp_eom(){fputs($this->sock, "/r/n./r/n");$this->smtp_debug(". [EOM]/n");return $this->smtp_ok();}function smtp_ok(){$response = str_replace("/r/n", "", fgets($this->sock, 512));$this->smtp_debug($response."/n");if (!ereg("^[23]", $response)) {fputs($this->sock, "QUIT/r/n");fgets($this->sock, 512);$this->log_write("Error: Remote host returned /"".$response."/"/n");return FALSE;}return TRUE;}function smtp_putcmd($cmd, $arg = ""){if ($arg != "") {if($cmd=="") $cmd = $arg;else $cmd = $cmd." ".$arg;}fputs($this->sock, $cmd."/r/n");$this->smtp_debug("> ".$cmd."/n");return $this->smtp_ok();}function smtp_error($string){$this->log_write("Error: Error occurred while ".$string."./n");return FALSE;}function log_write($message){$this->smtp_debug($message);if ($this->log_file == "") {return TRUE;}$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message;if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) {$this->smtp_debug("Warning: Cannot open log file /"".$this->log_file."/"/n");return FALSE;;}flock($fp, LOCK_EX);fputs($fp, $message);fclose($fp);return TRUE;}function strip_comment($address){$comment = "/([^()]*/)";while (ereg($comment, $address)) {$address = ereg_replace($comment, "", $address);}return $address;}function get_address($address){$address = ereg_replace("([ /t/r/n])+", "", $address);$address = ereg_replace("^.*<(.+)>.*$", "/1", $address);return $address;}function smtp_debug($message){if ($this->debug) {echo $message;}}}?>

這個需要配置SMTP服務,現在QQ郵箱網易郵箱等都可以去設置,然后作為代理郵箱。

$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);
$smtp->debug = false;//關閉調試
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);

在整個數據庫操作過程中使用一個變量來監控是否出現操作錯誤,來返回是否注冊成功;

error_reporting(E_ERROR | E_WARNING | E_PARSE);//屏蔽所有錯誤警告等

激活頁面:

<?php     header("Content-Type:text/html;charset=utf-8");      require_once "sendEmail/mysqlInfo/sqlInfo.php";     $name=base64_decode($_GET['isdhf']);            if($name=="")      {          exit();      }else{                     $con=@mysql_connect(DB_USER,DB_ROOT,DB_PWD)or die('連接錯誤');       //選擇數據庫       mysql_select_db(DB_NAME,$con)or die('Occured error');       mysql_query('SET NAMES UTF8') or die('顯示錯誤');               $sql="SELECT isActivated FROM chinesechess WHERE nickname='{$name}'";        //$row=@mysql_query($query) or die('error');        $result=mysql_query($sql,$con)or die('error');       //關閉數據庫        $arr=mysql_fetch_array($result);        if($arr['isActivated']=='0')        {          //如果沒有激活,就輸出激活頁面,否則網頁不存在;echo '<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" href="CSS/index_CSS.css" /><style type="text/css">body,td,th {    font-size: xx-large;    font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;}</style><title>游戲注冊[歡迎注冊]</title>  <script type="text/javascript">                   function havedActivate()                   {                       var name=document.getElementById("nickname").title;                       window.location.href="activated.php?key="+name;                   }        </script></head><body> <div id="tDiv">   <table>  <td></td>   </table>   <h2>賬戶激活</h2>   <p>&nbsp;</p>   <table width="100%" border="0">     <tr>       <td id="tDL"><p>您的隨機昵稱為:<label id="nickname" title="'.$name.'">"'.$name.'"</label></p>       <p>&nbsp;</p></td>     </tr>     <tr>       <td align="center" id="tDL">         <p>           <input type="submit" value="確認激活" id="activateBtn" onClick="havedActivate();"/>         </p>       </td>     </tr>   </table>   <p>&nbsp;</p> </div></body></html>';            }else            {                echo "該網頁不存在";            }    mysql_close();    }?>
<?php   header("Content-Type:text/html;charset=utf-8");        require_once "sendEmail/mysqlInfo/sqlInfo.php";        error_reporting(E_ERROR | E_WARNING | E_PARSE);//禁止顯示錯誤警號等          $name=$_GET['key'];    if($name=="")    {        exit();    }else    {       $con=@mysql_connect(DB_USER,DB_ROOT,DB_PWD)or die('連接錯誤');       //選擇數據庫       mysql_select_db(DB_NAME,$con)or die('Occured error');       mysql_query('SET NAMES UTF8') or die('顯示錯誤');               $sql="UPDATE chinesechess SET isActivated='1' WHERE nickname='{$name}'";        $result = mysql_query($sql,$con) or die('error');       //關閉數據庫    mysql_close(); echo'<html>    <head>        <meta charset="utf-8" />        <title>賬號已激活</title>        <link rel="stylesheet" href="css/index_CSS.css" />';        $name="        <script type='text/Javascript'>        document.write(getName());            function getName(){                var str=window.location.search;                var args=str.split('?');                 var retval='';                 if(args[0]==str){return '';}//參數為空;                 return args[1].split('=')[1];                }        </script>";    echo '</head>    <body>    <div id="tDiv">   <table>  <td></td>   </table>   <h2>賬戶已激活</h2>   <p>&nbsp;</p>   <table width="100%" border="0">     <tr>       <td id="tDL"><p>您的隨機昵稱為:<label>'.$name.'</label></p>       <p>&nbsp;</p></td>     </tr>     <tr>       <td align="center" id="tDL">         <p>           <p><font color="#FF0000">您的賬號已激活,祝您游戲愉快!</font></p>         </p>       </td>     </tr>   </table>   <p>&nbsp;</p> </div>            </body></html>';      }?>

CSS:

@charset "utf-8";/* CSS Document */h2{    font-size:56px;    font-weight:bold;    text-align:center;}body{    width:auto;    height:auto;    background-image:url(../images/03.png);    background-repeat:no-repeat;    background-size:100% 100%;    background-attachment:fixed;    background-position:center;}#tDiv{    background-image:url(../images/o1.png);    background-repeat:repeat;    margin-left:auto;    margin-right:auto;    margin-top:200px;    width:550px;    height:auto;    font-size:10px;    border:2px solid #CCC;}#tDL{    font-size:24px;    text-align:center;}

登錄:

<?php     header("Content-Type:text/html;charset=utf-8");          require_once "sendEmail/mysqlInfo/sqlInfo.php";          error_reporting(E_ERROR | E_WARNING | E_PARSE);//禁止顯示錯誤警號等     $sign='';            $_email=$_POST['_email'];         $_paswd=$_POST['_pasd'];//     $_email="2810718058@qq.com";//     $_paswd="1234567890";     $_activate='1';  //激活變量     //連接數據庫     $con=@mysql_connect(DB_USER,DB_ROOT,DB_PWD)or die('連接錯誤');         mysql_select_db(DB_NAME,$con)or die('Occured error');     mysql_query('SET NAMES UTF8') or die('顯示錯誤');        $sql="SELECT * FROM chinesechess WHERE user_email='{$_email}'and passWord='{$_paswd}' and isActivated='{$_activate}'";    $result = mysql_query($sql,$con);    $source=mysql_fetch_array($result);        if($source)    {        $sign="succeed";                 $name=$source['nickname'];             $pasd=$source['password'];             $mail=$source['user_email'];                 echo 'strings=name='.$name.'<br/>';        echo 'pasd='.$pasd.'<br/>';        echo 'mail='.$mail.'<br/>';        echo 'sign='.$sign.'<br/>';    }else    {         $sign="faild";                 $name="null";                 $pasd="000000";                 $mail="null@cn.com";                 echo 'strings=name='.$name.'<br/>';        echo 'pasd='.$pasd.'<br/>';        echo 'mail='.$mail.'<br/>';        echo 'sign='.$sign.'<br/>';            }            mysql_close();?>

Resource id #num

由于本人是一枚初學者,對mysql查詢返回值等理解不夠,遇到了一點困惑,mysql_query() 僅對 SELECT,SHOW,EXPLAIN 或 DESCRIBE 語句返回一個資源標識符,如果查詢執行不正確則返回 FALSE。要使用mysql_fatch_array()函數或者mysql_fetch_object()函數進行轉換,然后對相應數組或者對象進行操作。

總的來說這部分遇到的困難也不是很多,經過自己的努力很快就解決了。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂昌县| 饶阳县| 龙口市| 措美县| 平远县| 蒲城县| 玉树县| 兴和县| 奉化市| 鄂托克前旗| 玉门市| 辽阳市| 大新县| 太原市| 漳平市| 襄垣县| 屏东县| 醴陵市| 濮阳县| 修文县| 丁青县| 元阳县| 珠海市| 博白县| 贡觉县| 宁城县| 洛浦县| 攀枝花市| 河南省| 溧阳市| 石阡县| 含山县| 滦平县| 泰州市| 哈巴河县| 贵南县| 四平市| 新沂市| 资中县| 会东县| 五指山市|