2006/Nov/15

NPC : ป๋าเดี่ยว

คับ ปัญหาที่ถูกถามมากที่สุดอีกปัญหาก็คือ การ create project ของ ASP.net ใน IDE ของ VS2003 ซึ่ง install ไปแล้วมันไม่ลงตัวเท่าไหร่ น่ะคับ

วิธีการแก้ไข คือ

1. ตรวจสอบ IIS ก่อนว่าลงไปแล้วรึยัง

2. ตรวจสอบ Service ว่า IIS ถูกตั้งค่าให้ started หรือ automatic แล้วรึยัง

3. การเข้าไป ใน Command Prompt ของ Visual Studio 2003 แล้วใช้ Command Line ดังนี้

C:\> ....... aspnet_regiis -i แล้วก็ Enter คับ

อีกวิธีที่ต้องทำคือ ในตำแหน่งเดียวกัน พิมพ์

C:\> ....... regsvr32 aspnet_isapi เพื่อเป็นการ install file .dll ดังกล่าว

แต่ คำสั่งที่สอง อย่าเพิ่งลองทำนะคับ ลองใช้ aspnet_regiss -i ก่อน แล้ว ตรวจสอบ service ว่า มันยังเป็น php หรือ iis ยังไม่ได้ ถูกสั่งให้ทำงานแล้วรึยัง

4. หาก ทำตามขั้นตอน แล้ว ยัง create proj ไม่ได้ อีก ให้ restart เครื่องดูก่อน เพราะบางที service ยังทำงานไม่พร้อม [เออน่า restart ก็ restart ไปเหอะ ]

5. หากยังทำไม่ได้ อีก ลองเข้าไปตรวจสอบดูใน IIS ที่ตำแหน่ง %SystemRoot%\system32\inetsrv\iis.msc เสร็จแล้ว เข้า properties ของ Default Web Site

หลังจากนั้น เข้าไปยัง tab Web Site ให้เราไปกำหนดค่า IP Address ให้เป็น (All Unassigned)

CloveR
Ink Studio

2006/Nov/13

วันนี้มาเรียน เรื่อง JavaScript ดีกว่า
STUDY CASE: [REUTERS ]
NPC : [Sang-[M]in]
DETAILS :
Ep : "แต้ เค้าอากเปิด new windows แล้วให้มันส่งค่ากลับมาใหม่อ่ะทำไง"
Tae : "ยังไง ส่งค่ากลับมา"
Ep ""เหมือน Return อะป่าว ไม่รู้ดิ"
Tae:"คือ ให้ลูกส่งค่าให้แม่เหรอ"
Ep:" อือ แบบว่า เปิด windows ใหม่ แล้ว พอปิด ปี๊บ ค่าก็จะส่งกลับมา ที่ page เดิมอ่ะ"
Tae : "อ่อ แล้วปิดแล้วมันจะส่งมาไงอ่ะ มันมีแต่ link กับ submit ไม่ใช่เหรอส่งค่าได้"
Ep : "..."
Example : [ A.htm ]
<a href="AA.htm" target="_blank">AA.Open</a>
<form name=frm method="get" >
<input type="text" name="test" value="123">
</form>
<input type="submit" onclick='alert(document.getElementById("test").value)'/>
Example : [ AA.htm ]
<input type="submit" onclick='alert(self.opener.parent.document.getElementById("test").value)'/>
<input type="submit" onclick='self.opener.parent.document.getElementById("test").value="yess"' value=Set/>
<input type="button" onclick='window.open(self.opener.parent.location,"_parent","")' value=show />
OutPut
หลังจากที่ เปิด A.htm ก็จะเห็นข้อความดังภาพข้างตน พอกด AA.Open จะเป็นการเปิด เอกสาร AA.htm ขึ้นมา
หน้าตาของ AA.htm พอกดปุ่มแรก Submit Query จะมี Alert ของ java ขึ้นมา เป็นการแสดงค่า textbox ใน เอกสาร A.htm ในขณะนั้น แสดงให้เห็นว่า เราสามารถ เข้าถึงข้อมูลใน windows ของ parent ได้
แต่พอเรากดปุ่ม ที่สอง( Set/ ) หลังจากกดเสร็จแล้ว ให้กลับไป ยัง parent หรือ windows แรกที่แสดงเอกสาร A.htm อยู่จะพบว่า ค่าของ textbox เปลี่ยนไปแล้ว
คับ แนนอนเลย textbox เปลี่ยนจาก 123 ไปเป็น yess แล้ว ที่นี้เราก็สามารถ assign ค่าผ่าน ทาง parent ได้แล้ว ง่ายมั้ยล่ะคับ

self.opener.parent
//เป็นการอ้างถึง windows ใด ๆ ที่เป็นตัว parent ของหน้า windows ปัจจุบัน
self.opener.parent.document.getElementById("test").value="yess"
//เป็นการ assign ค่า ให้กับ element ชื่อ test ในเอกสารของ parent

2006/Nov/10

[SMTP]
Sending a Simple E-Mail Message
เริ่มด้วยการใช้ ASP.net

using System.Net.Mail;

ทางนี้ขอเลือกภาษาเป็น C# ละกันนะคับ
อันดับแรก เราใส่ ปุ่ม Button ไว้สำหรับส่ง email
หลังจาก กดแล้ว ทาง VS.2005 จะสร้าง method ให้เราดังนี้
protected void Button1_Click1(object sender, EventArgs e)
{
}
หลังจากนั้น ให้เรา ใส่ code สำหรับการส่ง mail ลงไป เช่น
MailAddress from = new MailAddress("AR_TAE@hotmail.com");
// สร้าง from เก็บราชื่อ mail สำหรับคนส่ง mail
MailAddress to = new MailAddress("AR_TAE@hotmail.com");
// สร้าง to เก็บรายชื่อ mail ปลายทาง
MailMessage message = new MailMessage(from, to);
// สร้าง message เพื่อกำหนด รายละเอียดของ mail
message.Subject = txtTopic.Text;
// ส่วน subject
message.Body = txtComment.Text;
// ส่วน Body
message.BodyEncoding = System.Text.Encoding.ASCII;
// คำสั่ง ให้ body มีการ Encode แบบ ASCII
message.IsBodyHtml = true;
// คำสั่งอนุญาติให้ ข้อความที่ส่งไปสามารถใช้คำสั่ง html ได้
message.Priority = MailPriority.High;
// คำสั่งกำหนดความสำคัญของ email ฉบับนี้

try
{
SmtpClient client = new SmtpClient("localhost");
// เลือก server ที่จะทำการรับผิดชอบการส่ง email ฉบับนี้
client.Send(message);
// ใช้ client ที่กำหนดเมื่อกี้ ทำหน้าที่ส่ง message ที่ได้กำหนด
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
เป็นอันเสร็จสิ้น
ปัญหาก็คือ หลังจากส่ง แล้วมีการ Error mail Relay
ให้แก้ปัญหาโดยให้เข้าไปที่
1. Computer Management ใน control panel
2. แล้วเข้าไปที่ Services and Applications
3. ตามด้วย Internet Information Services
4. จะเห็น Default SMTP คลิกขวา properties
5. เลือก tab Access แล้วเลือกปุ่ม Relay..
6. จากนั้นจะปรากฏหน้า window Relay Restrictions
หลังจากทำตามจนได้ ดังรูปแล้ว
เข้าไป Run ใหม่ตาม code นี้ [code เดิมนั่นแหละ เอา comment ออกให้อ่านง่าย]
protected void Button1_Click1(object sender, EventArgs e)
{
MailAddress from = new MailAddress("
AR_TAE@hotmail.com");
MailAddress to = new MailAddress("
AR_TAE@hotmail.com");
MailMessage message = new MailMessage(from, to);
message.Subject = txtTopic.Text;
message.Body = txtComment.Text;
message.BodyEncoding = System.Text.Encoding.ASCII;
message.IsBodyHtml = true;
message.Priority = MailPriority.High;

try
{
SmtpClient client = new SmtpClient("Localhost");
client.Send(message);
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
}
ก็จะได้ mail มาแบบนี้

ปล. อันนี้ เปิดดูจาก C:\Inetpub\mailroot\Queue
ซึ่ง ไม่แน่ใจว่า ส่งได้จริงรึเปล่า เพราะเครื่องนี้ ยังไม่ได้ set outlook ยังไง หลาก็ไปลองดูหน่อยละกันนะ
ถ้าจะส่ง ไปยัง hotmail จิง ๆ เราต้อง Set SMTP ยังไงเนี่ยไม่รู้เหมือนกัน อ่ะคับ ถ้ามีอะไร update ก็จะมา update ให้ละกันนะคับ
CloveR
Ink Studio
[Empty Project]