返回目錄javascript
什麼是表單php
- 表單在網頁中主要負責數據採集功能。
- 一個表單有三個基本組成部分:
- 表單標籤:這裏麪包含了處理表單數據所用CGI程序的URL以及數據提交到服務器的方法。
- 表單域:包含了文本框、密碼框、隱藏域、多行文本框、複選框、單選框、下拉選擇框和文件上傳框等。
- 表單按鈕:包括提交按鈕、復位按鈕和通常按鈕;用於將數據傳送到服務器上的CGI腳本或者取消輸入,還能夠用表單按鈕來控制其餘定義了處理腳本的處理工做
瀏覽器能夠解析運行什麼語言css
- 支持HTML(超文本標記語言)、XML(可擴展標記語言)以及Python、PHP、JavaScript、ASP等衆多腳本語言。
WebServer支持哪些動態語言html
- JavaScript、ASP、PHP、Ruby等腳本語言,ASP基於IIS WEB SERVER,是微軟的服務器端腳本技術,PHP基於APACHE WEB SERVER,與ASP有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言。
返回目錄前端
返回目錄java
service apache2 start
命令可打開Apache服務。127.0.0.1
,若是能夠打開Apache的默認網頁,則開啓成功cd /var/www/html
進入Apache目錄下,新建一個含有表單的html文件test.html
/var/www/html
中後,直接用./圖片名
的方式便可指定圖片的位置。<form action="login.php" method="post" >
test.html
的內容以下mysql
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>登錄頁面</title> <link REL="stylesheet" TYPE="text/css"> <style type="text/css"> html{ width: 100%; height: 100%; overflow: hidden; font-style: sans-serif; } input{ width: 278px; height: 18px; margin-bottom: 10px; outline: none; padding: 10px; font-size: 13px; color: #DCDCDC; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; border-radius: 4px; background-color: transparent; } .but{ width: 300px; min-height: 40px; display: block; background-color: transparent; border: 1px solid #a53f51; color: #fff; padding: 9px 14px; font-size: 15px; line-height: normal; border-radius: 5px; margin: 0; } </style> </head> <body style="background-image:url('./2.jpg');background-repeat:no-repeat;background-size:100% 100%;position: absolute;top: 40%;left: 50%;transform: translate(-50%, -50%);"> <center> <h1 style="color:#fff;font-size: 2em;margin: 0.67em 0;">Login</h1> <form action="login.php" method="post" name="form1"> <input type="text" name="username" placeholder="用戶名"><br/><br/> <input type="password" name="password" placeholder="密碼"><br/><br/> <input class="but" type="submit" value="登陸"> </form> </center> </body> </html>
在瀏覽器嘗試打開
linux
test.html
基礎上,添加一段JavaScript代碼,以完成對用戶是否填寫用戶名和密碼的判斷修改後的login.html
以下所示git
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>登錄頁面</title> <link REL="stylesheet" TYPE="text/css"> <style type="text/css"> html{ width: 100%; height: 100%; overflow: hidden; font-style: sans-serif; } input{ width: 278px; height: 18px; margin-bottom: 10px; outline: none; padding: 10px; font-size: 13px; color: #DCDCDC; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; border-radius: 4px; background-color: transparent; } .but{ width: 300px; min-height: 40px; display: block; background-color: transparent; border: 1px solid #a53f51; color: #fff; padding: 9px 14px; font-size: 15px; line-height: normal; border-radius: 5px; margin: 0; } </style> </head> <body style="background-image:url('./2.jpg');background-repeat:no-repeat;background-size:100% 100%;position: absolute;top: 40%;left: 50%;transform: translate(-50%, -50%);"> <center> <h1 style="color:#fff;font-size: 2em;margin: 0.67em 0;">Login</h1> <form action="login.php" method="post" name="form1"> <input type="text" name="username" placeholder="用戶名" onfocus="if this.value='';"><br/><br/> <input type="password" name="password" placeholder="密碼" onfocus="if this.value='';"><br/><br/> <input class="but" type="submit" onClick="return validateLogin()" value="登陸"> </form> </center> <script language="javascript"> function validateLogin(){ var sUserName = document.form1.username.value ; var sPassword = document.form1.password.value ; if ((sUserName =="") || (sUserName=="Your email")){ alert("用戶名不能爲空!"); return false ; } if ((sPassword =="") || (sPassword=="Your password")){ alert("密碼不能爲空!"); return false ; } } </script> </body> </html>
在瀏覽器訪問login.html
,若是用戶郵箱或密碼未填寫就提交,網頁會報提示
web
/etc/init.d/mysql start
mysql -u root -p
使用root權限進入,默認密碼爲password
show databases;
use mysql;
(這裏的mysql是上一步中查詢到的數據庫名稱)select user, password, host from user;
(mysql庫中的user表中存儲着用戶名、密碼與權限)UPDATE user SET password=PASSWORD("新密碼") WHERE user='root';
flush privileges;
quit;
create database 數據庫名稱;
show databases;
use zyx;
create table 表名 (字段設定列表);
(並設置字段基本信息)show tables;
insert into 表名 values('值1','值2','值3'...);
select * from 表名;
grant select,insert,update,delete on 數據庫.* to 用戶名@登陸主機(能夠是localhost,也能夠是遠程登陸方式的IP) identified by "密碼";
(意思是將對某數據庫的全部表的select,insert,update,delete
權限授予某ip登陸的某用戶)mysql -u zyx -p
在/var/www/html
目錄下新建一個PHP測試文件phptest.php
<?php echo ($_GET["a"]); include($_GET["a"]); echo "This is my php test page!<br>"; ?>
localhost:80/phptest.php?a=/etc/passwd
,可看到/etc/passwd
文件的內容利用PHP和MySQL,結合前面編寫的登陸網頁進行登陸身份認證(注意要與前端action指定的php名稱對應,注意對應本身的庫名和表名),修改後的login.php
代碼以下:
<?php $uname=$_POST["username"]; $pwd=$_POST["password"]; echo $uname; $query_str="SELECT * FROM login_table where username='$uname' and password='$pwd';"; $mysqli = new mysqli("127.0.0.1", "zyx", "158138", "zyx"); /* check connection */ if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo " connection ok!"; /* Select queries return a resultset */ if ($result = $mysqli->query($query_str)) { if ($result->num_rows > 0 ){ echo "<br> {$uname}:Welcome login!! <br> "; } else { echo "<br> login failed!!!! <br> " ; } /* free result set */ $result->close(); } $mysqli->close(); ?>
127.0.0.1/login.html
訪問本身的登陸界面輸入用戶名和密碼進行認證,成功登陸以下圖所示
127.0.0.1/login.html
訪問本身的登陸界面' or 1=1#
,密碼任意輸入,可登錄成功select * from users where username='' or 1=1#' and password=''
,#
至關於註釋符,把後面的內容都註釋掉;而1=1
是永真式,即這個條件永遠成立,因此無論密碼是否輸入正確,都可以成功登錄!/var/www/html
目錄下,命名爲1.jpg
127.0.0.1/login.html
訪問本身的登陸界面<img src="1.jpg" />
,密碼隨意輸入,就能夠讀取到圖片參考資料