HOT-TH.COm

.:: สังคมดีๆแห่งการแบ่งปัน ::....

คุณมี ID แล้วหรือยัง ? สมัครสมาชิก  ลืมรหัสผ่าน

หาเงินออนไลน์ งาน online โปรเจคจบ ทำ seo adword สร้างเว็บฟรี แจกสคริป

ดู: 1749|ตอบกลับ: 32

สร้างข้อความรูปภาพยืนยันตอน Login

[คัดลอกลิงก์]


1001

กระทู้

37

ติดตาม

1หมื่น

เครดิต

ผู้จัดการกระดาน

Rank: 9Rank: 9Rank: 9

โพสต์เมื่อ 5-6-2012 10:40:46 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free

หลายคนคงจะเคยเห็นแบบฟอร์ม Login หรือสมัครสมาชิกที่จะมีรูปภาพที่เป็นข้อความที่ผ่านการสุ่มขึ้นมา
เพื่อให้ท่านกรอกข้อความที่ปรากฏในรูปลงช่องรับข้อมูล ฟอร์มลักษณะนี้เป็นการ verify(ตรวจสอบ) ว่าผู้กรอก
ข้อมูลมากรอกเอง ไม่ใช่พวกโปรแกรม robot หรือโปรแกรมอัตโนมัติอื่นใดมากรอกให้
   ในบทความนี้เราจะมาทำความรู้จักกับโปรแกรมตัวนี้กันครับ
1.เริ่มแรกท่านหาไฟล์ font ที่แปลกมาซัก 1 font จะเป็น .ttf หรือ otf ก็ได้ครับ ในที่นี้ผมจะใช้ CaflischScriptPro-Regular.otf
2.ในโปรแกรมนี้จะใช้ 4 ไฟล์คือ
    (1). CaflischScriptPro-Regular.otf ไฟล์ font ที่เราจะใช้สร้างข้อความรูปภาพ

   (2). from.php สำหรับกรอกข้อมูลข้อมูล

   (3). pic_text.php สำหรับสร้างข้อความรูปภาพ
   (4). result.php สำหรับทดสอบการรับค่าจากฟอร์ม

3.เริ่มกันเลยครับ เริ่มจากสร้างไฟล์ pic_text.php แล้วเขียนโค้ด ตามนี้
<?php
$font = "CaflischScriptPro-Regular.otf"; //ไฟล์ font ที่จะใช้
$image = imagecreate(100,30);        //สร้างภาพโดยการกำหนดขนาด ยาว(แกน x), กว้าง(แกน y)
$bg = imagecolorallocate($image,200,220,220); //กำหนดสีพื้น (ภาพ,Red,Green,Blue)

$black = imagecolorallocate($image, 0, 0, 0); //กำหดนค่าสีของสีดำซึ่งจะใช้เป็นสีของตัวอักษร

imagettftext($image,28,0,2,25,$black,$font,$str); //นำตัวอักษรจากฟอร์มมาวาดเป็นรูป (รูปพื้นหลัง,ขนาด,มุม,พิกัด x-coordinate,y-coordinate,สีฟอนต์,ฟอนต์,ข้อความ) ***ระบบ coordinate (x=0,y=0)จะอยู่มุมซ้ายบนสุดนะครับ

header("Content-type:image/png");        //กำหนดชนิดของภาพตอนแสดงผลผ่าน browser
imagepng($image); //แสดงผลภาพที่สร้าง
imagedestroy($image); //เมื่อ browser ดึงไปแสดงแล้วก็คืนค่าหน่วยคืนค่าหน่วยความจำให้กับระบบ
//***การใช้หน่วยความจำอย่างประหยัดสำคัญมากในการเขียนโปรแกรม***
?>

4.สร้างไฟล์ form.php ไฟล์นี้จะมีโค้ดอยู่ 2 ส่วน ส่วนแรกทำหน้าที่ random string
<?
function ranDomStr($length){
$str2ran = 'abcdefghijklmnopqrstuvwxyz0123456789'; //string ที่เป็นไปได้ที่จะใช้ในการ random ซึ่งสามารถเพิ่มลดได้ตามความต้องการ
$str_result = ""; //สตริงว่างสำหรับจะรับค่าจากการ random
while(strlen($str_result)<$length){ //วนลูปจนกว่าจะได้สตริงตามความยาวที่ต้องการ
$str_result .= substr($str2ran,(rand()%strlen($str2ran)),1); //ต่อ string จาก substring ที่ได้จากการ random ตำแหน่ง ทีละ 1 ตัว จนกว่าจะครบตรามความยาวที่ส่งมา
}
return($str_result);//ส่งค่ากลับ
}
$ran_str = randomstr(6); //สั่ง random string
?>

  ส่วนที่สองจะเป็นเกี่ยวกับฟอร์ม
<form name="form1" method="post" action="result.php">
Username ::<input type="text" name="name">
<br>
Password :: <input type="password" name="pass">
<br>
<img src="pic_text.php?str=<?=$ran_str?>"> <!-- ส่งสตริงที่ random ได้ไปสร้างรูปภาพ-->
<br>
Code :: <input name="code_input" type="text">
<input type="hidden" name="code_hidden" value="<?=$ran_str?>"> <!-- ซ่อนสตริงไว้ในฟอร์มไว้ตรวจสอบกับค่าที่ผู้ใช้ input-->
<br>
<br>
<input type="submit" name="Submit" value="Submit">
</form>

6.ไฟล์ result.php ในที่นี้ผมจะเขียนเพียงคร่าว ๆ เพื่อทดสอบ ซึ่งท่านสามารถนำไปประยุกต์กับสิ่งที่ยากกว่านี้ได
<?
if(strcmp($_POST['code_input'],$_POST['code_hidden'])==0){ /*ตรวจสอบว่า code ที่ซ่อนมาในฟอร์มกับที่ user กรอกเข้าไปเหมือนกันหรือไม่
***การตรวจสอบความเท่ากันของสตริงนั้นมีอยู่หลายฟังก์ชัน ในที่นี้ผมใช้ strcmp ตรวจสอบโดยไม่สนใจ case แต่ไม่แนะนำให้ใช้รูปแบบ if($str1==$str2) นะครับ เพราะลักษณะการใช้หน่วยความจำของสตริงนั้นไม่ได้คงที่เหมือนตัวเลข ฉะนั้นความผิดพลาดมันเกิดขึ้นได้ครับ*/
echo "<strong>Login success.</strong><br>";
echo "<br>Hello! Khrun <strong>".$_POST['name']."<strong>";
}
else{
echo "<strong><font color=\"#FF0000\">ERROR</font></strong>";
}
?>

7.พร้อมแล้วมาทดสอบกันเลยครับ ^o^




----------------------------------------------------------------------------------------------------------------------------------
   ส่งท้าย...บทความนี้ผมประยุกต์มาจากหนังสือ 2 เล่มขอขอบพระคุณนักเขียน 2 ท่านนั้นมา ณ ที่นี้ด้วยครับ
และหวังว่าท่านผู้อ่านจะนำไปประยุกต์ต่อ เช่นกัน ^^

ผู้เข้าชมเนื้อหาถูกซ่อนไว้ คุณจะต้องแสดงความคิดเห็นก่อนจึงจะสามารถมองเห็นเนื้อหาส่วนที่ถูกซ่อนนี้ได้



0

กระทู้

2

ติดตาม

126

เครดิต

สมาชิกระดับ 2

Rank: 2

โพสต์เมื่อ 27-6-2012 20:51:14 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free

thank...............................


0

กระทู้

0

ติดตาม

107

เครดิต

สมาชิกระดับ 2

Rank: 2

โพสต์เมื่อ 25-7-2012 00:12:38 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free


thank...............................

โพสต์ได้ถูกลบไปแล้ว


1

กระทู้

1

ติดตาม

195

เครดิต

สมาชิกระดับ 2

Rank: 2

โพสต์เมื่อ 21-8-2012 01:37:17 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free

:):):):):) wow


0

กระทู้

0

ติดตาม

78

เครดิต

สมาชิกระดับ 2

Rank: 2

โพสต์เมื่อ 16-9-2012 17:04:33 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free

ขอบคุ๊๊๊๊๊๊๊๊๊๊๊๊๊๊๊๊๊๊๊๊ีีีีกกกกกกกกกกกกกกกก


0

กระทู้

0

ติดตาม

99

เครดิต

สมาชิกระดับ 2

Rank: 2

โพสต์เมื่อ 16-9-2012 23:49:36 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free

ขอบคุนครับ


0

กระทู้

0

ติดตาม

82

เครดิต

สมาชิกระดับ 2

Rank: 2

โพสต์เมื่อ 27-9-2012 13:43:59 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free

ขอบคุณคร้าบ


0

กระทู้

0

ติดตาม

108

เครดิต

สมาชิกระดับ 2

Rank: 2

โพสต์เมื่อ 1-10-2012 21:36:00 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free

RE: สร้างข้อความรูปภาพยืนยันตอน Login [แก้ไข]

Read more: http://hot-th.com/forum.php?mod= ... d=192#ixzz283fVC2qT


0

กระทู้

0

ติดตาม

100

เครดิต

สมาชิกระดับ 2

Rank: 2

โพสต์เมื่อ 21-10-2012 08:34:26 |ดูโพสต์ทั้งหมด
  shared Ping your blog, website, or RSS feed for Free

ขอบคุณมากมายครับ
Sponsor
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | สมัครสมาชิก

Ping your blog, website, or RSS feed for Free

© 2013 หาเงินออนไลน์ งาน online โปรเจคจบ ทำ seo adword สร้างเว็บฟรี แจกสคริป

Check Google Page Rank

Processed in 0.128497 second(s), 18 queries .

ขึ้นไปด้านบน