Chuẩn bị điều kiện luyện tập: Đồ dùng: Bảng qui trình, tài liệu học tập.Trang thiết bị: Máy vi tính kết nối mạng, phần mềm PHP, My SQL cài đặt sẵn, các tài liệu phát tay.Yêu cầu:Chấp hành nghiêm túc nội quy thực hành.Sắp xếp nơi thực hành gọn gàng, khoa học.Tuân thủ sự hướng dẫn của giáo viên
Trang 1Phiếu hướng dẫn thực hiện Tích hợp PHIẾU HƯỚNG DẪN THỰC HIỆN
Tên bài luyện tập: Trao đổi thông tin với trình duyệt bằng Session và làm việc với Cookie
Họ tên sinh viên:……… Lớp:……… Máy số:……… Ngày thực hiện:
…………
Chuẩn bị điều kiện luyện tập:
- Đồ dùng: Bảng qui trình, tài liệu học tập
- Trang thiết bị: Máy vi tính kết nối mạng, phần mềm PHP, My SQL cài đặt sẵn, các tài liệu phát tay
Kỹ năng - Sử dụng được trình duyệt Web
- Sử dụng được lập trình ứng dụng Web với PHP
- Làm việc được với Cookie và LDAP
- Thao tác được với cơ sở dữ liệu MySQL và với Email
- Truy vấn được cơ sở dữ liệu khác thông qua ADO
- Xử lý được XML
Trang 2- Hàm khai báo một session:
- Gõ sai chínhtả;
hiện kịpthời gian;
- Thực hiện đoạn code sau:
<?phpsession_start();
$_SESSION['views'] = 1; // lưu viewsecho "Pageviews = ". $_SESSION['views']; //lấy views và hiện thị
hiện kịp thời gian;
- Thực hiện đoạn code sau:
<?phpsession_start();
if(isset($_SESSION['views'])) $_SESSION['views'] = $_SESSION['views']+ 1;
else $_SESSION['views'] = 1;
Trang 3Hủy
Session: - Thực hiện đúng lệnh;
kịp thời gian;
<?phpsession_start();
if(isset($_SESSION['cart'])) unset($_SESSION['cart']);
?>
Có thể hủy hoàn toàn các session bằng cách gọi hàng session_destroy
<?phpsession_start();
- Thực hiện đúng yêu cầu;
- Gõ đúng lệnh, sai chính tả;
- Thực hiện đúng trình
tự các
- Khai báo với cú pháp:
setcookie(name, value, expire, path, domain);
- Không rõyêu cầu;
- Gõ sai lệnh,sai chính tả;
Trang 4bước; setcookie('myCookie','this is myCookie\'s value',time()+60*60);
?>
</body>
</html>
- Mở trình duyệt, nhập đường dẫn http://localhost/bai4.php
- Click vào chữ firefox ở góc trên cùng bên trái, chọn thẻ tùy chọn
Trang 5- Một bảng tùy chọn hiện ra, chọn thẻ riêng tư
Trang 6- Chọn dòng xóa các cookie riêng lẻ
Trang 7- Một bảng cookie hiện ra, kéo xuống sẽ nhìn thấy dòng chữ localhost
Trang 8- Click đúp vào dòng chữ localhost, chúng ta sẽ thấy biến ‘myCookie’ với
Trang 9đầy đủ thông số mà chúng ta vừa tạo
- Click đóng để thoát
6 Đọc các
Cookie - Khai báo đúng cấu - Khai báo cú pháp:$_COOKIE["tên cookie"]; - cấu trúc khaiSữ dụng sai
Trang 10- Thực hiện đúng yêu cầu;
- Gõ đúng lệnh, sai chính tả;
- Thực hiện kịp thời gian;
- Cập nhật đoạn code sau vào file bai4.php
- Gõ sai lệnh,sai chính tả;
Trang 117 Xóa một
Trang 12- Thực hiện đúng yêu cầu;
- Gõ đúng lệnh, sai chính tả;
- Thực hiện kịp thời gian;
setcookie(name, value, expire, path, domain);
- Nhập đoạn code sau vào file bai4.php
//hủy biến myCookiesetcookie('myCookie','this is myCookie\'s value',time()-60*60);
- Gõ sai lệnh,sai chính tả;
Trang 13- Refresh lại trình duyệt 2 lần
Biển ‘myCookie’ đã không còn, do đó khi chúng ta muốn in nó ra tại dòng
echo $_COOKIE['myCookie'];
Trang 14, trình duyệt sẽ báo lỗi.
Phiếu hướng dẫn thực hiện Tích hợp PHIẾU HƯỚNG DẪN THỰC HIỆN
Tên bài luyện tập: Thao tác với cơ sở dữ liệu MySQL và truy vấn cơ sở dữ liệu khác thông qua ADO
Trang 15Họ tên sinh viên:……… Lớp:……… Máy số:……… Ngày thực hiện:
…………
Chuẩn bị điều kiện luyện tập:
- Đồ dùng: Bảng qui trình, tài liệu học tập
- Trang thiết bị: Máy vi tính kết nối mạng, phần mềm PHP, My SQL cài đặt sẵn, các tài liệu phát tay
Kỹ năng - Sử dụng được trình duyệt Web
- Sử dụng được lập trình ứng dụng Web với PHP
- Làm việc được với Cookie và LDAP
- Thao tác được với cơ sở dữ liệu MySQL và với Email
- Truy vấn được cơ sở dữ liệu khác thông qua ADO
- Khai báo cú pháp:
mysql_connect(host,tên_truy_cập,mật_
khẩu);
- Sử dụng sai cấu trúc;
- Gõ sai
Trang 16- Sử dụng đúng hàm;
- Sử dụng đúng cấutrúc;
- Soạn lện đúng chính tả;
- Thực hiện nhập code sau:
<?php $link = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$link) {
- Lựa chọn đúng CSDL;
- Khai báo:
mysql_select_db (tên_CSDL);
- Soạn vào bài ở trên như sau:
<?php $link = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$link) {
Trang 17- Sử dụng đúng hàm;
- Gõ đúng lệnh;
$biến= mysql_query(“Lệnh SQL”)or die(“Không thựchiện duợc SQL”);
Các hàm cần thiết:
– mysql_affected_rows(): Số bảnghibị tác dộng bởi lệnh mysql_query liền truớc
– mysql_error(): Thông báo lỗi(nếucó)– mysql_errno(): Mã lỗi
Trong TH buớc3 là SELECT:
Trang 18ghi trong $rs– $r=mysql_fetch_array($rs): Trả 1 dòng của $rs vào $r.
4 Đóng kết
nối tới
CSDL
- Khai báođúng cú pháp;
- Nhập đúng cú pháp;
- Khai báo cú phápmysql_close(mã_định_danh_kết_nối)
- Nhập vào code sau:
<?php $link = mysql_connect("localhost", "
mysql_user", "mysql_password");
if (!$link) {
echo "Không thể kết nối được tới MySQL";
} mysql_close($link);
- Thực hiện
- Khai báo namespace cho SQL Server và MS Access
using System.Data;
using System.Data.OleDb; // Khai
- Gõ saichính tả;
- Thực hiệnsai trình tự;
Trang 19đúng trình tự;
- Trình bàiđúng cấutrúc;
- Soạn thảo đúng chính tả;
- Sử dụng đúng hàm;
- Thực hiện đúng CSDL;
- Làm bài đúng thời gian;
báo cho Access using System.Data.SqlClient; // Khai báo cho SQL Server
- Tạo kết nối với SQL Server & MS Access
//của SQL Serverstring connectionString = "localhost;
database=db_test; uid=sa; pwd=;";
SqlConnection conn = new SqlConnection(connectionString);
//của MS Accessstring connectionString =
"provider=Microsoft.JET.OLEDB.4.0;"
+ "data source = c:\\db_test.mdb";
- Tạo Data Adapter cho SQL Server
& MS Access//Data Adapter của SQL Serverstring commandString = "SELECT * from Table1";
SqlDataAdapter dataAdapter = new
Trang 20SqlDataAdapter(commandString, conn);
//Data Adapter của MS Accessstring commandString = "SELECT * from Table1";
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(commandString, conn);
OleDbConnection conn = new OleDbConnection(connectionString);
- Tạo DataSet:
//Tạo DataSetDataSet ds = new DataSet();
//Đẩy dữ liệu trong dataAdapter vào DataSet (ds) bằng hàm Fill()
dataAdapter.Fill(ds);
//Đối tượng DataSet chứa 1 tập các DataTable, nhưng ta chỉ lấy Table đầu tiên:
Trang 21DataTable dt = ds.Tables[0];
//Dùng vòng lặp foreach để lấy ra từng DataRow
foreach (DataRow dr in dt.Rows){ listBox1.Items.Add(dr["CompanyName"].ToString() +
dr["ContactName"]);
}
- Tạo đối tượng DataAdapter kết nối
trực tiếp vào Database không
Trang 22string commandString = "SELECT CompanyName, ContactName from Table1";
//Tạo đối tượng DataAdapter và DataSet
SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, connectionString);
//Tạo đối tượng DataSetDataSet ds = new DataSet();
//Đẩy dữ liệu trong dataAdapter vào DataSet (ds) bằng hàm Fill()
dataAdapter.Fill(ds, "Table1");
//Đối tượng DataSet chứa 1 tập các DataTable, nhưng ta chỉ lấy Table đầu
Trang 23DataTable dt = ds.Tables[0];
//Dùng vòng lặp foreach để lấy ra từng DataRow
foreach (DataRow dr in dt.Rows){
listBox1.Items.Add(dr["CompanyName"].ToString() + dr["ContactName"]);
}Của MS Assces//Khai báo chuỗi kết nối dữ liệu for MSAccess
string connectionString =
"provider=Microsoft.JET.OLEDB.4.0;"
+ "data source = c:\\db_test.mdb";
//Lấy các dòng dữ liệu từ bảng Table1
Trang 24string commandString = "SELECT CompanyName, ContactName from Table1";
//Tạo đối tượng DataAdapter và DataSet
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(commandString, connectionString);
//Tạo đối tượng DataSetDataSet ds = new DataSet();
//Đẩy dữ liệu trong dataAdapter vào DataSet (ds) bằng hàm Fill()
dataAdapter.Fill(ds, "Table1");
//Đối tượng DataSet chứa 1 tập các DataTable, nhưng ta chỉ lấy Table đầu
Trang 25DataTable dt = ds.Tables[0];
//Dùng vòng lặp foreach để lấy ra từng DataRow
foreach (DataRow dr in dt.Rows){
listBox1.Items.Add(dr["CompanyName"].ToString() + dr["ContactName"]);
Trang 26//using System.Data.OleDb; //for Access database
using System.Data.SqlClient; //for SQL Server
namespace DB_Test{
public partial class Form1 : Form {
//1 Khai báo biến thành viên:
private System.Data.SqlClient.SqlConnection conn;
private System.Data.DataSet ds;
private System.Data.SqlClient.SqlCommand myCommand;
private System.Data.SqlClient.SqlDataAdapterdataAdapter;
Trang 27public Form1() {
string connectionString =
"localhost; database=db_test; uid=sa;
pwd=;";
conn = new SqlConnection(connectionString);
//3 Mở kết nối - Open
Trang 28myCommand = new SqlCommand();
myCommand.Connection = conn;
myCommand.CommandText =
"SELECT * from Table1";
//6 Tạo đối tượng DataAdapter
và gắn đối tượng command cho nó
// Dùng hàm Fill() để đẩy dữ liệu trong Adapter vào ds như bình
Trang 29dataAdapter = new SqlDataAdapter();
dataAdapter.SelectCommand = myCommand;
dataAdapter.TableMappings.Add("Table", "Table1");
dataAdapter.Fill(ds);
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{ //listBox1.Items.Add(dr["CompanyName"].ToString() + dr["Description"]);
} }
Trang 30}}
Trang 31Phiếu hướng dẫn thực hiện Tích hợp PHIẾU HƯỚNG DẪN THỰC HIỆN
Tên bài luyện tập: Làm việc với LDAP, thao tác với Email và xử lý XML
Họ tên sinh viên:……… Lớp:……… Máy số:……… Ngày thực hiện:
…………
Chuẩn bị điều kiện luyện tập:
- Đồ dùng: Bảng qui trình, tài liệu học tập
- Trang thiết bị: Máy vi tính kết nối mạng, phần mềm PHP, My SQL cài đặt sẵn, các tài liệu phát tay
Kỹ năng - Sử dụng được trình duyệt Web
- Sử dụng được lập trình ứng dụng Web với PHP
- Làm việc được với Cookie và LDAP
- Thao tác được với cơ sở dữ liệu MySQL và với Email
- Truy vấn được cơ sở dữ liệu khác thông qua ADO
- Xử lý được XML
Trang 32cú pháp;
- Sử dụng đúng lệnh;
- Gõ đúng chính tả;
- Sử dụng đúng hàm;
$ldaphost = "ldap.example.com";
$ldapport = 389;
$ldapconn = ldap_connect($ldaphost, $ldapport)
- Sử dụng đúng
- Khai báo
Ldap_ bind(string hostname, int port);
- Nhập tiếp vào code
<?php
$ldaprdn = 'uname';
$ldappass = 'password';
- Gõ sai chính tả;
- Sử dụng sai hàm;
Trang 33- Gõ đúng lệnh;
- Làm bài đúng thời gian;
$ldapconn = ldap_connect("ldap.example.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) { $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
if ($ldapbind) { echo "LDAP bind successful ";
} else { echo "LDAP bind failed ";
}}
or die("Could not connect to LDAP server.");
if ($ldapconn) {
$ldapbind = ldap_bind($ldapconn);
if ($ldapbind) {echo "LDAP bind anonymous successful ";
Trang 34} else {echo "LDAP bind anonymous failed ";
}}
- Gõ đúng lệnh;
- Khai báo
ldap_search ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]] )
- Soạn thảo code:
<?php
$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
echo $info["count"]." entries returned\
n";
- Gõ saichính tả;
Trang 35- Sử dụng đúng hàm;
- Gõ đúng lệnh;
- Làm bài đúng thời gian;
- Thêm các entry vào thư mục LDAP
bool ldap_add ( resource link_identifier, string dn, array entry )
<?php
$ds = ldap_connect(“localhost”);
if ($ds) {
$r = ldap_bind($ds, “cn=root, o=My Company, c=US”, “secret”);
$info["cn"] = “John Jones”;
$info["sn"] = “Jones”;
$info["mail"] = “jonj@example.com”;
$info["objectclass"] = “person”;
$r = ldap_add($ds, “cn=John Jones, o=My Company, c=US”, $info);
ldap_close($ds);
} else {echo “Unable to connect to LDAP server”;
}
Trang 36
- So sánh giá trị của một thuộc tính
mixed ldap_compare ( resource link_identifier, string dn, string attribute, string value )
- Trả lại thuộc tính đầu tiên của entry
string ldap_first_attribute ( resource link_identifier,resource result_entry_identifier,int
&ber_identifier )
- Trả lại kết quả id đầu tiên của entry
ldap_first_entry ( resource link_identifier, resource result_identifier )
Trang 37- Trả lại tham chiếu đầu tiên
ldap_first_reference ( resource link,resource result )
- Sử dụng đúng hàm;
- Gõ đúng lệnh;
Trang 38- Trình bày đúngcấu trúc;
- Sử dụng đúng hàm;
- Gõ đúng lệnh;
- Làm bài đúng thời gian;
- Khai báo:
mail (dia_chi_nhan,tieu_de,noi_dung,cac_tham_so_mo_rong_tuy_chon)
- Nhập code
<?php
if (isset($_REQUEST['email'])) {
$email = $_REQUEST['email'] ; $to = $_REQUEST['to'] ;
$subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ; mail( $to, "Subject: $subject",
$message" );
echo "Thank you for using our mail form";
}else { echo "<form method='post' action='phpmail.php'>
Trang 39Tiêu đề: <input name='subject' type='text' /><br />
Nội dung:<br />
<textarea name='message' rows='15' cols='40'>
Trang 40
-$to = "Kelly < kelly@example.com>";
$subject = "Birthday Reminders for August";
Trang 41<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
Trang 43<publisher>Arthur A Levine Books</publisher>
Trang 44echo <<<EOF <tr>
<td>{$book->title}</td>
<td>{$book->author}</td>
<td>{$book->publisher}</td>
<td>${$book->amazon_price}</td>
<td>{$book['isbn']}</td>
</tr>
EOF;
}echo '</table>';
Trang 45}
$isbn = $books->xpath('book/@isbn');
foreach($isbn as $isbn){
echo $isbn.PHP_EOL;
} Nếu bạn không thích dụng foreach thì
Trang 46có thể dùng biến counter $i, viết lại là
$tempBook = $books->book[$i] rồi dùng $tempBook để xử lý
<h2><a href='{$item->link}'>{$item->title}</a></h2>
<div>Posted at: {$item->pubDate}</div>
{$item->description}
<hr />
EOF;