首页 > 后端开发 > php教程 > 跳转问题

跳转问题

WBOY
发布: 2016-06-23 13:53:32
原创
901 人浏览过

一个注册邮件验证的程序,就是用户注册了会发封邮件到用户邮箱,然后用户点击下邮箱中的邮件,key有效则注册成功,写入注册信息,无效则跳转错误页面
在本机localhost测试没问题,到服务器上就出了问题,服务器和本机服务端版本是一样
用户点击邮件验证会跳转到如下页面
链接样式:http://www.haha.net/zhuce.php?key=21_nci34dgjs5guzopl4gi0s62puk9r0o

<?phprequire('shujulianjie.php'); //接入数据库文件date_default_timezone_set('Asia/Shanghai'); //此句用于消除时间差$iipp     = $_SERVER["REMOTE_ADDR"]; //获取ip$times    = date("Y-m-d H:i:s"); //取得?前??//验证key有效性和找出注册信息   $key=$_GET["key"];     $key=addslashes(trim($key));	echo $key;	date_default_timezone_set('Asia/Shanghai');//此句用于消除时间差	$time=time();//当前时间戳	$time=$time-86400;//获取一天之前的时间戳	//找出是否存在或失效	$str10="select  mail from zhuceyanzheng where yanzhengzi='$key' and zhuangtai='0'  and shijiancuo>'$time' " ;     $result10=mysql_query($str10, $con);  //送出查?	$row10=mysql_num_rows($result10);	echo $row10;	if(!$row10)	{//未找到跳转到失败页面    echo'<script language="javascript" type="text/javascript">';     echo 'window.location.href="zhucejieguo.php?zt=0"; ';   echo ' </script>';	exit;	} else {	  //有则写入注册信息   echo'<script language="javascript" type="text/javascript">';     echo 'window.location.href="zhucejieguo.php?zt=1"; ';   echo ' </script>';}mysql_close($con);?>
登录后复制

现在得到的结果是注册信息写入了,但是跳转到了window.location.href="zhucejieguo.php?zt=0,
不知道是什么原因


回复讨论(解决方案)

我感觉你为啥用时间来查找呢?你看你的SQL放到mysql控制台是否能查到数据,然后一步步打印结果排查问题。我感觉问题还是出在SQL上。

我感觉你为啥用时间来查找呢?你看你的SQL放到mysql控制台是否能查到数据,然后一步步打印结果排查问题。我感觉问题还是出在SQL上。


时间是验证key是否过期了
用了 if (!mysql_query($str10, $con))
{
die('Error: ' . mysql_error());
}
没有报错

echo $row10; 看看这个值输出是多少

echo $row10; 看看这个值输出是多少


这个输出是0,
我也觉得奇怪,因为
$str10="select mail from zhuceyanzheng where yanzhengzi='$key' and zhuangtai='0' and shijiancuo>'$time' " ;
这个语句是有符合条件的
而且输出为0,注册信息还写入了,这就是我不理解的地方,输出为0,应该不会写入注册信息才对


echo $row10; 看看这个值输出是多少


这个输出是0,
我也觉得奇怪,因为
$str10="select mail from zhuceyanzheng where yanzhengzi='$key' and zhuangtai='0' and shijiancuo>'$time' " ;
这个语句是有符合条件的
而且输出为0,注册信息还写入了,这就是我不理解的地方,输出为0,应该不会写入注册信息才对

0就说明你那个查询没查到数据啊。

这个语句在本机可以查到数据,不知道为什么到服务器上就不行,本机和服务器,数据库,脚本都是一样的

还有,结果是0,但下面的写入注册信息里面的语句确执行了

    if(!$row10)    {//未找到跳转到失败页面    echo'<script language="javascript" type="text/javascript">';     echo 'window.location.href="zhucejieguo.php?zt=0"; ';   echo ' </script>';     exit;     } else {      //($row10=0,下面的语句会执行)     $str3       = "update zhuceyanzheng  set zhuangtai='1' where mail='$youxiang' "; 	 $result3=mysql_query($str3,$con);   }
登录后复制

怎么可能? var_dump($row10); 看看是什么。


怎么可能? var_dump($row10); 看看是什么。



因为是在邮箱中点击一个链接在到这个页面,这个样子的链接
链接样式:http://www.haha.net/zhuce.php?key=21_nci34dgjs5guzopl4gi0s62puk9r0o
刚刚试了,使用新标签中打开链接,就是正常的,难道是因为这种跳转链接不能在QQ邮箱中直接打开吗

那就单独执行一下你的SQL语句,看看结果吧

那就单独执行一下你的SQL语句,看看结果吧


单独执行了,有用,可以找到数据
、、、、、、、、、、、
刚刚又试了几次,现在的情况是,有时候成功,有时候失败。。。。。。实在是诡异

where yanzhengzi='$key' and zhuangtai='0'  and shijiancuo>'$time' "

明????有匹配,?出完整的sql看看。

估??$time有?。

看看你的sql语句,打印sql

看看你的sql语句,打印sql


打印了,有时候会成功,有时候会失败,1是成功的,0是失败的,打印的语句如下



同样的脚本,有时候成功,有时候失败,实在很难找原因,
我的注册流程,是在邮箱中点击链接,和一般的网站一样,我现在是用QQ邮箱测试,有时候成功,有时候失败,
但是如果在新标签和新窗口打开链接,却都是成功的
而且,即使失败了,也会写入注册信息,这个明显不合理,并且,写入的IP是上海地区的ip,本人在重庆
就是说,成功写入注册信息,ip是我自己的,失败写入注册信息,ip在上海,而且是动态ip
是不是在QQ邮箱跳转的时候有什么变化
注册过程在本地localhost测试,是一点问题没有。。。。
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板