2012-05-20 73 views
0

這是我的第一個php腳本。我實際上在vb.net編碼..我爲.net應用程序製作此許可系統。這個許可系統有一個管理員,管理員可以輕鬆控制和查看。另外Iam正在做一個類庫來登錄和註冊。我只使用vb.net代碼成功地完成了這項工作,但由於證書需要存儲在應用程序中,所以始終存在威脅。舌頭:用這個問題可以克服一些:。所以我決定使用這種有點PHP腳本來製作登錄+註冊系統。我正在使用一個唯一的管理讀取,寫入文本文件,而不是一個MySQL數據庫(所有託管服務輕鬆maneagable)。所以,我想出了以下這段代碼,在確認登錄部分時需要一些幫助。 文本文件是這樣的:PHP - 讀取ftp文本文件並提取所需數據

用戶名密碼HWID lastdate membershiptype

所有通過「空間」和每行一個賬戶分開。 我希望我已經提供了足夠的信息,如果需要額外的信息,我會給它。

<?php 
$user = addslashes($_GET['username']); 
$pass = addslashes($_GET['password']); 

    $username = "theusername"; 
    $password = "thepassword"; 
    $url = "mywebsite.com/file.txt"; 
    $hostname= "ftp://$username:[email protected]$url"; 
    $contents = file_get_contents($hostname); 
// That gives me the txt file which can only be read and written by the admin 
if (strpos($contents,$user) !== false) { 
    // Need code here to check if the adjacent word and the $pass are same to establish a successfull login 
} else { 
echo "Username does not exist, please register" 
} 
?> 
+1

你能具體談談你的問題? – jedwards

+0

空格和段落是你的朋友。 – jmort253

+0

他想遍歷文件並獲取每行的值來比較信息。 – rcdmk

回答

1

這裏試試這個,希望它有助於:

file.txt的需要砥這種格式,通過:分隔值,空間是不是單獨的值的好方法。

username:password:hwid:lastdate:membershiptype 

的PHP位:

<?php 
$user = $_GET['username']; 
$pass = $_GET['password']; 

if(check_auth(get_auth(),$user,$pass)==true){ 
    echo 'Yes'; 
}else{ 
    echo 'No'; 
} 

/** 
* This function will grab the text file and create a user array 
* 
* @return array(0=>username,1=>password) 
*/ 
function get_auth(){ 
    $username = "theusername"; 
    $password = "thepassword"; 
    $url = "mywebsite.com/file.txt"; 
    $location = "ftp://$username:[email protected]$url"; 

    $users = file($location); 
    function split_auth(&$value){ 
     $value = explode(':',$value); 
    } 
    array_walk($users,'split_auth'); 
    return $users; 
} 

/** 
* This Function will check the username and password 
* against the users array 
* 
* @param array $users 
* @param string $username 
* @param string $password 
* @return bool (true|false) 
*/ 
function check_auth($users,$username,$password){ 
    foreach($users as $user){ 
     if($user[0]==$username && $user[1]==$password){ 
      return true; 
     } 
    } 
    return false; 
} 
?> 
+0

那麼這將工作?用戶名:密碼:hwid:lastdate:membershiptype – HooCraX

+0

是的,如果你更改'用戶名密碼hwid lastdate membershiptype'到'用戶名:密碼:hwid:lastdate:membershiptype' –

+0

像一個魅力工程謝謝曼=) – HooCraX