note 100575 added to function.ssh2-exec

From: Date: Sun, 24 Oct 2010 21:57:19 +0000
Subject: note 100575 added to function.ssh2-exec
Groups: php.notes 
Request: Send a blank email to php-notes+get-173419@lists.php.net to get a copy of this message
Hi, i'm using this code for connect to other machine and execute a command with a button. Ok, when i press the button "Conectar" the ssh connection has entablished with out problems, but when i press the button "Comando", i get the next error: "Warning: ssh2_exec() expects parameter 1 to be resource, null given in /var/www/index.php on line 69 Fallo: No se puede ejecutar el comando." <html><head> <h1>Entorno de pruebas para SSH via PHP</h1> <p>Esta aplicacion es para la implementacion de futuros usos para las Remotas.</p> </head> <body> <FORM NAME = "FormularioIP" METHOD = "POST" ACTION = "index.php"> Introduzce una IP para conectar:<INPUT TYPE= "text" VALUE= "" NAME="servidor"></INPUT> <INPUT TYPE= "submit" NAME= "Conectar" VALUE= "Conectar"></INPUT> </FORM> <?php //if ($_SERVER['REQUEST_METHOD'] == 'POST'){ if (isset($_POST['Conectar'])) { $direccion = $_POST["servidor"]; conectarse($direccion); } function conectarse($server) { if ($server == '') { echo "<br>La direccion IP no puede estar vacia"; } else { // Aqui se empieza todo el proceso de conexion por SSH echo "<br>Conectando con el servidor: ", $server; echo "<br>-------------------------------<br>"; echo "Comprobando si esta instalada la funcion necesaria:<br>"; if (!function_exists("ssh2_connect")) die("La función ssh2_connect no esta instalada"); echo "Esta instalada, continuamos para bingo, <br>"; echo "-----------------------------------------<br>"; echo "Nos intentamos conectar: <br>"; // Nos conectamos a la direccion espeficada a mano mas abajo y comprobamos si hay fallo if(!($con = ssh2_connect($server, 22))){ echo "Fallo, no llego al servidor. <br>"; } else { // Se intenta la conexion con usuario y contraseña if(!ssh2_auth_password($con, "asda", "asdd")) { echo "Fallo, no me he podido conectar, revisa el nombre de usuario o la contraseña. <br>"; } else { // Hasta la cocina echo "Vale, me he conectado, <br>"; echo "------------------------------ <br>"; } } } } if (isset($_POST['Comando'])) { echo "<br>Enviando el comando \"ls -ns\" al sistema al que estamos conectado <br>"; // Lanzamos el comando y a la vez comprobamos si ha fallado if (!($stream = ssh2_exec($con, "ls -ns"))) { echo "Fallo: No se puede ejecutar el comando."; } else { //Recojemos la salida del comando stream_set_blocking($stream, true); $data = ""; while ($buf = fread($stream,4096)) { $data .= $buf; } echo $data; fclose($stream); } } ?> <FORM NAME = "FormularioConectar" METHOD = "POST" ACTION = "index.php"> Presionamos para mandar un "ls -ns": <INPUT TYPE= "submit" NAME= "Comando" VALUE = "Comando"></INPUT> </FORM> </body></html> ---- Server IP: 69.147.83.197 Probable Submitter: 87.217.109.132 ---- Manual Page -- http://www.php.net/manual/en/function.ssh2-exec.php Edit -- https://master.php.net/note/edit/100575 Del: integrated -- https://master.php.net/note/delete/100575/integrated Del: useless -- https://master.php.net/note/delete/100575/useless Del: bad code -- https://master.php.net/note/delete/100575/bad+code Del: spam -- https://master.php.net/note/delete/100575/spam Del: non-english -- https://master.php.net/note/delete/100575/non-english Del: in docs -- https://master.php.net/note/delete/100575/in+docs Del: other reasons-- https://master.php.net/note/delete/100575 Reject -- https://master.php.net/note/reject/100575 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#173419) next »