【问题标题】:Reading JavaScript Variables in PHP在 PHP 中读取 JavaScript 变量
【发布时间】:2017-12-06 13:41:53
【问题描述】:

我正在寻找一种在 PHP 中读取图像 src 或在 PHP 中读取 JavaScript 变量的方法。

计划: 我有一个使用 base64 Canvas 方法拍摄图像的 JavaScript 网络摄像头脚本,但我需要它来使用 PHP 更新 MySQL 记录。

尝试了很多方法后; cookie,提交表单,ajax。我认为在这里发帖是最好的主意。

【问题讨论】:

  • 请查看What is the maximum size allowed for a cookie
  • 那么有什么替代方法吗?
  • 请提供正确的minimal reproducible example 并将其带入问题中。不推荐链接到外部资源。
  • 是的,查找 AJAX
  • 我尝试了 AJAX,但无法正常工作

标签: javascript php html canvas base64


【解决方案1】:

(!) 谨慎使用。这是一个概念证明。在 PHP 中,你不应该只接受和计算客户端数据而不检查它是否存在恶意代码并清理输入。 (!)

您可以使用 AJAX 将其发送到 PHP,方法是将您的 base64-source 放入 formData

Javascript

// ajax.js
var xhr = new XMLHttpRequest(); // initialize a new XHR
var formData = new FormData(); // initialize form data
var myFile = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAEaElEQVR4Xu3UgQkAMAwCwXb/oS10i4fLBHIG77YdR4AAgYDANViBlkQkQOALGCyPQIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiDwAIGUVl1ZhH69AAAAAElFTkSuQmCC';

xhr.open('POST', '/requestHandler.php') // init your request
xhr.onreadystatechange = function () {
// check if the server was able to compute the XHR
    if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { 
        // handle the response
        console.log(xhr.responseText) // log the PHP output
    }
}

// a form data element needs a descriptor/name and a value.
formData.append('myfile', myFile);
xhr.send(formData); // send your xhr to the server

PHP

// requestHandler.php
<?php
if('$_POST') {
    echo $_POST['myfile']; // this is your image source
}

更多信息:

【讨论】:

  • 这看起来正是我正在寻找的东西。我不太担心事情的安全方面,因为这只会在内部网络服务器上。
  • 很高兴我能帮助你。顺便说一句,你收到了很多反对票,因为你没有提供足够的代码让社区可以改进。 Stackoverflow 试图专门为遇到已解决问题的人提供帮助。这样做的缺点是它似乎对新用户有毒。这类问题经常被否决并被标记为重复,没有明显的理由,也没有解释。见:stackoverflow.com/help/how-to-ask
  • 另外,您的问题的标题具有误导性。它显示“PHP - 从 id 读取 img src”,但您没有在问题中提及任何 ID。我建议将其更改为“在 PHP 中读取 javascript 变量”或类似的内容
  • 感谢您的帮助,汤姆。
猜你喜欢
  • 2015-12-18
  • 1970-01-01
  • 2014-05-19
  • 2013-09-02
  • 1970-01-01
  • 2013-08-03
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多