Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用formsubmit发送$\u POST变量_Php_Html - Fatal编程技术网

Php 使用formsubmit发送$\u POST变量

Php 使用formsubmit发送$\u POST变量,php,html,Php,Html,我正试图建立一个内部网站,将允许播放和转码的视频文件。我设置了一个文件来跟踪设置。我现在做的是设置一个带有编码器选项的下拉框。当用户单击“我想更新设置文件”时,它将更新为所选的任何内容。理想情况下,我希望这个过程不改变网页,只是自动更新,这可能是与ajax 我在网络编码方面的经验非常有限。我现在遇到的问题是,除了$EncoderType变量外,下面的代码正常工作 当我在$\u POST['encoder\u Type']周围加上引号时,我最终出现了一个错误: 分析错误:语法错误,第414行/va

我正试图建立一个内部网站,将允许播放和转码的视频文件。我设置了一个文件来跟踪设置。我现在做的是设置一个带有编码器选项的下拉框。当用户单击“我想更新设置文件”时,它将更新为所选的任何内容。理想情况下,我希望这个过程不改变网页,只是自动更新,这可能是与ajax

我在网络编码方面的经验非常有限。我现在遇到的问题是,除了$EncoderType变量外,下面的代码正常工作

当我在
$\u POST['encoder\u Type']
周围加上引号时,我最终出现了一个错误:

分析错误:语法错误,第414行/var/www/index.php中出现意外的“”(T_封装的_和_空格),需要标识符(T_字符串)或变量(T_变量)或数字(T_NUM_字符串)

下面是我尝试过的引用版本。这也是给出错误的行:

echo$EncoderType=“$\u POST['encoder\u type']”

应改为:

EncoderType:1:(1-H264 2-WMV8 3-MPEG 4-MPG4v2)

我不确定您想做什么,但如果您想设置表单的enctype,您应该执行以下操作:

echo $EncoderType . "=" . $_POST['encoder_type'];
在这种情况下,您可能会错过以下行中的空白:

echo " action=";

您提供的代码非常有限。但是试试这个:

echo "<form ";
    $EncoderType = (int)$_POST['encoder_type'];         
    echo "action=";                     
    echo exec("sed -i '8 c\EncoderType:".$EncoderType.":(1-H264 2-WMV8 3-MPEG 4-MPG4v2)' /home/root/settings");
    echo "method='post'>";
    echo '<select name="encoder_type" onChange="this.form.submit()">';
    echo '<option value="1">H264</option>';
    echo '<option value="2">WMV8</option>';
    echo '<option value="3">MPEG2</option>';
    echo '<option value="4">MPG4v2</option>';
    echo '</select>';
 echo '</form>';
echo”“;
回声';
回声‘H264’;
回声“WMV8”;
回声“MPEG2”;
回声“MPG4v2”;
回声';
回声';
对编辑的响应(echo$EncoderType=“$\u POST['encoder\u type']”;”): 那不行

<?php $EncoderType = "{$_POST['encoder_type']}";

如果我读对了,我想这就是你需要的:

echo "EncoderType='" . $_POST['encoder_type']. "' ";

如果我读对了,你描述了两个错误。首先,当您尝试分配$EncoderType时出现错误,这是您抛出的PHP错误文本

可通过将回音线更改为:

$EncoderType = $_POST['encoder_type'];
第二,您的输出(编辑/home/root/settings)有一个错误,编码器类型不在实际输出中,这是有道理的,因为您的操作永远不会像我所说的那样实际运行-例如,我认为您不能将
exec()
作为操作,因为操作属性是将数据发送到哪里(即,哪个网页),而不是执行什么操作

在您的情况下,我会编写一个简单的php页面,如“process_action.php”,它看起来像:

<?php
  $encType = $_POST['encoder_type'];
  // You should probably rewrite the next line to use native PHP, rather than exec()!
  exec("sed -i '8 c\EncoderType:{$encType}:(1-H264 2-WMV8 3-MPEG 4-MPG4v2)' /home/root/settings"; 
?>

<html>
<head/>
<body>
  Changed encoder type to <?php echo $encType ?>
</body>
</html>

听起来你在某个地方的引号不匹配-你能添加该行的引号版本吗?@andrewsi更新以反映引用的版本。@ernie我更新了问题。第414行是:echo$EncoderType=“$\u POST['encoder\u type']”;我还将移出exec()代码,并调用一个单独的PHP函数,它是一个包装器,因为看起来有人可以定义任意操作并发布它。这是我所看到的第三个问题,因此有一个问题与使用PHP的嵌入变量有关。虽然这是一个非常巧妙的技巧,但它确实是PHP中不需要的又一个难题。
echo "EncoderType='" . $_POST['encoder_type']. "' ";
$EncoderType = $_POST['encoder_type'];
<?php
  $encType = $_POST['encoder_type'];
  // You should probably rewrite the next line to use native PHP, rather than exec()!
  exec("sed -i '8 c\EncoderType:{$encType}:(1-H264 2-WMV8 3-MPEG 4-MPG4v2)' /home/root/settings"; 
?>

<html>
<head/>
<body>
  Changed encoder type to <?php echo $encType ?>
</body>
</html>
 <form action='process_action.php' method='post'>
      <select name="encoder_type" onChange="this.form.submit()">
        <option value="1">H264</option>
        <option value="2">WMV8</option>
        <option value="3">MPEG2</option>
        <option value="4">MPG4v2</option>
      </select>
 </form>