session_start();
require_once('../defines.php');
require_once('config/mysql.class.php');
$db=new dbclass();
$sql=array();
//$arr=array_values($_SESSION['music']);//print_r($arr);结果是和$arr=array(5,4,3,2,1);一样的
$arr=array(5,4,3,2,1);
//print_r($arr);
for($i=0;$i<count($arr);$i++){
//echo $arr[$i]."<br>";
$sql[$i]="select mp3_url from mp3_info where mp3_id='$arr[$i]'";
}
//print_r($sql);
echo '<ASX Version="3.0" PREVIEWMODE="NO">';
for($j=0;$j<count($sql);$j++){
@$rw=$db->getone($sql[$j]);
echo '<entry>  
  <ref href="'.$rw.'"/>  
  </entry>';
}
echo '</ASX>';上面这段代码如果不用session,直接用$arr=array(5,4,3,2,1);音乐列表可以正常播放,一用session就不行,望高手帮忙!

解决方案 »

  1.   

    自己顶下,现在只有firefox下用session就不能连续播放,IE下可以了。
      

  2.   

    理论上来说
    php与浏览器无关(如果都开启了cookie的话)
      

  3.   

    但现在问题就是我用session firefox就不能播放,用实体数组就可以。IE下没这个问题,我好晕啊!
      

  4.   

    $arr=array_values($_SESSION['music']);//print_r($arr);结果是和$arr=array(5,4,3,2,1);一样的这一句之后,获取数组 $arr,后面操作就与  session  无关了
      

  5.   


    $sql[$i]="select mp3_url from mp3_info where mp3_id='{$arr[$i]}'";
      

  6.   

    是啊,我获去的数组和实例数组是一样的,但实例数组可以,获取的就不行。BOY知道原因不?
      

  7.   

    贴出结果:
    echo '<pre>';
    var_dump($_SESSION['music']);
      

  8.   

    老大,结果是下面
    array(5) {
      [1]=>
      string(1) "5"
      [2]=>
      string(1) "4"
      [3]=>
      string(1) "3"
      [4]=>
      string(1) "2"
      [5]=>
      string(1) "1"
    }
      
      

  9.   

    汗,你的 mp3_id 是字符串么??应该是整型吧!!!
    $arr=array_values($_SESSION['music']);//print_r($arr);结果是和$arr=array(5,4,3,2,1);一样的
    //$arr=array(5,4,3,2,1);
    //print_r($arr);
    for($i=0;$i<count($arr);$i++){
        $mp3_id = (int)$arr[$i];
        $sql[$i]="select mp3_url from mp3_info where mp3_id={$arr[$i]}";
        }
        //print_r($sql);
      

  10.   

    或者是在 session 保存的时候,把类型转化成 整型
      

  11.   

    不管是不是整形,我都可以得到面页源码如下:<ASX Version="3.0" PREVIEWMODE="NO"><entry>  
      <ref href="http://192.168.13.201/newbaby/admin/fileUpload/mp3file/0908291745304kzfoovwzbiy.mp3"/>  
      </entry><entry>  
      <ref href="http://192.168.13.201/newbaby/admin/fileUpload/mp3file/090829174530famf9aoxllg4.mp3"/>  
      </entry><entry>  
      <ref href="http://192.168.13.201/newbaby/admin/fileUpload/mp3file/090829094530i972v2it8zo2.mp3"/>  
      </entry><entry>  
      <ref href="http://192.168.13.201/newbaby/admin/fileUpload/mp3file/0908291744441sh9g2eshndl.mp3"/>  
      </entry><entry>  
      <ref href="http://192.168.13.201/newbaby/admin/fileUpload/mp3file/090829094444562psup4yxu9.mp3"/>  
      </entry></ASX>
    所以我觉得和这个应该没关系,查询已经得到结果了
      

  12.   

    既然最终echo的都是同一串东西,表现不一样应该是浏览器的兼容问题吧.
    lz是不是有些细节问题没有透露在问题里?
      

  13.   

    呵呵,没什么细节,其实我用的下面的代码调用音乐列表播放,不知道是不是这里的问题:<object id="PlayerEx2" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="320" height="217"> 
    <param name="autoStart" value="true" /> 
    <param name="URL" value="listmusic.php" /> 
    <embed autostart="true" src="listmusic.php" type="video/x-ms-wmv" width="320" height="217" controls="ImageWindow" console="cons"> </embed> 
    </object>
      

  14.   

    建议不要直接去listmusic.php页面测试,而是通过firebug看从listmusic.php GET到的返回值.
      

  15.   


    FF 的BUG,别考虑FF,普通用户还是用IE的多,FF就技术类的人用得多些
      

  16.   

    http://board.mozest.com/viewthread.php?tid=27236&extra=page%253D3
      

  17.   

    如果mp3_id是 integer 类型,获取的session数组使用前 先转型下
      

  18.   

    可能输出不一致.查看下 FF 下面的输出看看( fire bug).或者是否要考虑指定下输出的头.