史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   php 簡易的建檔寫入問題 (http://forum.slime.com.tw/thread243936.html)

飛行船大大 2009-02-26 09:38 AM

php 簡易的建檔寫入問題
 
請問 我這個床 , 我已上傳放了1個php的簡易小程式writeFile.php
http://huhuge.hp.infoseek.co.jp/writeFile.php

並且已經 建立了子目錄p28 (即 http://huhuge.hp.infoseek.co.jp/p28)

我呼叫法
http://huhuge.hp.infoseek.co.jp/writ...tUsed=20090226

照道理應該 會在http://huhuge.hp.infoseek.co.jp/p28 中產生 1.txt 檔案
但是卻沒產生

請問:這空間支援PHP嗎 ? 若是, 則這個writeFile.php錯誤在那 ?:em02:
語法:

<?PHP
    $fp = fopen("$productID//$licenseNo.txt","w");
    fputs($fp, "KTK,");
    fputs($fp, "$licenseNo,");
    fputs($fp, "$licenseHolder,");
    fputs($fp, "$licenseHardwareKey,");
    fputs($fp, "$daysEval,");
    fputs($fp, "$dateRegistered,");
    fputs($fp, "$lastUsed,");
    fputs($fp, "KTK");
    fclose($fp);

    echo "License Created.n";
    echo "$productID//$licenseNo.n";
    echo ".n";
    echo "If this license already existed then it was overwritten!";
?>


cwvdavid 2009-02-26 10:26 AM

直接連這個網址 http://huhuge.hp.infoseek.co.jp/writeFile.php
會看到原始碼就表示 [不支援]

飛行船大大 2009-02-26 06:06 PM

引用:

作者: cwvdavid (文章 2113102)
直接連這個網址 http://huhuge.hp.infoseek.co.jp/writeFile.php
會看到原始碼就表示 [不支援]

謝謝,看來我得試試別的空間.

另外向cwvdavid大 請問相關的.
我希望 將writeFile.php 改變成:

呼叫方式一模一樣. 是傳入8個參數
但是 會固定打開 http://huhuge.hp.infoseek.co.jp/list.txt ,這個檔案
並每次都會在檔案最後 新增一列. 寫入後6項參數 各個參數之間 用 逗點"," 分開
即 :

參數3, 參數4, 參數5, 參數6, 參數7, 參數8
參數3, 參數4, 參數5, 參數6, 參數7, 參數8
參數3, 參數4, 參數5, 參數6, 參數7, 參數8
.
.
.
.

這樣php指令要如何改code??

cwvdavid 2009-03-06 10:49 AM

http://tw.php.net/manual/en/function.fopen.php
這是php網站的函數說明..

fopen("檔名","w") ... 使用w模式, 表示開啟檔案只用來寫入, 而且開啟時 刪除該檔案的全部內容

原文:
Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.

fopen("檔名","a") 使用a模式, 表示開啟檔案只用來寫入(無法讀取), 並且將指標放在文件後最後面

原文:
Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it.

================
結論:把參數由 w 改成a...就可以直接把你要寫的內容加在文字檔後面了...
(至於要換行...請在寫入的內容加上 "\r" 或者 "\r\n" )

Chin-Wei 2009-03-06 11:33 AM

PHP 語法:

<?php    
    $new_line 
implode(",", array("參數3""參數4""參數5""參數6""參數7""參數8"));
    
file_put_contents("list.txt"$new_line "\n"FILE_APPEND);
?>

這樣子就行了

飛行船大大 2009-03-10 08:16 PM

引用:

作者: cwvdavid (文章 2117336)
http://tw.php.net/manual/en/function.fopen.php
這是php網站的函數說明..

cwvdavid大 真熱心 還幫我找了.php網站的函數說明.
多謝Chin-Wei 大的程式碼.
2位都是最佳解答,但是
我在用下一行指令測試時, 發現 我還缺少另一個簡易的 .php網頁
也就是要先 自動登錄. 否則執行 writeFile.php 時會發生沒有寫新檔的權限.
http://tomkiki1.host.sk/test/writeFi...tUsed=20090226

---------------
我找出以前曾設計過的類似案例
是用 vb6 來呼叫 某一簡單的自動登入 .asp
若登入成功會 傳回 "5,0,xxxx,xxx"一堆字串 , 若登入失敗會傳回字串 "6, php錯誤代號"
我的VB6源碼 :
語法:

      strRet = ""
      ReDim varRet(0)
      SrvTag = "ProFile_Get.asp"
      SrvTag = SrvTag & "?UID=" & objSys.UrlEncodeUTF8(UserID)
      SrvTag = SrvTag & "&Pwd=" & objSys.UrlEncodeUTF8(UserPwd)
      strRet = XmlHTTP(SrvTag)
      varRet = Split(strRet, "`")
      If varRet(0) = "5" And Err.Number = 0 Then
        gstr_myName1 = varRet(1)    '{我的姓氏}
        gstr_myName2 = varRet(2)    '{我的名字}
        gstr_myNickName = varRet(3) '{我的暱稱}
        gstr_myMobile = varRet(4)  '{我的手機}
      Else
        'MsgBox "目前無法連線網路,請檢查網路環境後點選【系統\重新連線】", vbCritical
      End If

這個登入的php對於 懂Php的老手而言是小菜一碟,現在問題是 Php 我從沒摸過php語法.對菜鳥就有些困難:on_51::on_22::on_77:

例如
登入帳號是:abcde
密碼是:12345
我須要一個 login.php ,可以接受8個參數
呼叫時用: login.php abcde 12345 參數3 參數4 參數5 參數6 參數7 參數8
並傳出如上方所講的
若登入成功會 傳回 "5,0,xxxx,xxxx"一堆字串 , 若登入失敗會傳回字串 "6, php錯誤代號"

登入我的網站是在這裏 http://tomkiki1.host.sk/
我在想 那位php高手可以修改這一頁
http://www.host.sk/default_web.php
而這個login.php 畫面越單純越好,不必有任何的圖案, 只須留8個 位置可供接受參數 1.帳號 2.密碼 (第3~第8個 則是預留以後可能會用到 ), 和1個提交鈕.
並且 當login.php 被vb6 呼叫之時,螢幕也不必出現任何畫面.
需求就是這麼簡單.
謝謝各位 !

Chin-Wei 2009-03-11 12:48 AM

PHP 語法:

<?php
// 取得 HTTP 參數
$flag $_POST['flag'];
$var_arr $_POST['var'];
$user $_POST['user'];
$password $_POST['pass'];

// 是否判斷帳號密碼
if($flag == "login") {
  if(
$user == "abcde" && $password == "12345") {
    
// 登入成功
    
echo "5,0," implode(","$var_arr);
  } else {
    
// 登入失敗
    
echo "6,php錯誤代號";
  }
}
?>
<html>
<body>
<form action="test.php" method="POST">
  <input type="hidden" name="flag" value="login">
  帳號: <input type="text" name="user"><br>
  密碼: <input type="password" name="pass"><br>
  參數1: <input type="text" name="var[]"><br>
  參數2: <input type="text" name="var[]"><br>
  參數3: <input type="text" name="var[]"><br>
  參數4: <input type="text" name="var[]"><br>
  參數5: <input type="text" name="var[]"><br>
  參數6: <input type="text" name="var[]"><br>
  參數7: <input type="text" name="var[]"><br>
  參數8: <input type="text" name="var[]"><br>
  <input type="submit" value="submit">
</form>
</body>
</html>

工作上要用的東西嗎? 不加密直接透過 HTTP 傳參數實在不安全......

飛行船大大 2009-03-11 01:15 AM

引用:

作者: Chin-Wei (文章 2120078)
[php]

工作上要用的東西嗎? 不加密直接透過 HTTP 傳參數實在不安全......

謝謝源碼 ~
剛好現場請教
的確程式的防破 . 是我比較關心的
以上Login.PHP我的構想是 網路激活. 並可作一些管控. Chin-Wei大手邊 若有這方面的pHP碼 可以更嚴密些 ~那求之不得.

-------------------------
另外向大大 請問相關的.
我希望 將writeFile.php 改變成:

呼叫方式一模一樣. 是傳入8個參數
但是 會固定打開 http://huhuge.hp.infoseek.co.jp/list.txt ,這個檔案
.
即 : 即我目的 任何人連上 都會開啟list.txt 這個表. 並搜尋到 此表中 自己的參數1,參數2, 找到則 php傳回 參數3, 參數4, 參數5, 參數6, 參數7, 參數8
,若找不到, 則在檔案最後 新增一列寫入8項參數 各個參數之間 用 逗點"," 分開
(簡言之: 這個表是 所有user的帳號, 密碼 的清單表 )
可惜平時沒有收集php源碼.

參數1,參數2,參數3, 參數4, 參數5, 參數6, 參數7, 參數8
參數1,參數2,參數3, 參數4, 參數5, 參數6, 參數7, 參數8
參數1,參數2,參數3, 參數4, 參數5, 參數6, 參數7, 參數8
.
.
.
.
這樣php指令要如何改code??
'---------------------
目前有越來越多是網路激活軟體, php屬網路語言應該有不少這類型的server端的範例.(VB6這類型的範例,少的可憐), 不知道您有沒有這方面的代碼.
多謝了 ~
我先去測試一下.明天再來

Chin-Wei 2009-03-11 09:59 AM

PHP 語法:

<?php
// 取得 HTTP 參數
$flag $_POST['flag'];
$var_arr $_POST['var'];
$user $_POST['user'];
$password $_POST['pass'];
$line_arr file("list.txt");


// 是否判斷帳號密碼
if($flag == "login") {
  for(
$index 0$index count($line_arr); $index++) {
    
$col_arr explode(","$line_arr);
    if(
$user == trim($col_arr[0]) && $password == trim($col_arr[1])) {
      
// 登入成功
      
echo "5,0," implode(","$var_arr);
    } else {
      
// 登入失敗
      
echo "6,php錯誤代號";
      
      
// 寫入一筆新資料
      
$new_line implode(",", array($user$password$var_arr[2], $var_arr[3], $var_arr[4], $var_arr[5], $var_arr[6], $var_arr[7]));
      
file_put_contents("list.txt"$new_line "\n"FILE_APPEND);
    }
  }
}
?>
<html>
<body>
<form action="test.php" method="POST">
  <input type="hidden" name="flag" value="login">
  帳號: <input type="text" name="user"><br>
  密碼: <input type="password" name="pass"><br>
  參數1: <input type="text" name="var[]"><br>
  參數2: <input type="text" name="var[]"><br>
  參數3: <input type="text" name="var[]"><br>
  參數4: <input type="text" name="var[]"><br>
  參數5: <input type="text" name="var[]"><br>
  參數6: <input type="text" name="var[]"><br>
  參數7: <input type="text" name="var[]"><br>
  參數8: <input type="text" name="var[]"><br>
  <input type="submit" value="submit">
</form>
</body>
</html>

至於資安方面的東西,建議您直接去書店翻書可能會比較快,實在一言難盡

飛行船大大 2009-03-11 10:18 PM

正從網路收集了好幾本電子書教程,
開始學PHP了...
感謝大大寫了好幾個範例給我 ~ 可以研究好幾天 有得忙了:on_79:


所有時間均為台北時間。現在的時間是 02:43 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1