通过FTP往我在host.sk申请的空间里面传了我设计的PHP论坛,但每次打开的时候,第一个页面通过“<a href="message_list.php?pal=1&p=0">活动安排</a>”传入pal和p两个参数,但每次进入了message_list.php的页面后,却总是提示查询不到数据,利用var_dump($pal)调试后发现$pal的值始终是NULL,不过调试的时候在loacalhost里面执行时,却又能够获取传入的参数。有没有哪位用过这个空间的,是不是这个空间有问题?谢谢

解决方案 »

  1.   

    用post 试看看.代码有没写错?
      

  2.   

    代码没有错,在localhost里面运行很正常,用$_POST["pal"]也试过,传的参数到了新网页始终都是NULL
      

  3.   

    message_pal.php
    <? 
    session_start();include('func/db_conn.php');
    include('func/db_func.php'); $num=0;
    $row;
    $res;
    //var_dump($path);function selt($pal)
    {
    global $pal;
    global $num;
    global $res;
    global $row;
    //var_dump($pal);
    //$SQLStr="SELECT * FROM message WHERE m_pal=$pal AND path is NULL ORDER BY m_time DESC";
    $SQLStr="SELECT t1.*,t2.u_name FROM message t1,user t2 WHERE t1.m_pal=$pal AND t1.path is NULL AND t2.u_id=t1.u_id ORDER BY m_time DESC";
    //var_dump($SQLStr);
    $res=db_query($SQLStr);
    $num=db_num_rows($res);
    if($_SESSION['name']!="")
    {
    $user=$_SESSION['name'];
    echo "<script>"
    ."var us='".$user."';"
    // ."alert(us);"
    ."if(us!='')"
    ."{"
    ."var dl=document.getElementById('reg');"
    // ."dl.style.display='none';" //登录完成后隐藏注册链接
    ."dl.innerHTML='&nbsp;&nbsp;您好!'+us;" //修改超链接文本
    ."dl.href='func/func.php?check=friend&us='+us;"
    ."var d2=document.getElementById('log');"
    ."d2.innerHTML='&nbsp;&nbsp;退出';"
    ."d2.href='func/func.php?check=ex';"
    ."}";
    echo "</script>";
    //alert(dl.value);
    }
    } $allt=0;
    $allp=0;
    $alltoday=0;
    $alluser=0;
    function selalltitle()
    {

    global $allt;
    $SQLStr="SELECT * FROM message WHERE path IS NULL";
    $res=db_query($SQLStr);
    $allt=db_num_rows($res);
    //var_dump($allt);
    echo "<script>";
    echo "var at=document.getElementById('alltitle');";
    echo "at.innerHTML=".$allt;
    echo "</script>";
    }
    function selallpost()
    {
    global $allp;
    $SQLStr="SELECT * FROM message WHERE path IS NOT NULL";
    $res=db_query($SQLStr);
    $allp=db_num_rows($res);
    echo "<script>";
    echo "var ap=document.getElementById('allpost');";
    echo "ap.innerHTML=".$allp;
    echo "</script>";
    }
    function seltoday()
    {
    global $alltoday;
    $time=date("y-m-d");
    $SQLStr="SELECT * FROM message WHERE m_time LIKE '%".$time."%'";
    $res=db_query($SQLStr);
    $alltoday=db_num_rows($res);
    echo "<script>";
    echo "var atd=document.getElementById('alltoday');";
    echo "atd.innerHTML=".$alltoday;
    echo "</script>";
    }
    function seluser()
    {
    global $alluser;
    $SQLStr="SELECT * FROM user";
    $res=db_query($SQLStr);
    $alluser=db_num_rows($res);
    echo "<script>";
    echo "var au=document.getElementById('alluser');";
    echo "au.innerHTML=".$alluser;
    echo "</script>";
    }
    $rs;
    $rw;
    $rm;
    function selrw($pal,$id)
    {
    global $rs;
    global $rw;
    global $rm;
    $SQLStr="SELECT t1.*,t2.u_name FROM message t1,user t2 WHERE t1.m_pal=$pal AND t1.path=$id AND t2.u_id=t1.u_id ORDER BY m_time DESC";
    $rs=db_query($SQLStr);
    //var_dump($SQLStr);
    $rw=db_fetch_array($rs);
    $rm=db_num_rows($rs);
    //if($rw['u_id']=="" or $rw['u_id']=="NULL") $rm=db_num_rows($rs);
    //else $rm=0;
    //var_dump();
    return $rm;
    }
    function navigate($pal)
    {
    $nv="";
    if($pal==1) $nv="活动安排";
    if($pal==2) $nv="闲聊";
    if($pal==3) $nv="水吧";
    if($pal==4) $nv="站务";
    echo "<script>"
    ."var d=document.getElementById('navigate');"
    ."d.innerHTML=d.innerHTML+'->';"
    ."var e=document.createElement('<a>');"
    // ."alert('".$nv."');"
    ."e.innerHTML='".$nv."';"
    ."e.href='message_list.php?pal=".$pal."&p=0';"
    ."d.appendChild(e);"
    ."</script>";
    }
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <style type="text/css">
    <!--
    .STYLE2 {
    font-family: "宋体";
    font-size: 12px;
    font-weight: bold;
    }
    body {
    font-size:14px;
    height:auto;
    background-image: url(img/1366x768.jpg);
    }
    --></style>
    </head>
      

  4.   

    <body onload="bk()">
    <div align="center">
    <?include('up.html');?>
    <?navigate($pal);?>
    <script>
    function says()
    {
    var path=<?=$pal?>;
    location.href="message_post.php?pal="+path;
    }
    //根据传进来的版块代表值,判断显示的版块名称
    function bk()
    {
    var p="<?=$pal?>";
    var bk="";

    if(p==1) bk="活动安排";
    if(p==2) bk="闲聊";
    if(p==3) bk="水吧";
    if(p==4) bk="站务";
    var id=document.getElementById("pk");

    id.innerHTML="<font size='4' color='#FFFFFF'>"+bk+"</font>";
    }
    </script>   <table width="750" border="1" cellpadding="0" cellspacing="0" bordercolor="#8DC4E4">
            <tr>
              <td colspan="7" bordercolor="#FFFFFF" bgcolor="#6699FF"><div align="center" class="STYLE2">
                <div align="left">
                  <p align="right"><div align="left" id="pk"><font size='4' color='#FFFFFF'>活动安排</font></div>
                    <div align="right"><input type="submit" name="Submit" value="发布主题" onclick="says();" /></div>
                  </p>
                </div>
              </div>            <div align="right"></div></td>
            </tr>
            
            <tr>
              <td bordercolor="#8DC4E4">&nbsp;</td>
              <td bordercolor="#8DC4E4"><div align="center">标题</div></td>
              <td bordercolor="#8DC4E4"><div align="center">作者/时间</div></td>
              <td bordercolor="#8DC4E4"><div align="center">回复</div></td>
              <td bordercolor="#8DC4E4"><div align="center">查看</div></td>
              <td colspan="2" bordercolor="#8DC4E4"><div align="center">最后发表</div></td>
            </tr>
            <?
    selt($pal);
    if($num>0)
    {
    $check=$p+10;
    for($i=0;$i<$num;$i++)
    {
    $row=db_fetch_array($res);
    if($i>=$p && $i<$check)
    {
    echo "<tr>";
    echo "<td><img src='image/1.gif'/></td>";
    if(strlen($row['m_title'])>15)
    {
    echo "<td><a href='message_show.php?m_id=".$row['m_id']."&path=".$row['m_pal']."&p=0&id=".$row['m_id']."'>".substr($row['m_title'],0,10)."...</a></td>";
    }
    else echo "<td><a href='message_show.php?m_id=".$row['m_id']."& path=".$row['m_pal']."& p=0&id=".$row['m_id']."'>".$row['m_title']."</a></td>";

    echo "<td> ".$row['u_name']."/".$row['m_time']." </td>";
    echo "<td><label name='re'>".selrw($row['m_pal'],$row['m_id'])."</label></td>";
    echo "<td>".$row['m_clk']."</td>";
    echo "<td>".$rw['u_name']."/".$rw['m_time']."</td>";
    echo "</tr>";
    $j=$i+1;
    }
    }
    }
    ?>
      </table>
    <table width="750" border="0" align="center">
    <tr>
    <td align="center">
    <a href="message_list.php?p=0&pal=<?=$pal?>">第一页</a>
    </td>
    <td align="center">
    <?
    if($p>9)
    {
    $last=(floor($j/10)+10)-10;
    echo "<a href='message_list.php?p=$last&pal=$pal'>上一页</a>";
    }
    else
    echo "上一页";
    ?>
    </td>
    <td align="center">
    <?
    if($i>9 and $num>$check) //判断是否有下一页
    echo "<a href='message_list.php?p=$j&pal=$pal'>下一页</a>";
    else
    echo "下一页";
    ?>
    </td>
    <td align="center">
    <?
    if($i>9) //判断目前显示的条数之后是否还有页面
    {
    $final=floor($num/10)*10;
    echo "<a href='message_list.php?p=$final&pal=$pal'>最后一页</a>";
    }
    else
    echo "最后一页";
    ?>
    </td>
    </tr>
    </table>
      <p>&nbsp;</p>
    </div>
    </body>
    </html>
    <?include('down.html');?>
    <?selalltitle();?>
    <?selallpost();?>
    <?seltoday();?>
    <?seluser();?>
      

  5.   

    写错哒,上面的应该是message_list.php的代码,下面是message_pal.php
    <?
    session_start();
    $user=$_SESSION['name']; function dlu()
    {
    global $user;
    //var_dump($user);
    echo "<script>"
    ."var us='".$user."';"
    ."if(us!='')"
    ."{"
    ."var dl=document.getElementById('reg');"
    // ."dl.style.display='none';" //登录完成后隐藏注册链接
    ."dl.innerHTML='&nbsp;&nbsp;您好!'+us;" //修改超链接文本
    ."dl.href='func/func.php?check=friend&us='+us;"
    ."var d2=document.getElementById('log');"
    ."d2.innerHTML='&nbsp;&nbsp;退出';"
    ."d2.href='func/func.php?check=ex';"
    ."}";
    echo "</script>";
    //alert(dl.value);
    }?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <style type="text/css">
    <!--
    .STYLE1 {font-size: 10px}
    .STYLE2 {font-size: 14px; }
    .STYLE3 {font-size: 16px; }
    .STYLE4 {
    font-size: 16px;
    color: #33FF00;
    font-weight: bold;
    }
    .STYLE5 {font-size: 16px; font-weight: bold; }
    body {
    font-size:14px;
    height:auto;
    background-image: url(img/1366x768.jpg); 
    }
    -->
    </style>
    </head>
    <?
    include('func/db_conn.php');
    include('func/db_func.php');

    function seltitle($nm)
    {
    $SQLStr="SELECT * FROM message WHERE m_pal=".$nm ." AND path IS NULL";
    $res=db_query($SQLStr);
    $row=db_num_rows($res);
    echo $row;
    }
    function selpost($p)
    {
    $SQLStr="SELECT * FROM message WHERE m_pal=".$p." AND path IS NOT NULL";
    $res=db_query($SQLStr);
    $row=db_num_rows($res);
    echo $row;
    }
    function todaypost($p)
    {
    $time=date("y-m-d");
    $SQLStr="SELECT * FROM message WHERE m_pal=".$p." AND m_time like '%".$time."%'";
    $res=db_query($SQLStr);
    $row=db_num_rows($res);
    echo $row;
    }
    function lastpost($p)
    {
    try
    {
    $SQLStr="SELECT t1.*,t2.u_name FROM message t1,user t2 WHERE t1.m_pal=".$p." AND t1.u_id=t2.u_id ORDER BY m_time DESC";
    $res=db_query($SQLStr);
    $row=db_fetch_array($res);
    if($row['u_name']!="" or $row['u_name']=="NULL") 
    {
    db_data_seek($res,0);
    echo $row['u_name']."/".$row['m_time'];
    }
    else
    {
    echo "—/—";
    }
    }
    catch(Exception $e)
    {
    echo "——";
    }
    }
    $allt=0;
    $allp=0;
    $alltoday=0;
    $alluser=0;
    function selalltitle()
    {

    global $allt;
    $SQLStr="SELECT * FROM message WHERE path IS NULL";
    $res=db_query($SQLStr);
    $allt=db_num_rows($res);
    //var_dump($allt);
    echo "<script>";
    echo "var at=document.getElementById('alltitle');";
    echo "at.innerHTML=".$allt;
    echo "</script>";
    }
    function selallpost()
    {
    global $allp;
    $SQLStr="SELECT * FROM message WHERE path IS NOT NULL";
    $res=db_query($SQLStr);
    $allp=db_num_rows($res);
    echo "<script>";
    echo "var ap=document.getElementById('allpost');";
    echo "ap.innerHTML=".$allp;
    echo "</script>";
    }
    function seltoday()
    {
    global $alltoday;
    $time=date("y-m-d");
    $SQLStr="SELECT * FROM message WHERE m_time LIKE '%".$time."%'";
    $res=db_query($SQLStr);
    $alltoday=db_num_rows($res);
    echo "<script>";
    echo "var atd=document.getElementById('alltoday');";
    echo "atd.innerHTML=".$alltoday;
    echo "</script>";
    }
    function seluser()
    {
    global $alluser;
    $SQLStr="SELECT * FROM user";
    $res=db_query($SQLStr);
    $alluser=db_num_rows($res);
    echo "<script>";
    echo "var au=document.getElementById('alluser');";
    echo "au.innerHTML=".$alluser;
    echo "</script>";
    }
    function selbz($bk)
    {
    global $name;
    $SQLStr="SELECT u_name FROM user WHERE pal=".$bk;
    $res=db_query($SQLStr);
    $row=db_fetch_array($res);
    // var_dump($row['u_name']);
    echo $row['u_name'];
    }
    ?>
    <script language="javascript" src="js/jquery.js"></script>
    <script>
    function afterlog()
    { var user="<?=$user?>";
    // alert(2);
    // alert(user);

    if(user!="")
    {
    // alert(3);
    $(document).ready(function(){
      $("#body").load(function(){ alert(4); })
    });
    }

    }
    //判断是否登录成功
    function log(rs_log)
    {
    // alert(rs_log);
    if(rs_log=="1")
    {
    // var dl=document.getElementById("log");
    // dl.innerHTML="您好! "+"<?=$user?>"; //修改超链接文本
    // dl.disabled="true";
    // dl.readonly="true";
    // var d2=document.getElementById("reg");
    // d2.style.display="none"; //登录完成后隐藏注册链接
    // alert(dl.value);
    // afterlog();
    }
    }
    </script>
      

  6.   

    好多...好可怕你在message_list.php是如何接受传递过来的$pal 的?把这个代码发一下 嘿嘿
      

  7.   

    selt($pal); function selt($pal)
    {
    global $pal;
    global $num;
    global $res;
    global $row;
    //var_dump($pal);            //每当用这个在空间里面调试的时候,就直接显示NULL,但在localhost下面又是正常的
    //$SQLStr="SELECT * FROM message WHERE m_pal=$pal AND path is NULL ORDER BY m_time DESC";
    $SQLStr="SELECT t1.*,t2.u_name FROM message t1,user t2 WHERE t1.m_pal=$pal AND t1.path is NULL AND t2.u_id=t1.u_id ORDER BY m_time DESC";
    //var_dump($SQLStr);
    $res=db_query($SQLStr);
    $num=db_num_rows($res);
    if($_SESSION['name']!="")

    $user=$_SESSION['name'];
    echo "<script>"
    ."var us='".$user."';"
    // ."alert(us);"
    ."if(us!='')"
    ."{"
    ."var dl=document.getElementById('reg');"
    // ."dl.style.display='none';" //登录完成后隐藏注册链接
    ."dl.innerHTML='&nbsp;&nbsp;您好!'+us;" //修改超链接文本
    ."dl.href='func/func.php?check=friend&us='+us;"
    ."var d2=document.getElementById('log');"
    ."d2.innerHTML='&nbsp;&nbsp;退出';"
    ."d2.href='func/func.php?check=ex';"
    ."}";
    echo "</script>";
    //alert(dl.value);
    }
    }
      

  8.   

    你的$pal不是 get 过来的么? 在这里 global 有作用?
      

  9.   

    喔,因为刚开始接收为空以为是没加这一句,不过注释这一句也试过,照样接收的值为NULL
      

  10.   


    get 过来的话 你不用$pal=$_GET['pal']; 来接受参数么?
      

  11.   


    get 过来的话 你不用$pal=$_GET['pal']; 来接受参数么?这样做果然就好了,谢谢,不过为什么在localhost下面又能直接取到值。顺便请教一下host的空间是不是不支持中文,我的数据库里面有几个用户名是中文的,但导入到host的数据库里面就变成乱码了?
      

  12.   


    你在localhost 能取到值可能跟你之前的global 有关系吧.或者是php.ini里打开了全局变量啥的参数.而服务器关闭了。
    关于乱码 多数都是编码问题 不是不支持中文. 看下自己的数据库是什么编码的 将 数据库 文件 输出 都弄成一致的编码即可. 例如都是utf-8.
      

  13.   

    这个问题倒是弄清楚了,不过还想请教一下,我有个注册用户的方法function reg($name,$pass,$email,$pass2,$touxiang,$file)
    {
    global $unm;
    //var_dump($name);
    $user=$name;
    $ps=$pass;
    $mail=$email;
    $unm=$name;
    $time=date("y-m-d g:i:s");
    global $message;
    //var_dump($user); $SQLStr="SELECT * FROM user WHERE u_name='".$user."'";
    $res=db_query($SQLStr);
    //var_dump(db_num_rows($res));
    $ys=false;
    db_num_rows($res)>0?$ys=true:$ys=false;

    if($ys)
    {
    $message="此用户名已经使用";
    }
    else
    {
    if($ps!=$pass2)
    {
    $message="两次输入密码不一致!";

    }
    else
    {
    //var_dump($name);
    //var_dump($user);
    $SQLStr="INSERT INTO user(u_name, u_pass,u_mail,u_permission,u_day,u_img,u_qianming) "
    ."VALUES('$user','$pass','$email','2','$time','$touxiang','$file')";
    //var_dump($SQLStr);
    db_query($SQLStr);
    $message="添加用户成功!";
    //var_dump($message);
    }
    }
    return $ys;}在这里func.php中调用
    if($check==reg)
    {
    // var_dump($file);
    $name2=$_POST['name2'];
    $pass=$_POST['pass'];
    $pass2=$_POST['pass2'];
    $email=$_POST['email'];
    $src=$_POST['src'];
    $file=$_POST['file'];
    reg($name2,$pass,$email,$pass2,$src,$file);
    if($message=="添加用户成功!")
    {
    //var_dump($unm);
    $_SESSION['name']=$unm;
    $SQLStr="SELECT * FROM user WHERE u_name='".$unm."'";
    $res=db_query($SQLStr);
    $row=db_fetch_array($res);
    $_SESSION['u_id']=$row['u_id'];
    //reg($name,$pass,$email,$pass2,$headimg);
    $rs_log="1";
    }
    }
    但很奇怪,方法reg中,获得的$SQLStr的数据库命令,但每次执行完后,在数据库里面查看,每次都只添加了u_id,u_pass,u_permission这几个字段,而别的字段就全部为空,用var_dump测试时,$user,$pass,$email,$time,$touxiang,$file明明都有值,后来直接复制用var_dump($SQLStr)显示的SQL字符串到host.sk的phpMyAdmin里面却又能正常执行,请问这种情况究竟是什么原故导致的?
      

  14.   

    輸出 SQLStr 來看看再說. 另外將數據表的結構發一下。
      

  15.   

    试了几次,问题找到了,当输入的内容为英文的时候,可以正常加入数据库,如果为中文,执行完后,数据库就为空白
    MYSQL表 user
     1  u_id int(11)                             否 无 AUTO_INCREMENT
     2  u_name varchar(100)     utf8_general_ci  否 无 
     3  u_pass varchar(100)     utf8_general_ci  否 无 
     4  u_mail varchar(100)     utf8_general_ci  否 无 
     5  u_permission int(10)                     否 无 
     6  u_day datetime                           是 NULL
     7  u_posts int(11)                          是 NULL
     8  u_says int(11)                           是 NULL
     9  u_img varchar(500)      utf8_general_ci  是 NULL
     10 u_qianming varchar(200) utf8_general_ci  是 NULL
     11 pal int(11)                              否 无 
    var_dump($SQLStr)结果:
    string(233) "INSERT INTO user(u_name, u_pass,u_mail,u_permission,u_day,u_img,u_qianming) VALUES('张三','123456','[email protected]','2','11-12-31 6:34:00','','http://www.foshanit.com/uploadfile/msn-picture/uploadpics/200710/thumb_20071026035447322.gif')" u_name如果为中文,执行完后数据库里头就直接是空白,英文就是正常的,我在localhost里面也是正常的,是不是也需要改php.ini?
      

  16.   

    编码问题 在插入数据前mysql_query('SET NAMES UTF8');添加在数据库链接部分里吧
    include('func/db_conn.php');
      

  17.   

    这一步我已经做了,也不行,我是直接把这一句放在db_conn.php里面 $conn=mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASSWORD);
    mysql_query("SET NAMES 'UTF8'");
    mysql_query("SET CHARACTER SET 'UTF8'");
    mysql_query("SET CHARACTER_SET_RESULTS='UTF8'");