PHP 튜토리얼 확인 코드 프로그램을 호출 하는 HTML
<! doctype HTML 공개 "-//W3C//DTD XHTML 1.0 전환 / / 엉" "http://www.jzread.com/tr/xhtml1/dtd/ Xhtml1 transitional.dtd ">
< html lang = "en-우리" xml: lang = "en-US" xmlns "http://www.w3.org/1999/xhtml" = >
< 제목 > 로그인 < / 타이틀 >
< 연결 rel = "stylesheet" 유형 = "텍스트/css 자습서" href = "/tryit.css 자습서" / >
< 스크립트 유형 = "텍스트/웹 효과" >
함수 getpinimg)
{
document.getElementById ("Pinimg"). src = "log_demo.php 튜토리얼?는 핀 & r = =" + math.random ();
}
</스크립트 >
</헤드 >
< 몸 >
< 행동 양식 = "log_demo.php" 메서드 "Get" = >
< 입력 유형 = "숨겨진된" 이름 = "" 값 = "로그" / >
사용자: < 입력 유형 = "텍스트" 이름 = "사용자" 크기 = "값 =" "테스트" / >< br / >< br / >
비밀 번호: < 입력 유형 = "암호" 이름 = "통과" 크기 = "" 값 = "123456" / >< br / >< br / >
Pincode: < 입력 유형 = "텍스트" 이름 = "핀" 크기 = "8" 값 = "" / >
< 입력 유형 = "버튼" 값 = "Getpin" onclick = "getpinimg ();" >
< img id = "pinimg" src = "Log_demo.php?a=pin" onclick = "getpinimg" (); "/ >
< 입력 유형 = "Submit" 값 = "Submit" >< br / >
</양식 >
</바디 >
< / html >
log_demo.php 코드
<? php
Require_once ("log_aux.php");
만약 ($_get [' 한 '] "핀" = =) 없음
Getpinimg ();
출구;
}
만약 ($_get [' 한 '] = = "로그") 없음
$ret Checkpincookie = ($_get [' 핀 '), 300);
경우 ($ret < 0) 없음
에코 "핀 오류: $RETN";
출구;
}
사용자 이름 및 암호를 확인 합니다.
에코 확인... $retn ";
경우 ("123xx" = 123) 없음
에코 "DDDDN";
}
에코 $_get [' u '];
}
log_aux.php 코드
<? php
$magic _a = "www.jzread.com34589";
$magic _b = "234566 * * * +";
Getpincookie ($pin _code) 기능
{
글로벌 $magic _a;
글로벌 $magic _b;
$now = 시간 ();
$client _ip = $_server [' remote_addr '];
$pin = MD5 ($now. $client _ip. $magic _a. $pin _code. $MAIGC _b). $now;
$pin; 반환
}
Checkpincookie 기능 ($pin _code_in, $timeout = 300) //5 miniutes www.jzread.com
{
글로벌 $magic _a;
글로벌 $magic _b;
$pin = substr ($_cookie [' 핀 '), 0, 32);
$time = substr ($_cookie [' 핀 '), 32);
$now = 시간 ();
경우 ($now-$time > $timeout) 없음
반환-100; Time_out
}
$pin _code_in = strtolower ($pin _code_in);
$client _ip = $_server [' remote_addr '];
$pin _2 = MD5 ($time. $client _ip. $magic _a. $pin _code_in);
경우 ($pin = = = $pin _2) 없음
0; 반환
그 밖에 없음
반환-200; Pincode 오류입니다.
}
}
함수 getpinimg)
{
$rnd = rand (0, 10);
$rnd = 0;
$path = ". / www.jzread.com/". substr ("00000$ rnd",-4);
대 한 ($i = 0; $i < 4; + + $i) 없음
경우 없음; (__getpinimg ($path))
휴식;
}
}
출구;
}
기능 __getpinimg ($path)
{
필요 ("$path/pinmap.php");
$PINV = $pin [랜드 (0, $pin _max)];
목록 ($file, $pin _code) = 폭발 ('#', $PINV);
$filepath = "$path / $ $pin_ext 파일";
출력 pincode 이미지입니다.
$fh = fopen ($filepath, "RB");
만약 (! $fh) 없음
반환 허위;
}
$data = Fread ($fh, 10240); PHP는 단지 최대 크기: 8 k를 읽었다.
Fclose ($FH);
경우 (strlen ($DATA) < 200) 없음
반환 허위;
}
쿠키 설정된;
헤더 ("콘텐츠-유형: 이미지 / jpeg");
$pin _code = strtolower ($pin _code);
$pin = Getpincookie ($pin _code);
Setcookie ("핀", $pin);
에코 $data;
반환 사실;
}