很多程序中都会有注册用户的功能,当然都会有忘记密码取回这一项,为大家提供一段代码,有需要的朋友,可以看看。
第一步:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>根据问题取回密码_www.</title>
</head>
<body>
<form action="/blog_article/wangjimima1.html" method="post" name="form1" id="form1">
<table width="40%" border="0" align="center" cellpadding="5" cellspacing="0" >
<tr>
<td height="20" colspan="2" ><div align="center">请输入您的用户名</div></td>
</tr>
<tr>
<td width="24%" height="20" ><div align="center">用户名 </div></td>
<td width="76%" ><div align="center">
<input name="username" type="text" id="username" />
</div></td>
</tr>
<tr>
<td height="20" colspan="2"><div align="center">
<input type="submit" name="Submit" value="下一步" />
<input type="reset" name="Submit" value="取消" />
</div></td>
</tr>
</table>
</form>
</body>
</html>
第二步:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>取回密码2</title>
</head>
<body>
<?php
require_once ('conn.php');
$sql = "select * from member where username='$_POST[username]'";
$result =mysql_query()($sql,$conn);
if ($rs =mysql_fetch_array($result)){
?>
<form action="/blog_article/wangjimima2.html" method="post" name="form1" id="form1">
<?php
$sql = "select * from member where username='$_POST[username]'";
$result =mysql_query($sql,$conn);
$rs =mysql_fetch_array($result);
?>
<table width="45%" border="0" align="center" cellpadding="5" cellspacing="0" >
<tr>
<td colspan="2" ><div align="center"><span >请输入根据提示问题输入问题答案</span></div></td>
</tr>
<tr>
<td width="26%" ><div align="right" >
<div align="center">用户名</div>
</div></td>
<td width="74%" ><?=$_POST[username]?>
<input name="id" type="hidden" id="id" value="<?=$rs["id"]?>" /></td>
</tr>
<tr>
<td ><div align="right" >
<div align="center">密码提示</div>
</div></td>
<td ><?=$rs["problem"]?></td>
</tr>
<tr>
<td ><div align="right" >
<div align="center">问题答案</div>
</div></td>
<td ><input name="answer" type="text" id="answer" /></td>
</tr>
<tr>
<td colspan="2"><div align="left"><input type="submit" name="Submit" value="提交" />
<input type="reset" name="Submit" value="重置" />
</div></td>
</tr>
</table>
</form>
<?php
}else{
echo "<mce:script language=javascript><!--
";
echo "alert('没有此用户,请确认你所输入的用户名是否正确!');";
echo "javascript:history.go(-1);";
echo "
// --></mce:script>"; //用javascript脚本提示用户;
}
?>
</body>
</html>
第三步
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>取回密码3</title>
</head>
<body>
<?php
require_once ('conn.php');
$sql = "select * from member where id=$_POST[id]";
$result =mysql_query($sql,$conn);
$rs =mysql_fetch_array($result);
?>
<br />
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center"><span ><strong>恭喜您,您的密码以找回,请您紧记,切勿忘记!</strong></span></div></td>
</tr>
</table>
<form action="/blog_article/wangjimima2.html" method="post" name="form1" id="form1">
<table width="50%" border="0" align="center" cellpadding="5" cellspacing="0" >
<tr>
<td colspan="2" ><div align="center"><span >这是您的用户名和密码,请勿忘记!</span></div></td>
</tr>
<tr>
<td width="26%" ><div align="center">用 户 名</div></td>
<td width="74%" >
<?=$rs[username]?></td>
</tr>
<tr>
<td ><div align="center">密 码</div></td>
<td >
<?
if ($_POST["answer"]==$rs["answer"]) {
echo $rs["password"];
session_register("username");
$username=$rs[username];
$aaa=$rs[username];
}else{
echo("<mce:script type='text/javascript'><!--
alert('对不起,您输入的密码提示答案错误!');location.href='/blog_article/wangjimima.html';
// --></mce:script>");
}
?></td>
</tr>
<tr>
<td colspan="2" ><div align="center"><a href="/blog_article/index.html" mce_href="/blog_article/index.html" >返回首页</a></div></td>
</tr>
</table>
</form>
</body>
</html>
一、禁用fsockopen()
禁用fsockopen的方法。
1、修改php.ini,将 disable_functions = 后加入 fsockopen
2、修改php.ini,将 allow_url_fopen = On 改为 allow_url_fopen = Off
二、fsockopen函数被禁用如何解决?
1、如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen。
具体操作:搜索程序中的字符串 fsockopen( 替换为 pfsockopen( 。示例如下
修改前:
修改后:
2、如果服务器同时禁用了pfsockopen,那么用其他函数代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的参数不同。
具体操作:搜索程序中的字符串 fsockopen( 替换为 stream_socket_client( ,然后,将原fsockopen函数中的端口参数“80”删掉,并加到$host。示例如下
修改前:
修改后
3、如果PHP版本低于5.0,fsockopen被禁用,又没有stream_socket_client()怎么办呢?自己写一个函数实现fsockopen的功能,参考代码:
function b_fsockopen($host, $port, &$errno, &$errstr, $timeout) {
$ip = gethostbyname($host);
$s = socket_create(AF_INET, SOCK_STREAM, 0);
if (socket_set_nonblock($s)) {
$r = @socket_connect($s, $ip, $port);
if ($r || socket_last_error() == EINPROGRESS) {
$errno = EINPROGRESS;
return $s;
}
}
$errno = socket_last_error($s);
$errstr = socket_strerror($errno);
socket_close($s);
return false;
}
?>
具体操作:
1、首先找到使用fsockopen函数的代码段,将上面代码加至其上端,搜索该代码段中的字符串 fsockopen( 替换为 b_fsockopen( 。
2、因为fsockopen函数返回文件指针所以可以被文件函数操作,但是这个b_fsockopen函数没能返回文件指针,需要继续修改代码段:用socket_read( 替换掉 fread( ,用socket_write( 替换掉fwrite( ,用socket_close( 替换掉fclose( 。
1、获取当前页面路径
$url_this = "http://".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];
echo $url_this;
?>
2、当前页面路径
?>
server_port可以根据需要取舍。
您还可以参考如下的文章:
获取当前页面的完整URL的php代码有哪些
php获取当前页面完整url的代码