繁体   English   中英

将PHP页面的URL中的变量传递给JavaScript和另一个PHP

[英]Passing variables in a URL of a php page to JavaScript and to another PHP

根据此链接http://webaudiodemos.appspot.com/AudioRecorder/index.html中的代码,我正在进行更改,以通过URL传递sessionId将录制的音频文件发送到服务器。 php页面是http://xxxxx/abc.php?sessionId = Sam PHP版本:PHP 5.4 PHP 5.5.22。 我正在通过此链接使用第二种方法: 如何将变量和数据从PHP传递到JavaScript? abc.php页面与上面链接中的index.html一样,引用了一些JS代码。 abc.php页面使用以下代码正确处理URL值:

  <div id="bottom">
        <?php
            $faid = $_GET["sessionId"];
            echo htmlspecialchars($faid);     // tested working
        ?>
  </div>

在recorder.js JavaScript上,我有一个函数,尝试在将音频文件上传到服务器时将URL值传递给另一个PHP-fname没有被传递...似乎.. xhr.send(blob )仍会发送fname吗?

  Recorder.setupDownload = function(blob){
    var div = document.getElementById("bottom"); 
    var fname = div.textContent;                 

  var xhr = new XMLHttpRequest();
  xhr.open('POST', "./uploads.php?" + fname, true); 
  xhr.onload = function(e) {};
  // Listen to the upload progress.
  var progressBar = document.querySelector('progress');
  xhr.upload.onprogress = function(e) {
    if (e.lengthComputable) {
      progressBar.value = (e.loaded / e.total) * 100;
      progressBar.textContent = progressBar.value; // Fallback for unsupported browsers.
    }
  };

  xhr.send(blob); 

服务器中的uploads.php具有以下脚本来接收值并创建音频文件-但它不是在创建音频文件-但是,如果我修复文件名(例如:“ filename123”),它将写入音频文件-因此问题在于传递变量名-我是新手,我想知道我缺少什么?:

    <?php
        ini_set("display_errors", true);
        error_reporting(E_ALL); 

    if(isset($_GET['fileId']) && !empty($_GET['fileId'])){
     $id = $_GET["fileId"];
    } 
        $fp = fopen( $id, 'wb' );   // writes the audio file 
        fwrite( $fp, $GLOBALS['HTTP_RAW_POST_DATA'] );   
        fclose( $fp );
    ?>

更新:正在工作!

您没有给值命名,因此您传递的值将在每个页面中显示为DIFFERENT键。

例如,您的每个用户都会有类似的东西

http://example.com?foo
http://example.com?bar

在PHP中导致$_GET['foo']$_GET['bar'] 但是由于foo / bar是代表会话ID的一些随机值,因此您不知道该值是多少。 所以...给它起个名字:

http://example.com?key=foo

现在,您只需要执行$key = $_GET['key'] ,就可以始终访问您的会话值,无论它实际上是什么值-它将始终分配给key

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM