html調用php教程 驗證碼程式
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "HTTP://www.jzread.com/tr/xhtml1/dtd/ xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us" xmlns="HTTP://www.w3.org/1999/xhtml">
<title>login</title>
<link rel="stylesheet" type="text/css教程" href="/tryit.css教程" />
<script type="text/網頁特效">
function getpinimg()
{
document.getelementbyid("pinimg").src="log_demo.php教程?a=pin&r=" + math.random();
}
</script>
</head>
<body>
<form action="log_demo.php" method="get">
<input type="hidden" name="a" value="log" />
user:<input type="text" name="user" size="20" value="test" /><br /><br />
password:<input type="password" name="pass" size="12" value="123456" /><br /><br />
pincode:<input type="text" name="pin" size="8" value="" />
<input type="button" value="getpin" onclick="getpinimg();" >
<img id="pinimg" src="log_demo.php?a=pin" onclick="getpinimg();" />
<input type="submit" value="submit"><br />
</form>
</body>
</html>
log_demo.php代碼
<?php
require_once("log_aux.php");
if ($_get['a'] == "pin") {
getpinimg();
exit;
}
if ($_get['a'] == "log") {
$ret = checkpincookie($_get['pin'], 300);
if ($ret < 0) {
echo "pin error:$retn";
exit;
}
check user name and password.
echo "ok.. $retn";
if ("123xx" == 123) {
echo "ddddn";
}
echo $_get['u'];
}
log_aux.php代碼
<?php
$magic_a = "www.jzread.com34589";
$magic_b = "234566***+";
function getpincookie($pin_code)
{
global $magic_a;
global $magic_b;
$now = time();
$client_ip = $_server['remote_addr'];
$pin = md5($now . $client_ip . $magic_a . $pin_code . $maigc_b) . $now;
return $pin;
}
function checkpincookie($pin_code_in, $timeout=300) // 5 miniuteswww.jzread.com
{
global $magic_a;
global $magic_b;
$pin = substr($_cookie['pin'], 0, 32);
$time = substr($_cookie['pin'], 32);
$now = time();
if ($now - $time > $timeout) {
return -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 . $maigc_b);
if ($pin === $pin_2) {
return 0;
} else {
return -200; pincode is error.
}
}
function getpinimg()
{
$rnd = rand(0, 10);
$rnd = 0;
$path = "./www.jzread.com/" . substr("00000$rnd", -4);
for ($i = 0; $i < 4; ++$i) {
if (__getpinimg($path)) {
break;
}
}
exit;
}
function __getpinimg($path)
{
require("$path/pinmap.php");
$pinv = $pin[rand(0, $pin_max)];
list ($file, $pin_code) = explode('#', $pinv);
$filepath = "$path/$file$pin_ext";
output pincode image.
$fh = fopen($filepath, "rb");
if (!$fh) {
return false;
}
$data = fread($fh, 10240); php just read max size: 8k.
fclose($fh);
if (strlen($data) < 200) {
return false;
}
set cookie;
header("content-type: image/jpeg");
$pin_code = strtolower($pin_code);
$pin = getpincookie($pin_code);
setcookie("pin", $pin);
echo $data;
return true;
}