JS 實(shí)現(xiàn)BASE64_ENCODE 和 BASE64_DECODE
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到尼開(kāi)遠(yuǎn)網(wǎng)站設(shè)計(jì)與尼開(kāi)遠(yuǎn)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋尼開(kāi)遠(yuǎn)地區(qū)。
script language='javascript'
/* utf.js - UTF-8 = UTF-16 convertion
*
* Copyright (C) 1999 Masanao Izumo iz@onicos.co.jp
* Version: 1.0
* LastModified: Dec 25 1999
* This library is free. You can redistribute it and/or modify it.
*/
/*
* Interfaces:
* utf8 = utf16to8(utf16);
* utf16 = utf16to8(utf8);
*/
function utf16to8(str) {
var out, i, len, c;
out = "";
len = str.length;
for(i = 0; i len; i++) {
c = str.charCodeAt(i);
if ((c = 0x0001) (c = 0x007F)) {
out += str.charAt(i);
} else if (c 0x07FF) {
out += String.fromCharCode(0xE0 | ((c 12) 0x0F));
out += String.fromCharCode(0x80 | ((c 6) 0x3F));
out += String.fromCharCode(0x80 | ((c 0) 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c 6) 0x1F));
out += String.fromCharCode(0x80 | ((c 0) 0x3F));
}
}
return out;
}
function utf8to16(str) {
var out, i, len, c;
var char2, char3;
out = "";
len = str.length;
i = 0;
while(i len) {
c = str.charCodeAt(i++);
switch(c 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c 0x1F) 6) | (char2 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c 0x0F) 12) |
((char2 0x3F) 6) |
((char3 0x3F) 0));
break;
}
}
return out;
}
/* Copyright (C) 1999 Masanao Izumo iz@onicos.co.jp
* Version: 1.0
* LastModified: Dec 25 1999
* This library is free. You can redistribute it and/or modify it.
*/
/*
* Interfaces:
* b64 = base64encode(data);
* data = base64decode(b64);
*/
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
function base64encode(str) {
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = "";
while(i len) {
c1 = str.charCodeAt(i++) 0xff;
if(i == len)
{
out += base64EncodeChars.charAt(c1 2);
out += base64EncodeChars.charAt((c1 0x3) 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if(i == len)
{
out += base64EncodeChars.charAt(c1 2);
out += base64EncodeChars.charAt(((c1 0x3) 4) | ((c2 0xF0) 4));
out += base64EncodeChars.charAt((c2 0xF) 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 2);
out += base64EncodeChars.charAt(((c1 0x3) 4) | ((c2 0xF0) 4));
out += base64EncodeChars.charAt(((c2 0xF) 2) | ((c3 0xC0) 6));
out += base64EncodeChars.charAt(c3 0x3F);
}
return out;
}
function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = "";
while(i len) {
/* c1 */
do {
c1 = base64DecodeChars[str.charCodeAt(i++) 0xff];
} while(i len c1 == -1);
if(c1 == -1)
break;
/* c2 */
do {
c2 = base64DecodeChars[str.charCodeAt(i++) 0xff];
} while(i len c2 == -1);
if(c2 == -1)
break;
out += String.fromCharCode((c1 2) | ((c2 0x30) 4));
/* c3 */
do {
c3 = str.charCodeAt(i++) 0xff;
if(c3 == 61)
return out;
c3 = base64DecodeChars[c3];
} while(i len c3 == -1);
if(c3 == -1)
break;
out += String.fromCharCode(((c2 0XF) 4) | ((c3 0x3C) 2));
/* c4 */
do {
c4 = str.charCodeAt(i++) 0xff;
if(c4 == 61)
return out;
c4 = base64DecodeChars[c4];
} while(i len c4 == -1);
if(c4 == -1)
break;
out += String.fromCharCode(((c3 0x03) 6) | c4);
}
return out;
}
//input base64 encode
function strdecode(str){
return utf8to16(base64decode(str));
}
document.write(strdecode('5L2g5aW9Iee+juWlsyE='));
/script
首先直接做成一頁(yè),中間步驟的數(shù)據(jù)處理用JS,然后就可以正常提交,交給原系統(tǒng)的注冊(cè)處理頁(yè)面
1:首先要使用PHP的超全局變量 $_GET 和 $_POST 用于收集表單數(shù)據(jù)(form-data)
2:然后使用INSERT INTO 語(yǔ)句用于向數(shù)據(jù)庫(kù)表中插入新記錄。
具體示例:
(1)首先創(chuàng)建了一個(gè)名為 "Persons" 的表,有三個(gè)列:"Firstname", "Lastname" 以及 "Age"。
?php
$con?=?mysql_connect("localhost","peter","abc123");
if?(!$con)
{
die('Could?not?connect:?'?.?mysql_error());
}
mysql_select_db("my_db",?$con);
mysql_query("INSERT?INTO?Persons?(FirstName,?LastName,?Age)?
VALUES?('Peter',?'Griffin',?'35')");
mysql_query("INSERT?INTO?Persons?(FirstName,?LastName,?Age)?
VALUES?('Glenn',?'Quagmire',?'33')");
mysql_close($con);
?
(2)其次創(chuàng)建一個(gè) HTML 表單,這個(gè)表單可把新記錄插入 "Persons" 表。
html
body
form?action="insert.php"?method="post"
Firstname:?input?type="text"?name="firstname"?/
Lastname:?input?type="text"?name="lastname"?/
Age:?input?type="text"?name="age"?/
input?type="submit"?/
/form
/body
/html
(3)接著當(dāng)用戶(hù)點(diǎn)擊上例中 HTML 表單中的提交按鈕時(shí),表單數(shù)據(jù)被發(fā)送到 "insert.php"。"insert.php" 文件連接數(shù)據(jù)庫(kù),并通過(guò)
$_POST 變量從表單取回值。然后,mysql_query() 函數(shù)執(zhí)行 INSERT INTO 語(yǔ)句,一條新的記錄會(huì)添加到數(shù)據(jù)庫(kù)表中。
?php
$con?=?mysql_connect("localhost","peter","abc123");
if?(!$con)
{
die('Could?not?connect:?'?.?mysql_error());
}
mysql_select_db("my_db",?$con);
$sql="INSERT?INTO?Persons?(FirstName,?LastName,?Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if?(!mysql_query($sql,$con))
{
die('Error:?'?.?mysql_error());
}
echo?"1?record?added";
mysql_close($con)
?
PHP 可以通過(guò)POST、GET方法獲取到表單提交的數(shù)據(jù)
獲取到的POST、GET是數(shù)組形式的值,需要通過(guò)鍵值來(lái)詳細(xì)獲取相應(yīng)的值
比如: index.php 頁(yè)面
下面是POST方法
form name="form1" method="post" action="index.php"
input type="text" name="contents" value=""
input type="submit" value="提交"
/form
?php
//獲取表單提交的數(shù)據(jù)
$contents = $_POST['contents'];
echo $contents;
?
也可以是下面是GET方法
form name="form1" method="get" action="index.php"
input type="text" name="contents" value=""
input type="submit" value="提交"
/form
?php
//獲取表單提交的數(shù)據(jù)
$contents = $_GET['contents'];
echo $contents;
?
POST相對(duì)于GET方法,更好一些,可以提交大量數(shù)據(jù),以及更安全些。