皈依舞
2021-08-20 18:18:42
我正在嘗試將 PHP 圖像路徑傳遞給 JavaScript,然后傳遞給外部 PHP 文件。發(fā)件人.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");}?>代碼執(zhí)行正常,但我無(wú)法從 xhttp.open("POST", "loader.php?image=" + imagepath, true); 獲取圖像路徑。xhttp.send(); 到receiver.php
1 回答

手掌心
TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
這里有幾個(gè)問(wèn)題。首先,如果我理解您要正確執(zhí)行的操作,那么您的圖像路徑中有各種額外的字符。它以一個(gè)不必要的點(diǎn)和撇號(hào)開(kāi)始和結(jié)束,它應(yīng)該是:
var imagepath = '<?php echo urlencode($image_name); ?>';
其次,現(xiàn)在我再怎么強(qiáng)調(diào)都不為過(guò):你在這里所做的絕對(duì)是一場(chǎng)安全噩夢(mèng)。任何人都可以將您想要的任何 GET 變量傳遞到 loader.php 中,它會(huì) sudo 執(zhí)行它。我希望一些隨機(jī)機(jī)器人會(huì)在幾分鐘內(nèi)刪除您網(wǎng)絡(luò)服務(wù)器上的每個(gè)文件,這是最不痛苦的結(jié)果之一。我認(rèn)真地敦促您在這里重新考慮這種方法,但是根據(jù)提供的信息(并且由于我對(duì) led-image-viewer 或像這樣加載 xml-s 缺乏經(jīng)驗(yàn)),我無(wú)法說(shuō)出什么是更好的邏輯。
添加回答
舉報(bào)
0/150
提交
取消