本文章來給各位同學介紹一個不錯的需要登錄的php 文件上傳管理系統,功能簡單有需要了解的同學可參考。 代碼如下 復制代碼
<?php
$admin_pw="admin";//管理密碼
$uploaddir="upload";//上傳目錄
session_start();
if($_GET['action']=="getcode")
{
setcode();
exit();
}
if($_POST['password']==$admin_pw && $_POST['yz']==$_SESSION['yzcode'])
{
$_SESSION['logined']=$admin_pw;
}
if($_GET['action']=="logout")
{
$_SESSION['logined']="";
header("location: ".$_SERVER['PHP_SELF']);
exit();
}
if($_SESSION['logined']!=$admin_pw)
{
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>請登錄</title>
</head>
<body>
<form action="" method="post">
輸入密碼:<input type="password" name="password" style="width:100px;" /><br />驗證字符:<input type="text" style="width:40px;" name="yz" /><a href="#" onclick="document.tzm.src='?action=getcode';"><img src="?action=getcode" alt="驗證碼" id="tzm" name="tzm" /></a><br /><input type="submit" value="進入管理" />
</form>
</body>
</html>
<?php
}
else
{
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>文件上傳</title>
</head>
<body>
<?php
if($_POST['ac']=="upload")
{
$fileall=explode('.',$_FILES['file']['name']);
$filetype=$fileall[count($fileall)-1];
$filename=$uploaddir."/".$_FILES['file']['name']."_".rand(1,999999999).".".$filetype;
$fileexists=file_exists($filename);
while($fileexists==true)
{
$filename=$uploaddir."/".$_FILES['file']['name']."_".rand(1,999999999).".".$filetype;
$fileexists=file_exists($filename);
}
if(move_uploaded_file($_FILES["file"]["tmp_name"],$filename))
{
$url="http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
echo "文件:".$filename." 上傳成功!<br>文件地址:<input type=text style='width:350px;' value=".dirname($url)."/".$filename." /><a href=".dirname($url)."/".$filename." target="_blank">測試</a>";
}
else
{
echo "文件".$filename."上傳失敗!";
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
選擇文件:<input type="file" name="file" id="file" width="100px" /><input type="hidden" name="ac" value="upload" /><input type="submit" value="上傳" />
</form>
<p><a href="?action=logout">退出登錄</a></p>
</body>
</html>
<?php
}
function setcode()
{
Header("Content-type: image/gif");
$border = 0; //是否要邊框 1要:0不要
$how = 4; //驗證碼位數
$w = $how*15; //圖片寬度
$h = 20; //圖片高度
$fontsize = 5; //字體大小
$alpha = "abcdefghijkmnopqrstuvwxyz"; //驗證碼內容1:字母
$number = "0123456789"; //驗證碼內容2:數字
$randcode = ""; //驗證碼字符串初始化
srand((double)microtime()*1000000); //初始化隨機數種子
$im = ImageCreate($w, $h); //創建驗證圖片
$bgcolor = ImageColorAllocate($im, 255, 255, 255); //設置背景顏色
ImageFill($im, 0, 0, $bgcolor); //填充背景色
if($border)
{
$black = ImageColorAllocate($im, 0, 0, 0); //設置邊框顏色
ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//繪制邊框
}
for($i=0; $i<$how; $i++)
{
$alpha_or_number = mt_rand(0, 1); //字母還是數字
$str = $alpha_or_number ? $alpha : $number;
$which = mt_rand(0, strlen($str)-1); //取哪個字符
$code = substr($str, $which, 1); //取字符
$j = !$i ? 4 : $j+15; //繪字符位置
$color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符隨即顏色
ImageChar($im, $fontsize, $j, 3, $code, $color3); //繪字符
$randcode .= $code; //逐位加入驗證碼字符串
}
$_SESSION['yzcode'] = $randcode;
Imagegif($im);
ImageDestroy($im);
}
?>