当前位置: 编程技术>php
本页文章导读:
▪PHP的FTP学习(三)
By Vikram Vaswani Melonfire November 07, 2000 现在,我们已经接触了PHP关于FTP的大量函数,但这仅仅只是函数,离我们的目标还远远不够,要显示出这些函数的真正力量,我们应该建立一个程序,这.........
▪我的论坛源代码(六)
repal.php回复用的页面,因为回复可以不必要是用户,所以没加用户身份校验 <html> <head> <title>回复论题:<? echo $zt;?></title> <meta http-equiv="Content-Type" content="text/html; charset.........
▪我的论坛源代码(五)
okey.php主要处理用户登录和发布的信息处理 <? if ($username) //是否有用户信息 $useinfo=$username."|".$userpass; setcookie("FlyFoxNet",$useinfo,time()+3600); if ($d==q) setcook.........
[1]PHP的FTP学习(三)
来源: 互联网 发布时间: 2013-11-30
By Vikram Vaswani
Melonfire
November 07, 2000
现在,我们已经接触了PHP关于FTP的大量函数,但这仅仅只是函数,离我们的目标还远远不够,要显示出这些函数的真正力量,我们应该建立一个程序,这个程序能以WEB方式上传,下载文件---这就是我们将要做的!
在我们进入代码前,我想要告诉大家的是,这个例子仅仅只是为了向大家解释PHP的各种FTP函数的使用,很多方面还不够完善,比如说,错误分析等,至于你想应用到你自己的程序中,你应该进行一些修改!
程序包括以下几个文件:
index.html - 登录文件
actions.php - 程序必需的FTP代码
include.php - 程序主界面,它显示文件列表和控制按钮。
让我们从 "index.html"开始吧:
--------------------------------------------------------------------------------
<table border=0 align=center>
<form action="/blog_article/actions.html" method=post>
<input type=hidden name=action value=CWD>
<tr>
<td>
Server
</td>
<td>
<input type=text name=server>
</td>
</tr>
<tr>
<td>
User
</td>
<td>
<input type=text name=username>
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input type=password name=password>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<input type="submit" value="Beam Me Up, Scotty!">
</td>
</tr>
</form>
</table>
--------------------------------------------------------------------------------
这是一个登录表单,有一个服务器名称、用户名、密码,输入框。输入的变量将会被存到$server, $username 和 $password 变量中,表单提交后,调用actions.php,它将初始化FTP联接。
注意那个“hidden” 它传给action.php一个变量$action ,值为CWD。
这是action.php文件的源码:
--------------------------------------------------------------------------------
<html>
<head>
<basefont face=Arial>
</head>
<body>
<!-- the include.php interface will be inserted into this page -->
<?
//检查表单传来的数据,不全则报错,要想程序完善的话,这里应该有更全的输入检测功能
if (!$server || !$username || !$password)
{
echo "提交数据不全!";
}
else
{
// keep reading
}
?>
</body>
</html>
--------------------------------------------------------------------------------
接下来是变量 "actions". 程序允许以下的action:
"action=CWD"
改变工作目录
"action=Delete"
删除指定文件
"action=Download"
下载指定文件
"action=Upload"
上传指定文件
如果你仔细检查文件include.php,在里面包括一个HTML界面,你将会看到,它包括许多表单,每一个指向一个特定的功能,每一个表单包含一个field(通常隐藏) ,当表单提交,相应的功能将被执行。
例如:按下“删除”,"action=Delete"就被传送给"actions.php"
为了操作这四个功能,actions.php中代码如下:
--------------------------------------------------------------------------------
<?
// action: 改变目录
if ($action == "CWD")
{
// 具体代码
}
// action: 删除文件
else if ($action == "Delete")
{
// 具体代码
}
// action: 下载文件
else if ($action == "Download")
{
// 具体代码
}
// action: 上传文件
else if ($action == "Upload")
{
// 具体代码
}
?>
--------------------------------------------------------------------------------
以上的具体代码将会实现指定的功能,并退出循环,它们都包含以下步骤:
--------------------------------------------------------------------------------
通过定制的函数联接并登录FTP服务器
connect();
转向适当的目录
执行选择的功能
刷新列表,以察看改变的结果
通过include("include.php"),显示文件列表和控制按钮
关闭联接
--------------------------------------------------------------------------------
注意:
以下功能支持多文件操作- 即 "action=Delete" 和 "action=Download" 它们使用FOR循环来实现。
变量$cdir 和 $here 将在每一阶段实时更新。
现在终于到了我们的第三个文件,include.php 它为程序建立起一个用户界面。
"include.php" 包含三个表单,一些PHP代码获取当前的目录列表并将它们存入三个变量
$files (包括当前目录下的文件),
$file_sizes (相应的文件大小),
and $dirs (包含子目录名)
第一个表单使用$dirs 产生一个下拉式目录列表,对应于“action=CWD”。
第二个表单使用$files $file_sizes创建一个可用的文件列表,每一个文件使用一个checkbox。这个表单的action对应于"action=Delete" and "action=Download"
第三个表单用来上传一个文件到FTP站点,如下:
--------------------------------------------------------------------------------
<form enctype="multipart/form-data" action=actions.php4 method=post>
...
<input type=file name=upfile>
...
</form>
--------------------------------------------------------------------------------
当PHP以这种方式接收到一个文件名,一些变量就产生了,这些变量指定文件的大小,一个临时的文件名以及文件的类型,最初的文件名存在$upfile_name,一旦上传后文件名便存入$upfile中(这个变量是由PHP自己创建的)
通过这些信息,我们就可以创建以下的语句了:
--------------------------------------------------------------------------------
ftp_put($result, $upfile_name, $upfile, FTP_BINARY);
--------------------------------------------------------------------------------
Melonfire
November 07, 2000
现在,我们已经接触了PHP关于FTP的大量函数,但这仅仅只是函数,离我们的目标还远远不够,要显示出这些函数的真正力量,我们应该建立一个程序,这个程序能以WEB方式上传,下载文件---这就是我们将要做的!
在我们进入代码前,我想要告诉大家的是,这个例子仅仅只是为了向大家解释PHP的各种FTP函数的使用,很多方面还不够完善,比如说,错误分析等,至于你想应用到你自己的程序中,你应该进行一些修改!
程序包括以下几个文件:
index.html - 登录文件
actions.php - 程序必需的FTP代码
include.php - 程序主界面,它显示文件列表和控制按钮。
让我们从 "index.html"开始吧:
--------------------------------------------------------------------------------
<table border=0 align=center>
<form action="/blog_article/actions.html" method=post>
<input type=hidden name=action value=CWD>
<tr>
<td>
Server
</td>
<td>
<input type=text name=server>
</td>
</tr>
<tr>
<td>
User
</td>
<td>
<input type=text name=username>
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input type=password name=password>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<input type="submit" value="Beam Me Up, Scotty!">
</td>
</tr>
</form>
</table>
--------------------------------------------------------------------------------
这是一个登录表单,有一个服务器名称、用户名、密码,输入框。输入的变量将会被存到$server, $username 和 $password 变量中,表单提交后,调用actions.php,它将初始化FTP联接。
注意那个“hidden” 它传给action.php一个变量$action ,值为CWD。
这是action.php文件的源码:
--------------------------------------------------------------------------------
<html>
<head>
<basefont face=Arial>
</head>
<body>
<!-- the include.php interface will be inserted into this page -->
<?
//检查表单传来的数据,不全则报错,要想程序完善的话,这里应该有更全的输入检测功能
if (!$server || !$username || !$password)
{
echo "提交数据不全!";
}
else
{
// keep reading
}
?>
</body>
</html>
--------------------------------------------------------------------------------
接下来是变量 "actions". 程序允许以下的action:
"action=CWD"
改变工作目录
"action=Delete"
删除指定文件
"action=Download"
下载指定文件
"action=Upload"
上传指定文件
如果你仔细检查文件include.php,在里面包括一个HTML界面,你将会看到,它包括许多表单,每一个指向一个特定的功能,每一个表单包含一个field(通常隐藏) ,当表单提交,相应的功能将被执行。
例如:按下“删除”,"action=Delete"就被传送给"actions.php"
为了操作这四个功能,actions.php中代码如下:
--------------------------------------------------------------------------------
<?
// action: 改变目录
if ($action == "CWD")
{
// 具体代码
}
// action: 删除文件
else if ($action == "Delete")
{
// 具体代码
}
// action: 下载文件
else if ($action == "Download")
{
// 具体代码
}
// action: 上传文件
else if ($action == "Upload")
{
// 具体代码
}
?>
--------------------------------------------------------------------------------
以上的具体代码将会实现指定的功能,并退出循环,它们都包含以下步骤:
--------------------------------------------------------------------------------
通过定制的函数联接并登录FTP服务器
connect();
转向适当的目录
执行选择的功能
刷新列表,以察看改变的结果
通过include("include.php"),显示文件列表和控制按钮
关闭联接
--------------------------------------------------------------------------------
注意:
以下功能支持多文件操作- 即 "action=Delete" 和 "action=Download" 它们使用FOR循环来实现。
变量$cdir 和 $here 将在每一阶段实时更新。
现在终于到了我们的第三个文件,include.php 它为程序建立起一个用户界面。
"include.php" 包含三个表单,一些PHP代码获取当前的目录列表并将它们存入三个变量
$files (包括当前目录下的文件),
$file_sizes (相应的文件大小),
and $dirs (包含子目录名)
第一个表单使用$dirs 产生一个下拉式目录列表,对应于“action=CWD”。
第二个表单使用$files $file_sizes创建一个可用的文件列表,每一个文件使用一个checkbox。这个表单的action对应于"action=Delete" and "action=Download"
第三个表单用来上传一个文件到FTP站点,如下:
--------------------------------------------------------------------------------
<form enctype="multipart/form-data" action=actions.php4 method=post>
...
<input type=file name=upfile>
...
</form>
--------------------------------------------------------------------------------
当PHP以这种方式接收到一个文件名,一些变量就产生了,这些变量指定文件的大小,一个临时的文件名以及文件的类型,最初的文件名存在$upfile_name,一旦上传后文件名便存入$upfile中(这个变量是由PHP自己创建的)
通过这些信息,我们就可以创建以下的语句了:
--------------------------------------------------------------------------------
ftp_put($result, $upfile_name, $upfile, FTP_BINARY);
--------------------------------------------------------------------------------
[2]我的论坛源代码(六)
来源: 互联网 发布时间: 2013-11-30
repal.php回复用的页面,因为回复可以不必要是用户,所以没加用户身份校验
<html>
<head>
<title>回复论题:<? echo $zt;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE type=text/css>
P {FONT-FAMILY: normal; FONT-SIZE: 9pt; LINE-HEIGHT: 14pt}
DIV {FONT-FAMILY: normal; FONT-SIZE: 9pt; LINE-HEIGHT: 14pt}
</STYLE>
<LINK href="/blog_article/js/cpcw.css" rel=stylesheet /LINK>
<?php
include "linkfox.inc.php"; //包含进文件
include "info.inc.php";
function yy($f)
{
$oldmess=@file($f); //引用原文处理
for ($i=0;$i<count($oldmess);$i++)
{
if (ord(substr($oldmess[$i],0,1))==161) //第一位是否全角空格
$mess=$mess.$oldmess[$i];
else $mess=$mess." ".trim($oldmess[$i]);
}
return $mess;
}
function mesput($query,$use,$id)
{
$req=mysql_query($query);
if ($req)
{
echo "<script language='JavaScript'> alert('谢谢你的回复!系统将返回论题!'); </script>";
echo "<script language='JavaScript'> javascript:location.href='/blog_article/dispbbs/id/.html".$id."&use=".$use."'; </script>;";
echo "<div align='center'><a href='/blog_article/dispbbs/id/.html".$id."&use=".$use."'>如果系统没有反应,请点击</a></a>";
}
else
echo "<script language='JavaScript'> alert('写入失败!'); </script>";
}
function usehf($message,$useinfo,$id,$use,$ft,$mess,$c) //用户回复就直接从表里调出用户信息
{
$query="select * from useinfo where usename='".$useinfo[0]."'";
$req=mysql_query($query);
if ($req)
{
$useinfo=mysql_fetch_array($req);
$fo=fopen($ft,"a");
$message=str_replace("<","<",str_replace(">",">",$message));
$message=nl2br($message);
$gip=getenv("REMOTE_ADDR");
$messages=$message."ㄞㄚㄓ".$useinfo[2]."ㄞㄚㄓ".$useinfo[3]."ㄞㄚㄓ".$useinfo[9]."ㄞㄚㄓ".$useinfo[8]."ㄞㄚㄓ".$useinfo[14]."ㄞㄚㄓ".$useinfo[11]."ㄞㄚㄓ".$time."ㄞㄚㄓ".$gip."δεζ";
if($c==dd) //如果是引用回复,加上原文内容
{
$messages="<font color='999999'>".$mess."<div align='center'>★原文……★……引用★</div></font><br>".$messages;
}
$fp=fputs($fo,$messages);
$time=date(Y年n月j日G时i分); //主题回复数加一,覆盖上一回复人与时间
$query="update foxbbs set hfnum=hfnum+1,hfname='".$ft."',hfusename='".$useinfo[2]."',hfdate='".$time."' where id='".$id."'";
mesput($query,$use,$id);
}
else
{
echo "<script language='JavaScript'> alert('数据库错误:104号'); </script>";
}
}
function gr($ft,$message,$youname,$youmail,$youoicq,$youweb,$youaddr,$youbq,$id,$use,$mess,$c) //非注册用户
{
if (!uinfo($youmail,mail)||strlen($youmail)<12) //校验MAIL
{
echo "<script language='JavaScript'> alert('请输入正确的MAIL地址!'); </script>";
}
else if (!uinfo($youoicq,oicq)||strlen($youoicq)>12) //校验OICQ,只能判断是否数字和位数,如果有更好的方法就好。
{
echo "<script language='JavaScript'> alert('请输入正确的OICQ号!'); </script>";
}
else
{
if (uinfo($youweb,web)==OK&&substr($youweb,0,3)!=htt) $youweb="http://".$youweb;
else if (uinfo($youweb,web)==OK&&substr($youweb,0,3)==htt) $youweb=$youweb;
else $youweb="不告诉你";
$time=date(Y年n月j日G时i分); //取当前时间
$message=str_replace("<","<",str_replace(">",">",$message));
$message=nl2br($message);
$gip=getenv("REMOTE_ADDR");
$messages=$message."ㄞㄚㄓ".$youname."ㄞㄚㄓ".$youoicq."ㄞㄚㄓ".$youweb."ㄞㄚㄓ".$youmail."ㄞㄚㄓ".$youbq."ㄞㄚㄓ".$youaddr."ㄞㄚㄓ".$time."ㄞㄚㄓ".$gip."δεζ";
if($c==dd) //如果是引用回复
{
$messages="<font color='999999'>".$mess."<div align='center'>★原文……★……引用★</div></font><br>".$messages;
}
$fo=fopen($ft,"a");
$fp=fputs($fo,$messages);
$query="update foxbbs set hfnum=hfnum+1,hfname='".$ft."',hfusename='".$youname."',hfdate='".$time."' where id='".$id."'";
mesput($query,$use,$id);
}
}
?>
</head>
<body bgcolor="#FFFFFF">
<?
$tem=$HTTP_COOKIE_VARS[FlyFoxNet];
$temp=explode("|",$tem);
$cookiem=$temp[0];
$useinfo=cuser($cookiem,$action);
if (!$useinfo[0]){ $useinfo[2]="游客"; $usename=1;}
$query="select mesname from foxbbs where id='".$id."'";
$req=mysql_query($query);
if ($req)
{
$f=mysql_fetch_array($req);
$mess=yy($f[0]);
if ($message&&$action=add)
{
$ft="foxbbs/".$f[0].".bbs";
if (ord(substr($message,0,1))!=161) $message=" ".$message;
for ($i=0;$i<10;$i++)
{
if ($bq[$i]) $youbq=$bq[$i];
}
if ($usename) gr($ft,$message,$youname,$youmail,$youoicq,$youweb,$youaddr,$youbq,$id,$use,$mess,$c);
else usehf($message,$useinfo,$id,$use,$ft,$mess,$c);
}
}
else echo "<script language='JavaScript'> alert('打开文件错误!可能服务器忙,请稍候再试!'); </script>";
?>
<table width="100%" cellpadding="4" cellspacing="0" border="0">
<tr>
<td height="20">
<div align="right"></div>
</td>
<td height="20" width="75"> </td>
<td height="20" width="75"> </td>
<td height="20" width="75"> </td>
<td height="20" width="75"> </td>
</tr>
<tr>
<td height="20">
<div align="right"></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/blog_article/reguse/action/xy.html"><img src="/blog_article/images/top_register.gif" width="74" height="21" border="0"></a></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/blog_article/useinfo/action/find.html"><img src="/blog_article/images/top_members.gif" width="74" height="21" border="0"></a></div>
</td>
<td height="20" width="10%"><a href="/blog_article/useinfo/action/edit.html"><img src="/blog_article/images/top_profile.gif" width="74" height="21" border="0"></a></td>
<td height="20" width="10%"><a href="/blog_article/okey/d/q.html"><img src="/blog_article/images/top_logout.gif" width="74" height="21" border="0"></a></td>
</tr>
<tr>
<td height="20">
<div align="left">当前位置:<font color="#0000FF">狐网─>狐网论坛─>回复主题:<?echo "<font color='ff0000'>".$zt."</font>";?></font></div>
</td>
<td> <div align="center"><a href="/blog_article/foxbbs.html"><img src="/blog_article/images/index.gif" width="70" height="20" border="0" align="middle"></a></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/blog_article/superuse.html"><img src="/blog_article/images/super.gif" width="70" height="20" border="0" align="middle"></a></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/blog_article/reguse/action/xy.html"><img src="/blog_article/images/dl.gif" width="70" height="20" border="0" align="middle"></a></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/index.html"><img src="/blog_article/images/fox.gif" width="70" height="20" border="0" align="middle"></a></div>
</td> </tr>
</table>
<script language="JavaScript">
<!--
var submitcount=0;
function checkSubmit() {
if (submitcount == 0) {
submitcount++;
return true;
} else {
if (submitcount>0){
alert("帖子已成功提交了,别急,等等!");
return false;
}
}
}
function check_com(){
if(document.form.youname.value.length ==0){
submitcount--;
alert("名字不能为空!快填上吧!");
return false;
}
if(document.form.youmail.value.length ==0){
submitcount--;
alert("EMAIL不能为空!快填上吧!");
return false;
}
if(document.form.youoicq.value.length ==0){
submitcount--;
alert("OICQ不能为空!快填上吧!");
return false;
}
if(document.form.message.value.length == 0){
submitcount--;
alert("内容不能为空!");
return false;
}
return true;
}
//-->
</script>
<table width='70%' border='0' cellspacing='0' cellpadding='0' bgcolor='#000000' align='center'>
<tr>
<td>
<table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr bgcolor='#006699'>
<td><div align="center"><font color="ffffff"><? echo "<font color='00ff00'>".$useinfo[2]."</font>"; ?> 你正在回复的主题是:[<? echo $zt; ?>]</font></div></td>
</tr>
<tr bgcolor='#eeeeee'>
<td>
<form name="form" onSubmit="return check_com()" method="post"><div align="center">
<?
if ($usename) //不是注册用户就显示输入框输入游客信息。
{
echo "你的大名:<input onFocus='this.select()' type='text' name='youname' size='30' maxlength='30' value='".$youname."'>";
echo "OICQ:<input onFocus='this.select()' type='text' name='youoicq' size='16' maxlength='16' value='".$youoicq."'><br>";
echo "来自何方:<input onFocus='this.select()' type='text' name='youaddr' size='55' value='".$youaddr."'><br>";
echo "电子信箱:<input onFocus='this.select()' type='text' name='youmail' size='55' value='".$youmail."'><br>";
echo "个人主页:<input onFocus='this.select()' type='text' name='youweb' size='55' value='".$youweb."'><br>";
echo "表情<br><input type='radio' name='bq[0]' value='a'><img src='/blog_article/images/a.gif'><input type='radio' name='bq[1]' value='1'><img src='/blog_article/images/1.gif'>";
echo "<input type='radio' name='bq[2]' value='2'><img src='/blog_article/images/2.gif'><input type='radio' name='bq[3]' value='3'><img src='/blog_article/images/3.gif'>";
echo "<input type='radio' name='bq[4]' value='4'><img src='/blog_article/images/4.gif'><input type='radio' name='bq[5]' value='5'><img src='/blog_article/images/5.gif'>";
echo "<input type='radio' name='bq[6]' value='6'><img src='/blog_article/images/6.gif'><input type='radio' name='bq[7]' value='7'><img src='/blog_article/images/7.gif'>";
echo "<input type='radio' name='bq[8]' value='8'><img src='/blog_article/images/8.gif'><input type='radio' name='bq[9]' value='9'><img src='/blog_article/images/9.gif'><br>";
}
echo "<div align='center'>回复内容<br>";
echo "<textarea onFocus='this.select()' name='message' cols='64' rows='5' wrap='VIRTUAL'>".$message."</textarea><br>";
?>
<input type="submit" name="Submit" value="确定" onClick="return checkSubmit()">
<input type="reset" name="Submit2" value="重写"></div></div></form>
</td>
</tr>
<tr bgcolor='#eeeeee'>//如果是引用原文就显示
<td><div align="center"><? if ($c==dd) echo "原文如下<br><div align='left'>".$mess;?></div></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<html>
<head>
<title>回复论题:<? echo $zt;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE type=text/css>
P {FONT-FAMILY: normal; FONT-SIZE: 9pt; LINE-HEIGHT: 14pt}
DIV {FONT-FAMILY: normal; FONT-SIZE: 9pt; LINE-HEIGHT: 14pt}
</STYLE>
<LINK href="/blog_article/js/cpcw.css" rel=stylesheet /LINK>
<?php
include "linkfox.inc.php"; //包含进文件
include "info.inc.php";
function yy($f)
{
$oldmess=@file($f); //引用原文处理
for ($i=0;$i<count($oldmess);$i++)
{
if (ord(substr($oldmess[$i],0,1))==161) //第一位是否全角空格
$mess=$mess.$oldmess[$i];
else $mess=$mess." ".trim($oldmess[$i]);
}
return $mess;
}
function mesput($query,$use,$id)
{
$req=mysql_query($query);
if ($req)
{
echo "<script language='JavaScript'> alert('谢谢你的回复!系统将返回论题!'); </script>";
echo "<script language='JavaScript'> javascript:location.href='/blog_article/dispbbs/id/.html".$id."&use=".$use."'; </script>;";
echo "<div align='center'><a href='/blog_article/dispbbs/id/.html".$id."&use=".$use."'>如果系统没有反应,请点击</a></a>";
}
else
echo "<script language='JavaScript'> alert('写入失败!'); </script>";
}
function usehf($message,$useinfo,$id,$use,$ft,$mess,$c) //用户回复就直接从表里调出用户信息
{
$query="select * from useinfo where usename='".$useinfo[0]."'";
$req=mysql_query($query);
if ($req)
{
$useinfo=mysql_fetch_array($req);
$fo=fopen($ft,"a");
$message=str_replace("<","<",str_replace(">",">",$message));
$message=nl2br($message);
$gip=getenv("REMOTE_ADDR");
$messages=$message."ㄞㄚㄓ".$useinfo[2]."ㄞㄚㄓ".$useinfo[3]."ㄞㄚㄓ".$useinfo[9]."ㄞㄚㄓ".$useinfo[8]."ㄞㄚㄓ".$useinfo[14]."ㄞㄚㄓ".$useinfo[11]."ㄞㄚㄓ".$time."ㄞㄚㄓ".$gip."δεζ";
if($c==dd) //如果是引用回复,加上原文内容
{
$messages="<font color='999999'>".$mess."<div align='center'>★原文……★……引用★</div></font><br>".$messages;
}
$fp=fputs($fo,$messages);
$time=date(Y年n月j日G时i分); //主题回复数加一,覆盖上一回复人与时间
$query="update foxbbs set hfnum=hfnum+1,hfname='".$ft."',hfusename='".$useinfo[2]."',hfdate='".$time."' where id='".$id."'";
mesput($query,$use,$id);
}
else
{
echo "<script language='JavaScript'> alert('数据库错误:104号'); </script>";
}
}
function gr($ft,$message,$youname,$youmail,$youoicq,$youweb,$youaddr,$youbq,$id,$use,$mess,$c) //非注册用户
{
if (!uinfo($youmail,mail)||strlen($youmail)<12) //校验MAIL
{
echo "<script language='JavaScript'> alert('请输入正确的MAIL地址!'); </script>";
}
else if (!uinfo($youoicq,oicq)||strlen($youoicq)>12) //校验OICQ,只能判断是否数字和位数,如果有更好的方法就好。
{
echo "<script language='JavaScript'> alert('请输入正确的OICQ号!'); </script>";
}
else
{
if (uinfo($youweb,web)==OK&&substr($youweb,0,3)!=htt) $youweb="http://".$youweb;
else if (uinfo($youweb,web)==OK&&substr($youweb,0,3)==htt) $youweb=$youweb;
else $youweb="不告诉你";
$time=date(Y年n月j日G时i分); //取当前时间
$message=str_replace("<","<",str_replace(">",">",$message));
$message=nl2br($message);
$gip=getenv("REMOTE_ADDR");
$messages=$message."ㄞㄚㄓ".$youname."ㄞㄚㄓ".$youoicq."ㄞㄚㄓ".$youweb."ㄞㄚㄓ".$youmail."ㄞㄚㄓ".$youbq."ㄞㄚㄓ".$youaddr."ㄞㄚㄓ".$time."ㄞㄚㄓ".$gip."δεζ";
if($c==dd) //如果是引用回复
{
$messages="<font color='999999'>".$mess."<div align='center'>★原文……★……引用★</div></font><br>".$messages;
}
$fo=fopen($ft,"a");
$fp=fputs($fo,$messages);
$query="update foxbbs set hfnum=hfnum+1,hfname='".$ft."',hfusename='".$youname."',hfdate='".$time."' where id='".$id."'";
mesput($query,$use,$id);
}
}
?>
</head>
<body bgcolor="#FFFFFF">
<?
$tem=$HTTP_COOKIE_VARS[FlyFoxNet];
$temp=explode("|",$tem);
$cookiem=$temp[0];
$useinfo=cuser($cookiem,$action);
if (!$useinfo[0]){ $useinfo[2]="游客"; $usename=1;}
$query="select mesname from foxbbs where id='".$id."'";
$req=mysql_query($query);
if ($req)
{
$f=mysql_fetch_array($req);
$mess=yy($f[0]);
if ($message&&$action=add)
{
$ft="foxbbs/".$f[0].".bbs";
if (ord(substr($message,0,1))!=161) $message=" ".$message;
for ($i=0;$i<10;$i++)
{
if ($bq[$i]) $youbq=$bq[$i];
}
if ($usename) gr($ft,$message,$youname,$youmail,$youoicq,$youweb,$youaddr,$youbq,$id,$use,$mess,$c);
else usehf($message,$useinfo,$id,$use,$ft,$mess,$c);
}
}
else echo "<script language='JavaScript'> alert('打开文件错误!可能服务器忙,请稍候再试!'); </script>";
?>
<table width="100%" cellpadding="4" cellspacing="0" border="0">
<tr>
<td height="20">
<div align="right"></div>
</td>
<td height="20" width="75"> </td>
<td height="20" width="75"> </td>
<td height="20" width="75"> </td>
<td height="20" width="75"> </td>
</tr>
<tr>
<td height="20">
<div align="right"></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/blog_article/reguse/action/xy.html"><img src="/blog_article/images/top_register.gif" width="74" height="21" border="0"></a></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/blog_article/useinfo/action/find.html"><img src="/blog_article/images/top_members.gif" width="74" height="21" border="0"></a></div>
</td>
<td height="20" width="10%"><a href="/blog_article/useinfo/action/edit.html"><img src="/blog_article/images/top_profile.gif" width="74" height="21" border="0"></a></td>
<td height="20" width="10%"><a href="/blog_article/okey/d/q.html"><img src="/blog_article/images/top_logout.gif" width="74" height="21" border="0"></a></td>
</tr>
<tr>
<td height="20">
<div align="left">当前位置:<font color="#0000FF">狐网─>狐网论坛─>回复主题:<?echo "<font color='ff0000'>".$zt."</font>";?></font></div>
</td>
<td> <div align="center"><a href="/blog_article/foxbbs.html"><img src="/blog_article/images/index.gif" width="70" height="20" border="0" align="middle"></a></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/blog_article/superuse.html"><img src="/blog_article/images/super.gif" width="70" height="20" border="0" align="middle"></a></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/blog_article/reguse/action/xy.html"><img src="/blog_article/images/dl.gif" width="70" height="20" border="0" align="middle"></a></div>
</td>
<td height="20" width="10%">
<div align="center"><a href="/index.html"><img src="/blog_article/images/fox.gif" width="70" height="20" border="0" align="middle"></a></div>
</td> </tr>
</table>
<script language="JavaScript">
<!--
var submitcount=0;
function checkSubmit() {
if (submitcount == 0) {
submitcount++;
return true;
} else {
if (submitcount>0){
alert("帖子已成功提交了,别急,等等!");
return false;
}
}
}
function check_com(){
if(document.form.youname.value.length ==0){
submitcount--;
alert("名字不能为空!快填上吧!");
return false;
}
if(document.form.youmail.value.length ==0){
submitcount--;
alert("EMAIL不能为空!快填上吧!");
return false;
}
if(document.form.youoicq.value.length ==0){
submitcount--;
alert("OICQ不能为空!快填上吧!");
return false;
}
if(document.form.message.value.length == 0){
submitcount--;
alert("内容不能为空!");
return false;
}
return true;
}
//-->
</script>
<table width='70%' border='0' cellspacing='0' cellpadding='0' bgcolor='#000000' align='center'>
<tr>
<td>
<table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr bgcolor='#006699'>
<td><div align="center"><font color="ffffff"><? echo "<font color='00ff00'>".$useinfo[2]."</font>"; ?> 你正在回复的主题是:[<? echo $zt; ?>]</font></div></td>
</tr>
<tr bgcolor='#eeeeee'>
<td>
<form name="form" onSubmit="return check_com()" method="post"><div align="center">
<?
if ($usename) //不是注册用户就显示输入框输入游客信息。
{
echo "你的大名:<input onFocus='this.select()' type='text' name='youname' size='30' maxlength='30' value='".$youname."'>";
echo "OICQ:<input onFocus='this.select()' type='text' name='youoicq' size='16' maxlength='16' value='".$youoicq."'><br>";
echo "来自何方:<input onFocus='this.select()' type='text' name='youaddr' size='55' value='".$youaddr."'><br>";
echo "电子信箱:<input onFocus='this.select()' type='text' name='youmail' size='55' value='".$youmail."'><br>";
echo "个人主页:<input onFocus='this.select()' type='text' name='youweb' size='55' value='".$youweb."'><br>";
echo "表情<br><input type='radio' name='bq[0]' value='a'><img src='/blog_article/images/a.gif'><input type='radio' name='bq[1]' value='1'><img src='/blog_article/images/1.gif'>";
echo "<input type='radio' name='bq[2]' value='2'><img src='/blog_article/images/2.gif'><input type='radio' name='bq[3]' value='3'><img src='/blog_article/images/3.gif'>";
echo "<input type='radio' name='bq[4]' value='4'><img src='/blog_article/images/4.gif'><input type='radio' name='bq[5]' value='5'><img src='/blog_article/images/5.gif'>";
echo "<input type='radio' name='bq[6]' value='6'><img src='/blog_article/images/6.gif'><input type='radio' name='bq[7]' value='7'><img src='/blog_article/images/7.gif'>";
echo "<input type='radio' name='bq[8]' value='8'><img src='/blog_article/images/8.gif'><input type='radio' name='bq[9]' value='9'><img src='/blog_article/images/9.gif'><br>";
}
echo "<div align='center'>回复内容<br>";
echo "<textarea onFocus='this.select()' name='message' cols='64' rows='5' wrap='VIRTUAL'>".$message."</textarea><br>";
?>
<input type="submit" name="Submit" value="确定" onClick="return checkSubmit()">
<input type="reset" name="Submit2" value="重写"></div></div></form>
</td>
</tr>
<tr bgcolor='#eeeeee'>//如果是引用原文就显示
<td><div align="center"><? if ($c==dd) echo "原文如下<br><div align='left'>".$mess;?></div></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
[3]我的论坛源代码(五)
来源: 互联网 发布时间: 2013-11-30
okey.php主要处理用户登录和发布的信息处理
<?
if ($username) //是否有用户信息
$useinfo=$username."|".$userpass;
setcookie("FlyFoxNet",$useinfo,time()+3600);
if ($d==q) setcookie("FlyFoxNet"); //如果是退出的话,把COOKIE置为空
?>
<HTML><HEAD><TITLE>发表文章</TITLE>
<LINK href="/blog_article/js/cpcw.css" rel=stylesheet /LINK>
<?
include "linkfox.inc.php";
include "info.inc.php";
function postf($useinfo,$title,$message) //发帖信息处理
{
$query="select * from foxbbs order by id desc limit 1";
$row=@mysql_query($query);
$info=@mysql_fetch_array($row);
if ($useinfo[2]==$info[1]&&$title==$info[3]) //检查最近一条信息是否和当前信息一样。
echo "<script language='JavaScript'> alert('请勿重复发帖,谢谢合作!'); </script>";
else{
$time=date(Y年n月j日G时i分);
$filename=date(YmjGis); //文件名取当前的时间
$gip=getenv("REMOTE_ADDR"); //写入信息
$query="insert into foxbbs (usename,ftbq,title,ftdate,mesname,djnum,hfnum,ip) values ('".$useinfo[0]."','".$useinfo[14]."','".$title."','".$time."','".$filename."',1,0,'".$gip."')";
$req=@mysql_query($query);
if ($req) { //如果写入成功,则给用户发帖数加一,建立内容文件
$query="select ftnum from useinfo where usename='".$useinfo[0]."'";
$req=@mysql_query($query);
$ftnum=@mysql_fetch_array($req);
$ftnum=$ftnum[0]+1;
$query="update useinfo set ftnum='$ftnum' where usename='".$useinfo[0]."'";
$req=@mysql_query($query);
$ft=$filename;
$fp=fopen($ft,"w"); //把所有的"<",">"符号转换成"<","&rt;"可以去除HTML标记,好像有个函数可以直接去除,但我记不到了,也没在参考手册里查到,所以用个笨法子了。
$message=str_replace("<","<",str_replace(">",">",$message));
$message=nl2br($message); //先去除符号再变换行,免得换行符也变成字符显示出来。
$f=fputs($fp,$message);
$fp=@fclose($fp);
echo "<script language='JavaScript'> alert('".$useinfo[2]."!恭喜你,发贴成功!'); </script>";
}
else {
echo "<script language='JavaScript'> alert('非常报歉,因数据库原因,你的帖子没能保存!'); </script>";
}
}
}
function userr($username,$userpass,$title,$message) //用户信息校验函数
{
$query="select * from useinfo where usename='".$username."'";
$req=mysql_query($query);
$useinfo=mysql_fetch_array($req);
if ($useinfo[0]==$username)
{
//如果通过校检就调用信息处理函数
if ($userpass==$useinfo[1]) {postf($useinfo,$title,$message);return $useinfo;}
else {
echo "<script language='JavaScript'> alert('密码不正确,请检查!'); </script>";
echo "<meta HTTP-EQUIV='REFRESH' CONTENT='2;URL=post.php'>";
}
}
else
{
echo "<script language='JavaScript'> alert('用户不存在,请确认已注册!'); </script>";
}
}
?>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<meta HTTP-EQUIV="REFRESH" CONTENT="2;URL=foxbbs.php">
</head><body topmargin="0">
<?
$tem=$HTTP_COOKIE_VARS[FlyFoxNet];
$temp=explode("|",$tem);
$cookiem=$temp[0];
$useinfo=cuser($cookiem,$action);
if (isset($message))
{
if($username)
{
$useinfo=userr($username,$userpass,$title,$message);
}
else if($useinfo) {
userr($useinfo[0],$useinfo[1],$title,$message);
}
else {echo "<script language='JavaScript'> alert('你不是合法用户,不能在此论坛发帖!'); </script>";}
}
if ($d==q)
{
echo "<script language='JavaScript'> alert('你已退出登录状态,将以游客身份返回论坛'); </script>";
}
?>
<br><br><br><br><br>
<div align="center"><a href=/blog_article/foxbbs.php>如果系统未自动返回页面,请点击这里反回.</a></div>/index.html
</body>
</html>
<?
if ($username) //是否有用户信息
$useinfo=$username."|".$userpass;
setcookie("FlyFoxNet",$useinfo,time()+3600);
if ($d==q) setcookie("FlyFoxNet"); //如果是退出的话,把COOKIE置为空
?>
<HTML><HEAD><TITLE>发表文章</TITLE>
<LINK href="/blog_article/js/cpcw.css" rel=stylesheet /LINK>
<?
include "linkfox.inc.php";
include "info.inc.php";
function postf($useinfo,$title,$message) //发帖信息处理
{
$query="select * from foxbbs order by id desc limit 1";
$row=@mysql_query($query);
$info=@mysql_fetch_array($row);
if ($useinfo[2]==$info[1]&&$title==$info[3]) //检查最近一条信息是否和当前信息一样。
echo "<script language='JavaScript'> alert('请勿重复发帖,谢谢合作!'); </script>";
else{
$time=date(Y年n月j日G时i分);
$filename=date(YmjGis); //文件名取当前的时间
$gip=getenv("REMOTE_ADDR"); //写入信息
$query="insert into foxbbs (usename,ftbq,title,ftdate,mesname,djnum,hfnum,ip) values ('".$useinfo[0]."','".$useinfo[14]."','".$title."','".$time."','".$filename."',1,0,'".$gip."')";
$req=@mysql_query($query);
if ($req) { //如果写入成功,则给用户发帖数加一,建立内容文件
$query="select ftnum from useinfo where usename='".$useinfo[0]."'";
$req=@mysql_query($query);
$ftnum=@mysql_fetch_array($req);
$ftnum=$ftnum[0]+1;
$query="update useinfo set ftnum='$ftnum' where usename='".$useinfo[0]."'";
$req=@mysql_query($query);
$ft=$filename;
$fp=fopen($ft,"w"); //把所有的"<",">"符号转换成"<","&rt;"可以去除HTML标记,好像有个函数可以直接去除,但我记不到了,也没在参考手册里查到,所以用个笨法子了。
$message=str_replace("<","<",str_replace(">",">",$message));
$message=nl2br($message); //先去除符号再变换行,免得换行符也变成字符显示出来。
$f=fputs($fp,$message);
$fp=@fclose($fp);
echo "<script language='JavaScript'> alert('".$useinfo[2]."!恭喜你,发贴成功!'); </script>";
}
else {
echo "<script language='JavaScript'> alert('非常报歉,因数据库原因,你的帖子没能保存!'); </script>";
}
}
}
function userr($username,$userpass,$title,$message) //用户信息校验函数
{
$query="select * from useinfo where usename='".$username."'";
$req=mysql_query($query);
$useinfo=mysql_fetch_array($req);
if ($useinfo[0]==$username)
{
//如果通过校检就调用信息处理函数
if ($userpass==$useinfo[1]) {postf($useinfo,$title,$message);return $useinfo;}
else {
echo "<script language='JavaScript'> alert('密码不正确,请检查!'); </script>";
echo "<meta HTTP-EQUIV='REFRESH' CONTENT='2;URL=post.php'>";
}
}
else
{
echo "<script language='JavaScript'> alert('用户不存在,请确认已注册!'); </script>";
}
}
?>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<meta HTTP-EQUIV="REFRESH" CONTENT="2;URL=foxbbs.php">
</head><body topmargin="0">
<?
$tem=$HTTP_COOKIE_VARS[FlyFoxNet];
$temp=explode("|",$tem);
$cookiem=$temp[0];
$useinfo=cuser($cookiem,$action);
if (isset($message))
{
if($username)
{
$useinfo=userr($username,$userpass,$title,$message);
}
else if($useinfo) {
userr($useinfo[0],$useinfo[1],$title,$message);
}
else {echo "<script language='JavaScript'> alert('你不是合法用户,不能在此论坛发帖!'); </script>";}
}
if ($d==q)
{
echo "<script language='JavaScript'> alert('你已退出登录状态,将以游客身份返回论坛'); </script>";
}
?>
<br><br><br><br><br>
<div align="center"><a href=/blog_article/foxbbs.php>如果系统未自动返回页面,请点击这里反回.</a></div>/index.html
</body>
</html>
最新技术文章: