1、Undefined index: pwd in E:\xampp\htdocs\phpbase2elite\12\source\register.php on line 6
這是一個警告,表示數組下标為'pwd'未定義就在使用了
修改代碼:isset($_POST['username'])?$_POST['username']:"";2、
2、防止sql注入
// 檢查用戶端送出的資料中是否含有非法字元
function checkIllegalWord ()
{
// 定義不允許送出的SQL指令及關鍵字
$words = array();
$words[] = " add ";
$words[] = " count ";
$words[] = " create ";
$words[] = " delete ";
$words[] = " drop ";
$words[] = " from ";
$words[] = " grant ";
$words[] = " insert ";
$words[] = " select ";
$words[] = " truncate ";
$words[] = " update ";
$words[] = " use ";
$words[] = "-- ";
// 判斷送出的資料中是否存在以上關鍵字, $_REQUEST中含有所有送出資料
foreach($_REQUEST as $strGot) {
$strGot = strtolower($strGot); // 轉為小寫
foreach($words as $word) {
if (strstr($strGot, $word)) {
echo "您輸入的内容含有非法字元!";
exit; // 退出運作
}
}
}// foreach
}
checkIllegalWord(); // 檢查非法字元
3、如何在phpmyadmin中新insert一條新資料,以及解決中文顯示亂碼的問題;
先選中你要插入的表格,再在sql中輸入下面這條語句:
insert into t_user(f_username, f_password, f_name, f_email) values ('admin1', md5('123456'), '管理者', '[email protected]');
但這時你會發現中文顯示“??”,亂碼,解決辦法:
進入字段--->選擇亂碼的變量,點選修改--->将其更改成”
utf8_general_ci
“,再向表中插入中文資料,不顯示亂碼了。
還有一種辦法就是:
在建立表的時候應該先添加字段的編碼,在字段類型後面添加”
CHARACTER SET utf8 COLLATE utf8_general_ci
“,比如SQL語句
create table webgrades(
班級 varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci,
學号 varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci,
姓名 varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
成績 int (3));
那麼
CHARACTER SET utf8 COLLATE utf8_general_ci
是幹什麼用的呢?
如果表的結構指定了CHARACTER SET X和COLLATE Y,那麼采用字元集X和校對規則Y。 如果指定了CHARACTER SET X而沒有指定COLLATE Y,那麼采用CHARACTER SET X和CHARACTER SET X的預設校對規則。 否則,采用預設的字元集和伺服器校對規則。
第三種辦法:點選操作,改掉資料庫的預設編碼變為utf8_general_ci,這樣我們就不用一個個去改了
4、drop、delete和truncate
drop是删除表,使用drop之後表結構和表的資料都會被删除,truncate 和 delete是删除表裡的資料,但不删除表本身,truncate 和 delete相比,truncate要快很多,但缺點就是不能復原,包括索引等都會變成初始值,資料就無法恢複了。
5、Xampp中mysql傳來的中文資料亂碼
使用XAMPP的過程中,對于存入表中的中文,在phpmyadmin中檢視發現全是亂碼,其實單純的在mysql中也是這樣,因為預設使用的是latin1的編碼格式。
改一下mysql下的bin檔案下的my.ini檔案就可以實作使用utf8_general_ci編碼格式,這樣就能顯示中文了。
在my.ini中添加下面一些東西:
[client]
default_character_set = utf8
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
[mysql]
default_character_set = utf8
重新開機mySQL,再次存入資料,發現沒有中文亂碼問題了。
6、Notice: Undefined offset: 3 in E:\xampp\htdocs\phpbase2elite\15\bbs\TreeNode.php on line 50
就是數組越界,沒有定義;解決辦法:先用isset判斷
if(isset($arr[100])){
$arr[100]="111" ;
}
7、php傳回json資料
方法1:
$tt=json_encode(array("name"=>"111"));
echo $tt;
/*********************/
//在js檔案中
result = myReq.responseText;
//解析json資料變為對象
result=JSON.parse(result);
方法2:
echo '{"name":"1111"}';
/*********************/
//在js檔案中,用JSON.parse解析
result = myReq.responseText;
//解析json資料變為對象
result=JSON.parse(result);
樹林美麗、幽暗而深邃,但我有諾言尚待實作,還要奔行百裡方可沉睡。 -- 羅伯特·弗羅斯特