2010-12-07 205 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"; 
?>