为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

皈依舞 2021-08-20 18:18:42
我正在尝试将 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
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

这里有几个问题。首先,如果我理解您要正确执行的操作,那么您的图像路径中有各种额外的字符。它以一个不必要的点和撇号开始和结束,它应该是:

var imagepath = '<?php echo urlencode($image_name); ?>';

其次,现在我再怎么强调都不为过:你在这里所做的绝对是一场安全噩梦。任何人都可以将您想要的任何 GET 变量传递到 loader.php 中,它会 sudo 执行它。我希望一些随机机器人会在几分钟内删除您网络服务器上的每个文件,这是最不痛苦的结果之一。我认真地敦促您在这里重新考虑这种方法,但是根据提供的信息(并且由于我对 led-image-viewer 或像这样加载 xml-s 缺乏经验),我无法说出什么是更好的逻辑。


查看完整回答
反对 回复 2021-08-20
  • 1 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信