I'm trying to work with the ssh2 class found at 

http://us2.php.net/manual/en/function.ssh2-auth-password.php#56285

to provide user authentication to my server using my users system
usernames and passwords, but I'm having trouble.  I copied the code
into its own file and then used require_once to include it.  The ssh2
class is giving me a lot of errors, and as I don't know PHP very well,
I just wanted to ask:  Is this valid PHP?  Is this a problem with my
server or with the code itself?  I'm using mod_php-4.4.0-r9 with
apache-2.0.54-r31 .  Here's the code:

<?php

class SSH2
{
   private $con;
   private $host;
   private $port;
   private $login;
  
   public function __construct($host=NULL, $port=22)
   {
       $this->host = $host;
       $this->port = $port;

       $this->con = ssh2_connect($this->host, $this->port);
       // connection attempt successful ?
       if($this->con === false)
       {
           $this->con = NULL;
           throw new SSH2Exception("Could not connect to host
'".$this->host."' on port ".$this->port);
       }
   }
  
   public function login($login=NULL, $password=NULL)
   {
       if(empty($login)) {
           throw new IllegalArgumentException("Login failed, no
username supplied");
       }
       $this->login = $login;

       // try to log in
       if(!ssh2_auth_password($this->con, $this->login, $password))
       {
           $this->con = NULL;
           throw new SSH2Exception("Password authentication failed for
user '".$this->login."'");
       }
   }
  
   // returns an array like: array('stdout goes here', 'stderr')
   public function exec($cmd)
   {
       if(empty($this->con)) {
           throw new SSH2Exception("Exec failed, no connection
available");
       }
       // execute the command
       $stdio  = ssh2_exec($this->con, $cmd);
       // get the error stream, otherwise this would be lost
       $stderr = ssh2_fetch_stream ($stdio, SSH2_STREAM_STDERR);
       // set to blocking mode or we won't get any data
       stream_set_blocking($stdio, true);
      
       $data_std = '';
       $data_err = '';
       // let's fetch the result of our command
       while($data = fread($stdio, 131072)) {
       //while($data = fgets($stdio)) {
           $data_std .= $data;
       }
       while($data = fread($stderr, 80000)) {
           $data_err .= $data;
       }
       // close the streams
       fclose($stdio);
       fclose($stderr);
      
       return array($data_std, $data_err);
   }
}

class SSH2Exception extends Exception {}
class IllegalArgumentException extends Exception {}

?>


The first line it trips on is line 5:  private $con;

It gives me 

Parse error: parse error, unexpected T_STRING, expecting
T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in
/home/michael/webspace/html/testing/ssh2.php on line 5

If I replace the "private" with "var" line 5 doesn't generate an
error.  The above code looks like pseudo-java to me.  Can anyone help
me figure this out?





------------------------ Yahoo! Groups Sponsor --------------------~--> 
Most low income households are not online. Help bridge the digital divide today!
http://us.click.yahoo.com/I258zB/QnQLAA/TtwFAA/HKFolB/TM
--------------------------------------------------------------------~-> 

Community email addresses:
  Post message: [email protected]
  Subscribe:    [EMAIL PROTECTED]
  Unsubscribe:  [EMAIL PROTECTED]
  List owner:   [EMAIL PROTECTED]

Shortcut URL to this page:
  http://groups.yahoo.com/group/php-list 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/php-list/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to