我是PHP
的新手,有一个简单的项目,我做Java。
在我的简单项目中,我有一些html
个文件和一些Php
个文件。
我在Php
网页中通过SSH连接到设备,之后我将运行一些命令并返回SSH返回的数据。
任何方式,所以我设计了一个Html
文件用于登录并使用我的php
,这是我的Php
代码:
<?php
class Connection {
public static $ip; // I even made static this variable to test if I can access Static variable from other
public $username;
public $password;
public static $ssh;
public function sshConnection() {
include ('./view/login.html'); // The html page contain variables
include('Net/SSH2.php'); // I use phpseclib to connect via SSH
if(isset($_POST['lgin'], $_POST['ip'], $_POST['username'], $_POST['password'])) { // Login button in html file
$this->ip = $_POST['ip']; // input type to get ip in html file
$this->username = $_POST['username']; // input type to get username in html file
$this->password = $_POST['password']; // input type to get password in html file
$this->ssh = new Net_SSH2($this->ip);
if (!$this->ssh->login($this->username, $this->password)) {
print('Login faild');
} else {
header("Location: http://localhost/wireless/configwireless.php"); // This redirect to next page that I should display some Commands
}
}
}
}
$connection=new Connection();
$connection->sshConnection();
?>
我需要在下一页中使用$ ssh变量,以便我可以通过此连接运行命令并进行会话。 我用Google搜索并发现我可以通过以下代码访问静态变量:
classname::$variableName;
我甚至让我的$ ip变量静态来测试我是否可以访问它,但没有机会,
这是我的configwireless.php
代码:
<?php
echo Connection::$ip; // Does not display the input ip variable.
?>
但它不显示$ip
变量。
我在哪里做错了?
答案 0 :(得分:0)
对于课程中的分配静态属性,应使用 自我 或 静态 关键字。而不是
$this->ip = $_POST['ip'];
使用此
static::$ip = $_POST['ip'];
或
self::$ip = $_POST['ip'];
答案 1 :(得分:0)
正如我亲爱的朋友@Mohammad所说,header("Location: http://localhost/wireless/configwireless.php");
变量将丢失。
我在header("Location: http://localhost/wireless/configwireless.php");
之前做了这个:
session_start();
$_SESSION['ip'] = $this->ip;
在下一页中我添加了:
session_start();
$x=$_SESSION['ip'];
echo $x;