במדריך זה אני יסביר לכם איך ליצור ב GD קוד אבטחה ולאחר מכן לבדוק אם המשתמש הקליד את הקוד נכון...
אנחנו לצורך העניין נשתמש בקובץ PHP שמתחיל ככה:
PHP קוד:
switch($_GET["act"]) {
case "image":
image();
break;
case "doimage":
doimage();
break;
default:
indeximage();
break;
}
מטרת החלק הזה היא לבדוק איזה ערך יש ב GET שהוא ACT ולפי כך למיין את הקוד לפונקציות..
הפונקציה image();
בפונקציה זו אנחנו ניצור את התמונה שעליה יודפס קוד בעל 5 ספרות ואותיות רנדומליות לחלוטין..
על מנת לגשת אל התמונה עלינו לרשום <img src='?act=image'>
PHP קוד:
function image() {
header ("Content-type: image/png");
$string = substr(md5(time()) 0,5); // הקוד שיוצג הוא בעצם ה 5 אותיות או ספרות הראשונות בהצפנה MD5 של הזמן העכשיווי time()..
$font = 4;
$width = 50;
$height = 20;
$im = @imagecreate ($width,$height);
$background_color = imagecolorallocate ($im, 255, 255, 255); //רקע לבן
$text_color = imagecolorallocate($im, 255, 0, 0);
imagestring ($im, $font, 0, 0,$string, $text_color);
imagepng ($im);
}
הפונקציה indeximage();
זוהי הפונקציה של ברירת המחדל.. כל מי שייכנס אל הדף שלנו רואה את פונקציה זו...
PHP קוד:
function indeximage() {
$string = substr(md5(time()), 0,5); // בדיוק אותו הערך שיש על התמונה
echo "
<form method=\"POST\" action=\"?act=doimage\">
<img src=\"image.php?act=image\"><br>
<input type=\"hidden\" name=\"real\" value=\"$string\">
<font face=arial>Enter the code below:</font> <input type=\"text\" name=\"input\" size=\"20\"><br>
<input type=\"submit\" value=\"ùìç\" name=\"submit\">
</form>
";
}
הפונקציה doimage();
בפונקציה זו אנחנו מקבלים 2 משתני POST. האחד הקוד הנכון אשר היה HIDDEN בטופס והשני הוא מה שהמשתמש הקליד..
PHP קוד:
function doimage() {
$real = $_POST["real"];
$input = $_POST["input"];
if($real != $input) { // אם המשתמש הקליד קוד שגוי
die("<font face=arial color=red>Incorrect</font>");
return false;
} else { // אם המשתמש הקליד קוד נכון
die("<font face=arial color=green>correct</font>");
return true;
}
}
הסוף!
מקווה שהבנתם משהו מהמדריך..
תהנו ותלמדו