关于验证码的问题!

tyouzhou 2010-06-18 04:14:49
验证码文件:GetCode.php

<?
session_start();
//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreate(44,18);
$back = ImageColorAllocate($im, 245,245,245);
imagefill($im,0,0,$back); //背景

srand((double)microtime()*1000000);
//生成4位数字
for($i=0;$i<4;$i++)
{
$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
$authnum=rand(1,9);
$vcodes.=$authnum;
imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}
for($i=0;$i<100;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
ImagePNG($im);
ImageDestroy($im);
$_SESSION['VCODE'] = $vcodes;
?>


管理员登陆页面:Admin_Login.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE>后台管理</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<SCRIPT language=JavaScript>
function checklogin() {
if (document.myform.username.value=="") {
alert("请输入用户名!");
myform.username.focus();
return false;
}
if (document.myform.password.value=="") {
alert("请输入密码!");
myform.password.focus();
return false;
}
return true;
}
</SCRIPT>
<style>
<!--
body{
margin:0px;
padding:0px;
font-family:"宋体"arial;
;
font-size:12px;
color:#4D4D4D;
line-height:180%;
background-color: #8AC044;
}
.bk{ width:100%; padding-top:100px; height:420px; background:url(images/denglu/bk.jpg); }
.denglu{ width:483px; height:415px; background:url(images/denglu/dl.jpg) no-repeat; margin:0 auto ; }
.logo{ padding-top:13px; padding-left:18px; float:left;}
.kuang{ padding-left:240px; width:194px; padding-top:39px; float:left;}
.yonghu{ float:left; padding-right:10px;}
.input{ height:16px; line-height:16px; vertical-align: middle; width:81px; border:solid 1px #c1c1c1; background:#f5f5f5; font-size:12px; color:#666;}
.denglu_1{ height:25px; width:165px; float:left;}
.yanzheng{ float:left;}
.kuang_2{ float:left; width:81px; }
.btn{ padding-top:8px; padding-left:115px;float:left;}
.kuan1{ width:120px; height:16px; line-height:16px; float:left; background-color:#FFFFFF; font-size:12px; color:#1C5A75; border:solid 1px #D0D6C8;}
.kuan2{ width:60px; height:16px; line-height:16px; float:left; background-color:#FFFFFF; color:#1C5A75; border:solid 1px #D0D6C8;}
-->
</style>

</HEAD>
<BODY>
<FORM name=myform onSubmit="return checklogin()" action="CheckLogin.php?action=admin_login" method=post>
<div class="bk">
<div class="denglu">
<div class="logo"><img src="images/denglu/logo.gif" /></div>
<div class="kuang">
<div class="denglu_1">
<div class="yonghu">用户</div>
<div class="kuang_1"><input name="username" type="text" class="kuan1" id="username" size="15" />
</div>
</div>
<div class="denglu_1">
<div class="yonghu">密码</div>
<div class="kuang_1"><input name="password" type="password" class="kuan1" id="password" size="15" />
</div>
</div>
<div class="denglu_1">
<div class="yonghu">验证</div>
<div class="kuang_2"><input name="vertifycode" type="text" class="kuan2" id="vertifycode" size="10" />
</div>
<div class="yanzheng"><span> <img src="../inc/GetCode.php" align="absmiddle" /></span>
</div>
</div>
<div class="btn">
<input name="Submit" type="image" onClick="return checklogin();" src="images/denglu/btn.gif" border=0>
</div>
</div>
</div>
</div>
</FORM>
</BODY>
</HTML>


取session为什么取不到呢?代码如下:


<?php
echo $_SESSION['VCODE'];
?>




...全文
126 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyouzhou 2010-06-22
  • 打赏
  • 举报
回复
问题自己解决了!
LuciferStar 2010-06-19
  • 打赏
  • 举报
回复
又是BOM问题。
页面编码是UTF-8?
记得用WINHEX删除文件的前三字节。
这个,跟服务器配置有关系。
sylar066 2010-06-19
  • 打赏
  • 举报
回复
一定是在其他地方include了一段session_start() 要不你重启Apache试试就一定可以了
piaolankeke 2010-06-18
  • 打赏
  • 举报
回复
你在其它地方session_start()了?
amani11 2010-06-18
  • 打赏
  • 举报
回复
6楼的不对,你打印出什么?

//需要cookie支持的,当然也可以不用
tyouzhou 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 amani11 的回复:]
请确认测试浏览器支持cookie?
[/Quote]
cookie?
amani11 2010-06-18
  • 打赏
  • 举报
回复
请确认测试浏览器支持cookie?
tyouzhou 2010-06-18
  • 打赏
  • 举报
回复
不对。
amani11 2010-06-18
  • 打赏
  • 举报
回复


//就这样子试试
<?php
session_start();
echo $_SESSION['VCODE'];
?>



tyouzhou 2010-06-18
  • 打赏
  • 举报
回复
上述代码,我是放在最上方,但还是报哪个错误.1
tyouzhou 2010-06-18
  • 打赏
  • 举报
回复
<?php
session_start();
include('../inc/conn.php');
opendb();
$action = $_REQUEST["action"];
if ($action = "admin_login")
{
$username = $_POST["username"];
$password = $_POST["password"];
$vertifycode = $_POST["vertifycode"];
if ( !$username && !$password && !$vertifycode)
{
echo "<script>alert('登陆信息填写不完整!请返回重新填写!');history.go(-1);</script>";
exit;
}

echo $_SESSION['VCODE'] . "<br>";
echo $vertifycode ;


$sql = "select * from Admin where name = '".$username."' and password = '".md5($password)."'";
//echo $sql ;
//$result = mysql_query($sql);

}
?>
amani11 2010-06-18
  • 打赏
  • 举报
回复
基本的,session_start()之前不能有任何输出,要放在php脚本文件前面
tyouzhou 2010-06-18
  • 打赏
  • 举报
回复
报如下错误:


Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
xuzuning 2010-06-18
  • 打赏
  • 举报
回复
<?php
session_start();
echo $_SESSION['VCODE'];
?>

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧