我只会hello world 特地向大佬们求救一个问题,下面代码有什么问题,老是验证码出错
<?php
include("./header.php");
@$my=check($_GET['my']);
$url = explode(":","".$_SERVER ['HTTP_HOST']."");
$homeurl = $url[0];
$re = mysql_query("SELECT * FROM home WHERE url='".$homeurl."'");
$re = mysql_fetch_array($re);
$home=$re['id'];
$homenameid=$re['homeid'];
$admin=$re['admin'];
$data=date("Y-m-d H:i:s");
@$name=check($_POST['name']);
@$pass=check($_POST['pass']);
if ($my==""){
echo "<div class='style'><a href='./index.php'>首页</a>><a href='./login.php'>会员登录</a></div>";
echo <<<end
<form method="post" action="./login.php?my=loginok">
ID/昵称/电话/邮箱<br/><input name='name' maxlength='32' format='*N' value=''/><br/>
登录密码:<br/><input name='pass' maxlength='32' value=''/><br/>
<input type="submit" value="确定登录" class="submit"/>
end;
echo "<hr/><a href='./login.php?my=reg'>注册会员</a>|<a href='./safe.php'>找回密码</a><br/>";
echo "<a href='./apply.php'>申请免费建站</a><br/>";
echo "<hr/><b>最新注册用户:</b></br>";
$result=mysql_query("select * from user order by id desc limit 5");
while ($row=mysql_fetch_array($result)) {
echo "$row[name](ID:$row[id])<br/>";
}
}
if ($my=="loginok"){
$resultlee = mysql_query("SELECT * FROM user WHERE name='".$name."' and pass='".$pass."' or id='".$name."' and pass='".$pass."' or mobile='".$name."' and pass='".$pass."' or mail='".$name."' and pass='".$pass."'",$conn);
$myee = mysql_fetch_array($resultlee);
if ($myee){
$sid=$myee['sid'];
echo "登录成功!<br/>";
$res=mysql_query("SELECT * FROM user WHERE name='".$name."' or id='".$name."' or mobile='".$name."' or mail='".$name."' ",$conn);
$check=mysql_fetch_array($res);
$_SESSION['id']=$check['id'];
echo "<a href='/zone/index.php'>点击进入空间</a><br/>";
}else{
echo "登录失败<br/>请核对账户信息!<br/>";
}
}
if ($my=="reg"){
$_SESSION['code']=rand(1000,9999);//生成随机验证码
$code=$_SESSION['code'];//赋值
echo "<div class='style'><a href='./index.php'>首页</a>><a href='./login.php?my=reg'>注册会员</a></div>";
echo <<<end
<form method="post" action="./login.php?my=regok">
用户昵称:<br/><input type="text" name="name" emptyok="true" maxlength="10" /><br/>
登陆密码:<br/><input name='pass' maxlength='18' value=''/><br/>
验证码:$code<br/><input name='code' maxlength='32' value=''/>
<br/><input type="submit" value="确定注册" class="submit"/>
end;
echo "<hr/><a href='./login.php'>会员登录</a>|<a href='./safe.php'>找回密码</a><br/>";
echo "<a href='./apply.php'>申请免费建站</a><br/>";
}
if ($my=="regok"){
$code=$_SESSION['code'];
if ($pass==""){
echo "密码不能为空!<br/><a href='./login.php?my=reg'>返回上级</a><br/>";
}else{
if ($name==""){
echo "昵称不能为空!<br/><a href='./login.php?my=reg'>返回上级</a><br/>";
}else{
if($code!=$_POST['code']){
echo "验证码出错<br/><a href='./login.php?my=reg'>返回上级</a><br/>";
}else{
$resultl = mysql_query("SELECT * FROM user WHERE name='".$name."' and home='".$home."'",$conn);
$my = mysql_fetch_array($resultl);
if ($my){
echo "昵称已被使用!<br/><a href='./login.php?my=reg'>返回上级</a><br/>";
}else{
$sid=md5($data.$pass);
$s="insert into user(name,pass,sid,time,home) values('".$name."','".$pass."','".$sid."','".$data."','".$home."')";
$ok=mysql_query($s);
if ($ok){
echo "注册成功!请牢记您的信息。<br/>";
echo "昵称:".$name."<br/>";
echo "密码:".$pass."<br/>";
echo "<a href='/zone/info.php'>完善资料</a>|<a href='/zone/index.php'>进入我的空间</a><br/>";
$res=mysql_query("SELECT * FROM user WHERE name='".$name."' ",$conn);
$check=mysql_fetch_array($res);
$_SESSION['id']=$check['id'];//储存用户ID
}else{
echo "注册失败!<br/><a href='./login.php?my=reg'>返回上级</a><br/>";
}
}
}
}
}
}
include("./footer.php");
?>
出错演示地址:
http://wapzz.men/login.php?my=reg
www.bukai.men
直接输出$_SESSION['code']和$_POST['code']值,再对比下你注册时显示的验证码,这样就知道是哪里出了错,然后才能解决问题
https://qxun.ml
@wxchello,怎么感觉验证码都是1000的节奏啊,验证码的意义何在
首先检查是否开启session
然后打印验证查看是否和输入的同步
打印出来的和输出的不一样那就是session问题
查看是否重复开启session
残缺的记忆,美好的回忆(https://76wp.cn)
@wxchello,session_start();检查是否开启session
残缺的记忆,美好的回忆(https://76wp.cn)
最上面加session_start();
床以外的地方都是远方,手够不到的地方都是他乡。