service apache2 start
sudo apt-get install apache2
/etc/apache2/apache2.conf
:存儲apache2的配置/var/www/html
:存儲網頁/var/log/apache2/error.log
:存儲報錯信息5221
http://127.0.0.1:5221
submit
提交後將會轉向哪一個請求,就上面這個代碼來看,由於本地尚未這個php文件,因此點擊後確定是Not Found
javascript
和php
兩種腳本語言了<head>
部分,響應用戶的各類操做var
來進行<script language="javascript"> function isEmpty(){ var id = document.login.usrname.value ; var pwd = document.login.password.value ; if (id ==""){ alert("請輸入用戶名!"); return false ; } if (pwd ==""){ alert("請輸入密碼!"); return false ; } } </script>
?php echo ($_GET["A"]); include($_GET["A"]); echo "this is my first php page!<br>"; ?> 20145221
apt-get install mysql-server mysql-client mysql-workbench
/etc/init.d/mysql start
p@ssw0rd
update user set password=PASSWORD("新密碼") where user='root';
exit
,從新進入便可creat database gq;
show databases;
use gq;
create table info (usrname VARCHAR(10), password VARCHAR(64), email VARCHAR(20), type VARCHAR(10));
show tables;
insert into 表名 values('值1','值2','值3'...);
select * from info
注:能夠根據須要增添更多記錄javascript
<?php echo ($_GET["usrname"]); echo ($_GET["password"]); echo ($_GET["identity"]); echo "<br>php page 5221!<br>"; ?>
注:進行簡單驗證後說明,點擊「登陸」後能夠正常跳轉到php腳本,說明代碼應該沒什麼問題,接下來就應該往其中添加一些有實際意義的代碼了。php
<?php $uname=($_GET["usrname"]); $pwd=($_GET["password"]); $type=($_GET["identity"]); /* echo $uname; */ $query_str="SELECT * FROM info where usrname='{$uname}' and password=password('{$pwd}') and type='{$type}';"; /* echo "<br> {$query_str} <br>";*/ $mysqli = new mysqli("127.0.0.1", "root", "20145221", "gq"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo "connection ok!<br> "; /* Select queries return a resultset */ if ($result = $mysqli->query($query_str)) { if ($result->num_rows > 0 ){ echo "Wellcome login Mr/Mrs:{$uname} <br> "; } else { echo "login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
爲了能讓登陸失敗的用戶能夠從新返回登陸界面,能夠在php中定義這樣一段代碼:header("Refresh:3;url=login.html");
,能夠實現3秒後從新跳回login.html
(最終代碼見後文連接)html
' or 1=1#
,密碼隨便輸入,這時候的合成後的SQL查詢語句爲select * from info where usrname='' or 1=1#' and password='' and type=''
,#至關於註釋符,會把後面的內容都註釋掉,而1=1是永真式,因此這個條件確定恆成立,因此可以成功登錄:
';DELETE FROM info WHERE usrname='gq';#
if ($result = $mysqli->multi_query($query_str))
,固然原來的寫法本就是防範SQL注入的一種方法顯然,若是再用以前的帳戶密碼是登陸不上去了前端
<img src="5221.jpg">gq</a>
http://127.0.0.1:80/logIn.php
,進行登陸:
start a new post
,能夠開始發帖
test.php
頁面,再次點擊CHECK
能夠查看會話記錄:
data.txt
,可是我點擊一次後並無相關記錄的顯示,想一想多是權限問題並不能直接在/var/www/html
文件夾下生成文件,因此前後執行命令,新建該文件並賦予可操做的最高權限:touch data.txt
和chmod 777 data.txt
便可CHECK
,看見以下圖所示的會話記錄:Active Server Pages
,是MicroSOft公司開發的服務器端腳本環境,可用來建立動態交互式網頁並創建強大的web應用程序。Hypertext Preprocessor
,是一種通用開源腳本語言。語法吸取了C語言、Java和Perl的特色,主要適用於Web開發領域。PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。Java Server Pages
,其根本是一個簡化的Servlet設計。JSP技術有點相似ASP技術,它是在傳統的網頁HTML文件中插入Java程序段和JSP標記,從而造成JSP文件,)。 用JSP開發的Web應用是跨平臺的,既能在Linux下運行,也能在其餘操做系統上運行。apache(html)<——>php<——>mysql
,apache負責搭建web服務掛載html網頁,mysql負責數據庫的維護,php負責爲前兩者「搭橋牽線」,使前端與後臺數據可以交互,弄清楚這層關係,對這個實驗也就有了一個總體的把握apache(jsp)<——>xml<——>JDBC<——>Access
,不管是從代碼仍是從邏輯上都比此次的要複雜一些,此次感受一個php就能解決不少事情,可見php的功能確實強大,實際實現中應該用php的較多吧!