十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
看了你的問(wèn)題,我有點(diǎn)暈,本來(lái)是很困的,現(xiàn)在更困了。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到濮陽(yáng)網(wǎng)站設(shè)計(jì)與濮陽(yáng)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋濮陽(yáng)地區(qū)。
我覺得,你這不就是一個(gè)正常的網(wǎng)站嗎?也沒(méi)什么值需要傳吶?
你的登錄頁(yè)面向admin.php傳值這個(gè)簡(jiǎn)單,直接用form表單就可以搞定了;
驗(yàn)證的頁(yè)面完全可以和dir.php合并嘛,登錄的話都是用session或cookie完成的,反正你的每個(gè)頁(yè)面都必須要做這一步,直接合并就OK
另外你的dir.php就是一個(gè)正常了網(wǎng)頁(yè)了,也就是用戶需要瀏覽的頁(yè)面對(duì)吧?那你點(diǎn)了對(duì)應(yīng)的鏈接就鏈接不同的頁(yè)面,這個(gè)不是太簡(jiǎn)單了嗎?不同的頁(yè)面去取不同的數(shù)據(jù)表,神馬大型的網(wǎng)站都是這么干的呀!
另外,要和你說(shuō)的是,安全不安全不是列出了什么,重要的是你列出來(lái)的東西不要包含你的字段名,這才是影響安全的重要因素,你可以通過(guò)PHP把它轉(zhuǎn)換吶,PHP不就是做這個(gè)轉(zhuǎn)換的嗎?PHP的功能是神馬?就是做這個(gè)的呀。
另外,如果你是動(dòng)態(tài)頁(yè)面,使用鏈接跳轉(zhuǎn)頁(yè)面,就必須用?+信息的方式,當(dāng)然,我說(shuō)的是初學(xué),如果你學(xué)得深入了,可以用偽靜態(tài),更可以用純靜態(tài),這個(gè)先不說(shuō),先把頁(yè)面間通過(guò)get傳值弄通,你就學(xué)會(huì)PHP了,也就是說(shuō),你正式進(jìn)入了PHP的大門。
不行了,熬不住了,睡覺去了.............
兩種方法:
1.直接做個(gè)超鏈接,地址為文件的地址
a?href="文件地址"下載/a
2.流輸出
?php
$file=fopen('文件地址',"r");
header("Content-Type:?application/octet-stream");
header("Accept-Ranges:?bytes");
header("Accept-Length:?".filesize('文件地址'));
header("Content-Disposition:?attachment;?filename=文件名稱");
echo?fread($file,filesize('文件地址'));
fclose($file);
?
推薦第二種
因?yàn)榈谝环N方法只能下載瀏覽器不能解析的文件,比如rar啊,腳本文件之類。如果文件是圖片或者txt文檔,就會(huì)直接在瀏覽器中打開。
而第二種方法是直接輸出的文件流,不存在上述問(wèn)題。
你可以檢查一下你傳值過(guò)來(lái)的路徑是否正確,還有,流輸出后面不要再進(jìn)行任何操作了。
拓展資料:
集成開發(fā)環(huán)境是一種集成了軟件開發(fā)過(guò)程中所需主要工具的集成開發(fā)環(huán)境,其功能包括但不僅限于代碼高亮、代碼補(bǔ)全、調(diào)試、構(gòu)建、版本控制等。一些常見的PHP IDEs如下:
Zend Studio:商業(yè)版,Zend官方出品,基于eclipse
Eclipse?with PDT:免費(fèi)
Coda:商業(yè)版,針對(duì)Mac用戶
NetBeans:免費(fèi),功能強(qiáng)大
PHP Storm:商業(yè)版
Aptana?Studio:免費(fèi)
PhpEd:商業(yè)版
Komodo?IDE/Edit:IDE為商業(yè)版,Edit可免費(fèi)使用
Adobe Dreamweaver:商業(yè)版
除去集成開發(fā)環(huán)境,具備代碼高亮功能的常見文本編輯器因其輕巧靈活也常被選作開發(fā)工具,例如:Notepad++、Editplus、SublimeText、Everedit(國(guó)人開發(fā))等等。
PHP的特性包括:
1. PHP 獨(dú)特的語(yǔ)法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語(yǔ)法。
2. PHP可以比CGI或者Perl更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)——?jiǎng)討B(tài)頁(yè)面方面,與其他的編程語(yǔ)言相比,
PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成htmL標(biāo)記的CGI要高許多;
PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn)。
3. PHP支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。
4. 最重要的是PHP可以用C、C++進(jìn)行程序的擴(kuò)展!
參考資料:百度百科:PHP
你能存進(jìn)數(shù)據(jù)庫(kù),說(shuō)明你就能取數(shù)據(jù).將取出的數(shù)據(jù)進(jìn)行base64_decode,然后再根據(jù)文件格式發(fā)出一個(gè)http head,再直接echo出去.
如:一個(gè)jpg的圖片.經(jīng)過(guò)header后瀏覽器就會(huì)認(rèn)為那是一個(gè)圖片了.
//$db_img 這個(gè)是從數(shù)據(jù)庫(kù)取出的base64編碼格式的二進(jìn)制圖片數(shù)據(jù).
$img = base64_decode($db_img);
header("Content-type: image/jpg");
echo $img;
其他格式的文件類型就根據(jù)實(shí)際情況改header里面的Content-type
這需要用ajax來(lái)實(shí)現(xiàn)
index.php
html
titlephp+jquery+ajax+json簡(jiǎn)單小例子/title
?php
header("Content-Type:text/html;charset=utf-8");
?
head
script?type="text/javascript"?src="
script?type="text/javascript"
$(function()?{
$("#subbtn").click(function()?{
var?params?=?$("input").serialize();
var?url?=?"1.php";
$.ajax({
type:?"post",
url:?url,
dataType:?"json",
data:?params,
success:?function(msg){
var?backdata?=?"您提交的姓名為:"?+?msg.name?+
"br?/?您提交的密碼為:"?+?msg.password;
$("#backdata").html(backdata);
$("#backdata").css({color:?"green"});
}
});
});
});
/script
/head
body
plabel?for="name"姓名:/label
input?id="name"?name="name"?type="text"?/
/p
plabel?for="password"密碼:/label
input?id="password"?name="password"?type="password"?/
/p
span?id="backdata"/span
pinput?id="subbtn"?type="button"?value="提交數(shù)據(jù)"?//p
/body
/html
1.php代碼:
?php
//接收數(shù)據(jù)-處理數(shù)據(jù)-返回?cái)?shù)據(jù)
echo?json_encode($_POST);
?
再把數(shù)據(jù)讀出來(lái)不就行了。不明白到底想做成什么樣。
如果想做成TXT文本樣的數(shù)據(jù)下載到本地,那就生成TXT文件,數(shù)據(jù)的排列格式得自己制定。
下載成什么格式?是什么數(shù)據(jù)?普通文本數(shù)據(jù)?
將數(shù)據(jù)生成一定格式的TXT文本在服務(wù)器端,然后用戶可下載。生成文件的代碼網(wǎng)上有。起點(diǎn)中文網(wǎng)的小說(shuō)下載功能見過(guò)沒(méi)?就是那樣的。
生成WORD文件不知道。不過(guò)TXT文件倒是可以??墒悄銥槭裁捶且蒞ORD文件呢?數(shù)據(jù)庫(kù)里的數(shù)據(jù)讀出來(lái)也是純文本格式。還有一點(diǎn),你可以生成.doc后綴名的文件,那樣打開的話是用WORD打開,但實(shí)質(zhì)上還是純文本文件。
================================================
我只會(huì)ASP。下面是ASP的代碼。不過(guò)PHP的也不難,你查下函數(shù)庫(kù)就看到了,另外到網(wǎng)上搜一下也很多。寫文件操作是一門動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言的很平常操作,一般CMS程序里也有這樣的程序片段,可以參考。
FilePath1="../Html/AC/"C_ChanalEnName"/"
FilePath2=CStr(Year(C_RegTime)Month(C_RegTime))
NHtml=XTTag(YHtml)'系統(tǒng)標(biāo)簽
NHtml=NRTag(NHtml,C_ID)'內(nèi)容頁(yè)相關(guān)標(biāo)簽
NHtml=TJS_Text(NHtml)'文章頁(yè)推薦專題
'=================================寫文件
'=========判斷文件夾
SavePath =FilePath1 FilePath2 '文件上傳路徑
'判斷SavePath文件夾是否存在,如果不存在則創(chuàng)建
Set myfileobject=server.CreateObject("scripting.filesystemobject")
If not myfileobject.folderexists(Server.MapPath(SavePath)) then myfileobject.CreateFolder(Server.MapPath(SavePath))
set myfileobject=nothing
'===================================
Set fs2=Server.CreateObject("Scripting.FileSystemObject")
File2=Server.MapPath(""FilePath1FilePath2"/comic_"C_ID".html")
Set txtf2=fs2.OpenTextFile(File2,2,true)
txtf2.Write NHtml
response.write(" font color=#FF0000文章頁(yè)/font 靜態(tài)頁(yè)生成成功!/br")
set fs2=nothing
set txtf2=nothing
set File2=nothing
NHtml=""
'===================================
-----------------------------------------------------------------
上面是我的一個(gè)程序里摘來(lái)的,實(shí)際上簡(jiǎn)化一下就是這樣:
'=========判斷文件夾
SavePath ="/Html" '文件上創(chuàng)建路徑
'判斷SavePath文件夾是否存在,如果不存在則創(chuàng)建
Set myfileobject=server.CreateObject("scripting.filesystemobject")
If not myfileobject.folderexists(Server.MapPath(SavePath)) then myfileobject.CreateFolder(Server.MapPath(SavePath))
set myfileobject=nothing
'===================================真正的寫文件。
Set fs2=Server.CreateObject("Scripting.FileSystemObject")
File2=Server.MapPath(""SavePath"/Index.txt")'這里是文件名、文件后綴及文件目錄。
Set txtf2=fs2.OpenTextFile(File2,2,true)
txtf2.Write NHtml
response.write("文件生成成功。")
set fs2=nothing
set txtf2=nothing
set File2=nothing
NHtml=""
'===================================
代碼中“NHtml”是變量,是用來(lái)存要生成文本內(nèi)容的。如,從數(shù)據(jù)庫(kù)中讀取出來(lái)的數(shù)據(jù),賦到NHtml上。