2010-12-07 249 views
4

,我們如何通過SFTP連接到遠程服務器,以驗證登錄信息是在PHP有效...通過SFTP PHP連接到服務器

我使用Apache服務器...我的用途是檢查用戶輸入的登錄信息是否正確。

+1

有沒有聽說過apache和http? – 2010-12-07 12:02:51

+0

你聽說... y問? – 2010-12-07 12:05:02

回答

3

您可能更容易使用phpseclib, a pure PHP SFTP client。這裏有一個例子:

<?php 
include('Net/SFTP.php'); 

$sftp = new Net_SFTP('www.domain.tld'); 
if (!$sftp->login('username', 'password')) { 
    exit('Login Failed'); 
} 

echo $sftp->pwd() . "\r\n"; 
$sftp->put('filename.ext', 'hello, world!'); 
print_r($sftp->nlist()); 
?> 

與libssh2的問題,因爲大家的建議是,它不是很廣泛的應用,它的API是不完全的最可靠的,它是不可靠的,支持不佳等

2

您是否安裝了apache服務器?例如:xampp?

如果你這樣做,那麼你必須使用FTP功能:

<?php 
$connection = ssh2_connect('ftp.server.com', 22); //port 22 for Shell connections 
ssh2_auth_password($connection, 'username', 'password'); 

$shell_ftp = ssh2_sftp($connection); 

$connectionStream = fopen('ssh2.sftp://'.$shell_ftp.'/path/to/fileorfolder', 'r'); 

if(!connectionStream) 
{ 
    echo "Could not connect to the server, please try agian"; 
} 
else 
{ 
    echo "Successfully logged in."; 
} 
?> 

,基本殼牌FTP連接,必須定義絕對路徑的提交的或文件夾。

2

這會幫助嗎?

<?php 
$connection = ssh2_connect('ftp.server.com', 22); 
if (ssh2_auth_password($connection, 'username', 'password')) 
    echo "Authentication success"; 
else 
    echo "Authentication failure"; 
?>