gpt4 book ai didi

php - 如何在变量中存储选择选项 onchange 并将其作为参数传递到单个 php 页面

转载 作者:行者123 更新时间:2023-11-29 20:27:10 25 4
gpt4 key购买 nike

我对 php 页面有特定要求。我正在运行 2 个查询,它从我的 mysql 数据库中获取 shell 脚本名称。第一个查询:执行并在下拉列表中提供输出,该输出工作正常。第二个查询:如果从下拉列表中选择任何选项,则该值应作为输入参数传递给我的第二个 shell 脚本。这是我无法实现的。请指导我同样的事情。

下面是我的 php 页面代码:

<?php
include('db.php');

function connect_db (){
mysql_connect('localhost', 'root', '') or die('Could not connect to database' . mysql_error());
mysql_select_db('dashboard');
}



function close(){
mysql_close();
}



function query1(){
connect_db ();
$sql = mysql_query("SELECT * FROM webpage WHERE page = 'display_peer_info.php' ");
$record = mysql_fetch_assoc($sql);
$script = $record['arg1_script'];

$conn = ssh2_connect('$server_ip',$port);
ssh2_auth_password($conn, '$user', '$pass');
//Executing 1st shell script on remote server and saving output in a variable
$script_output = ssh2_exec($conn, "/home/$user/bin/webscript/$script");

stream_set_blocking($script_output, true);
while($line = fgets($script_output)) {
flush();
echo '<option value='.$line.'>'. $line . '</option>';
}

}

function query2(){
connect_db ();
$sql1 = mysql_query("SELECT * FROM webpage WHERE page = 'display_peer_info.php' ");
$record1 = mysql_fetch_assoc($sql1);
$script1 = $record1['page_script'];

$conn = ssh2_connect('$server_ip',$port);
ssh2_auth_password($conn, '$user', '$pass');

//Getting value from dropdown list
$dropdown_value = $_POST['arg1'];
// Executing 2nd shell script on same remote server with Argument selected from dropdown list
$script_output1 = ssh2_exec($conn, "/home/oaa/bin/webscript/$script1 \"$dropdown_value\" " );
echo $script_output1;
}
?>


<!DOCTYPE>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>

<div class="webpage">
<select id="arg1">
<?php query1();?>
</select>
<?php close(); ?>

</div><br />
<div id="output">
<? php query2(); ?>
</div>
</body>
</html>

请建议一些逻辑/解决方法来从我的第二个查询函数获取输出。

最佳答案

首先也是最重要的

绝对不应该再使用mysql_query或任何旧的ext/mysql函数。这些函数已被弃用多年,并从 PHP 7 中删除。

如果您只快速学习了一个look at the PHP manual对于过去大约 4 年中的任何这些功能,您都会在每个页面的顶部看到这个红色的大警告,看起来像这样。

Warning This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

<小时/>

上述代码的问题相当多且广泛。由于您没有清楚地描述您要解决的具体问题,因此我将一般性地解决那些突出的问题。

  1. shell 中的参数(例如 $dropdown_value)可能需要转义 ( see escapeshellarg )
  2. ssh2_exec 返回流资源,而不是字符串 ( read the manual on how to use it )
  3. 函数应该返回值,而不是直接打印到输出

您最关键的问题可能是使用shell2_exec。您显然假设它返回一个字符串,而实际上它返回一个流资源。您需要使用类似 fread 的内容来读取此流资源。 ,例如。

$stream =  ssh2_exec($conn, "/home/oaa/bin/webscript/$script1 \"$dropdown_value\"  " );
$buffer = "";
while($data = fread($stream, 8192)) {
$buffer .= $data;
}
fclose($stream);
echo $buffer; // this will be a string

由于您从未解释过 shell 脚本的预期输出应该是什么格式,因此不清楚如何帮助您进一步处理该输出到 HTML。

关于php - 如何在变量中存储选择选项 onchange 并将其作为参数传递到单个 php 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39244611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com