猿问

将 PHP 图像路径传递给 JavaScript 他们将其发送到外部 PHP 文件

我正在尝试将 PHP 图像路径传递给 JavaScript,然后传递给外部 PHP 文件。


发件人.php


<script> 

var imagepath = "<?php echo "'.$image_name .'"?>";

function loadXMLDoc3() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("POST", "loader.php?image=" + imagepath, true); xhttp.send(); } 

</script>



<?php

//path to image files directory//

 $all_files = glob("images/emojis/*.*");

  for ($i=0; $i<count($all_files); $i++)

    {

      $image_name = $all_files[$i];

      $supported_format = array('gif','jpg','jpeg','png');

      $ext = strtolower(pathinfo($image_name, PATHINFO_EXTENSION));

      if (in_array($ext, $supported_format))

          {

              //Display images from path directory//

            echo '<div class="bottom"><div class="col"><a href="#"><img src="'.$image_name .'" onclick="loadXMLDoc3()"/></a></div>'." <?php ?>";


          } else {

              continue;

          }  

    }

?>

接收器.php


<?php    

if(isset($_GET['image']))

{

   shell_exec("sudo led-image-viewer -C /var/www/html/led/".urldecode($_GET['image'])." --led-gpio-mapping=adafruit-hat --led-rows=64 --led-cols=64");

}

?>

代码执行正常,但我无法从 xhttp.open("POST", "loader.php?image=" + imagepath, true); 获取图像路径。xhttp.send(); 到receiver.php


皈依舞
浏览 141回答 1
1回答

手掌心

这里有几个问题。首先,如果我理解您要正确执行的操作,那么您的图像路径中有各种额外的字符。它以一个不必要的点和撇号开始和结束,它应该是:var&nbsp;imagepath&nbsp;=&nbsp;'<?php&nbsp;echo&nbsp;urlencode($image_name);&nbsp;?>';其次,现在我再怎么强调都不为过:你在这里所做的绝对是一场安全噩梦。任何人都可以将您想要的任何 GET 变量传递到 loader.php 中,它会 sudo 执行它。我希望一些随机机器人会在几分钟内删除您网络服务器上的每个文件,这是最不痛苦的结果之一。我认真地敦促您在这里重新考虑这种方法,但是根据提供的信息(并且由于我对 led-image-viewer 或像这样加载 xml-s 缺乏经验),我无法说出什么是更好的逻辑。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答