1,用户名,密码可能有错误
2,php.ini中的mysql.allow_persistent 可能没有打开,所以用mysql_pconnect会出错,只有用mysql_connect.

解决方案 »

  1.   

    ice_berg16(寻梦的稻草人) 说的对
      

  2.   

    ice_berg16(寻梦的稻草人) / lhzyn(lhzyn):
    数据库连接正确,因为可以判断用户和密码,并且能够进入查到并显示库中的数据.用户名和密码也都是正确的,而且还是在linux服务器上打开网页并提示错误的!
    是不是上面的tx.php代码有错误?请指教!!!
      

  3.   

    $hostname_tx = "li";
    $database_tx = "zbgl";
    $username_tx = "root";
    $password_tx = "root";
    $tx = mysql_pconnect($hostname_tx, $username_tx, $password_tx) or die(mysql_error()); 你这个程序有没有问题?
    改成下面的试试
    $tx = mysql_connect("li", "root", "root") or die(mysql_error()); 
    mysql_select_db("zbgl");
      

  4.   

    ice_berg16(寻梦的稻草人) 
    如果用户名密码不正确,它不应该能登陆进去呀,它还可以判断用户名正确和错误的,但是登陆进去后框架右下页面right.php就提示错误1,
      

  5.   

    1、我建议你先做个简单的数据库连接的PHP试试,先保证数据库连接没问题,将问题分解
    2、如果hostname用名字而不是IP地址的话,请确保/etc/hosts中有说明(当然,如果你用其它的主机名解析方法除外)
    3、建议将用到的SQL语句输出来,copy到数据库中运行试试,保证SQL语句的正确性(你既然是在WINDOWS下用过的,应该不会出这样的问题:))
      

  6.   

    先谢谢 ice_berg16(寻梦的稻草人)和seanchan():
    我确信数据库连接肯定没有问题:只是登陆进去后框架的右下页面right.php就提示错误1。
    right.php代码如下:
    <?php session_start();?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>信息上报</title>
    </head><body bgcolor="#FFeab5">
    <?php require_once('Connections/tx.php'); ?>
    <?php
    mysql_select_db($database_tx, $tx);
    $query_bjr = "SELECT zb_bjr FROM bjr";
    $bjr = mysql_query($query_bjr, $tx) or die(mysql_error());
    $row_bjr = mysql_fetch_assoc($bjr);
    $totalRows_bjr = mysql_num_rows($bjr);mysql_select_db($database_tx, $tx);
    $query_jfr = "SELECT zb_jfr FROM jfr";
    $jfr = mysql_query($query_jfr, $tx) or die(mysql_error());
    $row_jfr = mysql_fetch_assoc($jfr);
    $totalRows_jfr = mysql_num_rows($jfr);mysql_select_db($database_tx, $tx);
    $query_mj = "SELECT zb_mj FROM mj";
    $mj = mysql_query($query_mj, $tx) or die(mysql_error());
    $row_mj = mysql_fetch_assoc($mj);
    $totalRows_mj = mysql_num_rows($mj);function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    ......
      

  7.   

    而且所有的session值都正确,但是修改用户和密码及增加用户和单位的页中提示类似错误2的错误。
      

  8.   

    warning: mysql_pconnect() [fanction.mysql.pconnect]:Access denied for user:'[email protected]'(using password:yes) in/var/www/tx/connection/tx.php on line 9
    这个信息应理解为:
    库zbgl不能被来自www.sx.gov.cn的用户root打开
    既然你说在win2000开发在linux下运行,那么你的mysql在那里呢?是同一个吗?
      

  9.   

    ice_berg16(寻梦的稻草人)
    本机de
      

  10.   

    xuzuning(唠叨):
    是同一个,我直接将库拷到linux的mysql库目录下的
      

  11.   

    xuzuning(唠叨):先谢谢你
    库zbgl不能被来自www.sx.gov.cn的用户root打开,为什么?是什么原因造成的呢?
    但是从登陆界面通过用户名和密码是可以登陆进去的,而且可以判断用户名和密码是否正确!
      

  12.   

    先建立一个zbgl试试看,然后再覆盖呢?
      

  13.   


    ice_berg16(寻梦的稻草人)
    xuzuning(唠叨):
    和其他高手帮帮我这个小弟吧!急死了...就剩这个问题就交工了...
      

  14.   

    ▄◣login.php
    ...
    <form method="POST" action="check.php" name="LoginForm">
    ...
    用户名:<input type="text" name="username" size="15">
    ...
    密&nbsp;&nbsp;码:<input type="password" name="password" size="15">
    ...
    <td vAlign=bottom width="100%" <div align="right"><input name="image" type=image src="image/dl.gif" width="59" height="23"></div></td>   //登陆图片
    ...
    ▄◣check.php
    <?php
    session_start();
     if($_POST[username]=="") 
          { 
       echo "<script language=javascript>alert('请输入用户名');history.go(-1)</script>";
          ...
       echo "<script language=javascript>alert('请输入密码');history.go(-1)</script>";
          exit; 
          } 
       else 
          { 
      include ("include/conn.php");           //▄◣conn.php为连接数据库文件
          $result=$DB->query("select zb_userid,zb_user,zb_password,zb_unit from user
                  where zb_user='$_POST[username]'",$dbbase); 
          if($result) 
              { 
      session_register ("unit");
      $name=$member[zb_user];
      ....
             $member[zb_userid]=$row[0];
      global $name;   
              if($member[zb_password]!=$_POST[password]) 
                  { 
       echo "<script language=javascript>alert('用户和密码错误');history.go(-1)</script>";
                  exit; 
                  } 
              else 
                  ...
       echo "<script language=javascript>alert('无此用户');history.go(-1)</script>";
              exit; 
              } 
        }
    ?>▄tx.php文件代码:
    <?php
    # FileName="Connection_php_mysql.htm"
    # Type="MYSQL"
    # HTTP="true"
    $hostname_tx = "li";
    $database_tx = "zbgl";
    $username_tx = "root";
    $password_tx = "root";
    $tx = mysql_pconnect($hostname_tx, $username_tx, $password_tx) or die(mysql_error());  //line 9
    ?>
    ▄◣right.php 部分代码    为登陆进去的右下框架页,即出错1页面
    <?php session_start();?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>信息上报</title>
    </head><body bgcolor="#FFeab5">
    <?php require_once('Connections/tx.php'); ?>
    <?php
    mysql_select_db($database_tx, $tx);
    $query_bjr = "SELECT zb_bjr FROM bjr";
    $bjr = mysql_query($query_bjr, $tx) or die(mysql_error());
    $row_bjr = mysql_fetch_assoc($bjr);
    $totalRows_bjr = mysql_num_rows($bjr);mysql_select_db($database_tx, $tx);
    $query_jfr = "SELECT zb_jfr FROM jfr";
    $jfr = mysql_query($query_jfr, $tx) or die(mysql_error());
    $row_jfr = mysql_fetch_assoc($jfr);
    $totalRows_jfr = mysql_num_rows($jfr);mysql_select_db($database_tx, $tx);
    $query_mj = "SELECT zb_mj FROM mj";
    $mj = mysql_query($query_mj, $tx) or die(mysql_error());
    $row_mj = mysql_fetch_assoc($mj);
    $totalRows_mj = mysql_num_rows($mj);function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;  switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      

  15.   

    我不懂,连接数据库的程序怎么是分开的?
    一个是tx.php 一个是conn.php
    如果登录程序好使把tx.php换成conn.php试试
      

  16.   


    试试:<?php
    # FileName="Connection_php_mysql.htm"
    # Type="MYSQL"
    # HTTP="true"
    $hostname_tx = \"li\";
    $database_tx = \"zbgl\";
    $username_tx = \"root\";
    $password_tx = \"root\";
    $tx = mysql_pconnect($hostname_tx, $username_tx, $password_tx) or die(\"could  not connect\");  
    ?>
      

  17.   

    将mysql_pconnect改成mysql_connect怎么样呢?
    你说数据库是从Win×下直接copy到Linux下的,应该注意一下数据库的读写权限是否要做必要的修改
      

  18.   

    @错误就在
    $tx = mysql_pconnect($hostname_tx, $username_tx, $password_tx) or die(mysql_error());  这一句上
    @为什么改成
    $tx = mysql_pconnect("www.sx.gov.cn", "root", "root") or die(mysql_error());  
    还是不行?
    @老是提示$tx 有错误,不能被www.sx.gov.cn的用户打开!
    warning: mysql_pconnect() [fanction.mysql.pconnect]:Access denied for user:'[email protected]'(using password:yes) in/var/www/tx/connection/tx.php on line 9
    Accdss denied for user:'[email protected]'(using password:yes)
      

  19.   

    anybody999(java&&delphi) :更不行了,连“\”都把报错,还有其他办法吗?
      

  20.   

    ding  注意这个UP很关键哦!要不这贴就到第2页啦
      

  21.   

    conn.php是什么?贴出来
    还有,你说登录程序好使是在LINUX下还是WIN下?
      

  22.   

    登录程序好使是在LINUX下,里面的部分数据还可以从库中提出来,但是就是有的页面比如right.php出现错误1,修改密码页面及其它添加用户/单位等页面上出现第二个错误。
    ▄◣conn.php在check.php中用到的
    <?php
    //MYSQL数据库系统信息
    // mysql连接类
    // $DB=new DB_MYSQL;            // 加载类
    // $DB->dbServer="localhost";   // 连接数据库地址
    // $DB->dbUser="snuo";          // 用户名
    // $DB->dbPwd="zlb99ok";               // 密码
    // $DB->dbDatabase="zbgl";        // 数据库名称
    // $DB->connect();             // 连接数据库
    // 使用中可以更改数据库
    // 可以用到的函数说明
    // query($sql,$dbbase);         // 可以直接执行
    // query_first($sql,$dbbase);   // 查询返回只有一条记录,$sql为sql语句,$dbbase为你选者数据库(可以不要)
    // insert,update,delete 皆为执行命令,其中可用$affected_rows;得到返回的数目
    // 在insert时,可以用insert_id得到插入结果的返回id数
    // count_records($table,$index,$where,$dbbase)// 为得到一个表记录的数目,$table为表名,$index为key,$where为条件,$dbbase为数据库,后两个可以不选
    $database_tx = "zbgl";
    $tx = mysql_pconnect("li", "root", "") or die(mysql_error());
    //####################### End Introduce ########################################class DB_MYSQL          // 数据库mysql查询的类
    {
      var $dbServer;        // 数据库连接服务地址
      var $dbDatabase;      // 所选择的数据库,初始状态
      var $dbbase="zbgl";       // 后面可以改变的
      var $dbUser;          // 登陆用户名
      var $dbPwd;           // 登陆用户密码
      var $dbLink;          // 数据库连接指针
      var $query_id;        // 执行query命令的指针
      var $num_rows;        // 返回的条目数
      var $insert_id;       // 传回最后一次使用 INSERT 指令的 ID
      var $affected_rows;   // 传回query命令所影响的列数目
                      // INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。
                      // delete 如果不带where,那么则返回0  function connect($dbbase="zbgl")    // 连接数据库函数,包括连接数据库
            {
             global $usepconnect;   // 是否采用永久连接,$userpconnect在外部设置。
             if ($usepconnect==1){
                    $this->dbLink=@mysql_pconnect($this->dbServer,$this->dbUser,$this->dbPwd);
                                  } else {
                    $this->dbLink=@mysql_connect($this->dbServer,$this->dbUser,$this->dbPwd);
                    }
              if(!$this->dbLink) $this->halt("连接出错,无法连接!!!");
              if ($dbbase=="zbgl") {
                $dbbase=$this->dbDatabase;
                }
            if(!mysql_select_db($dbbase, $this->dbLink))  // 连接数据库
                              { $this->halt("不能够用这个数据库,请检查这个数据库是否正确!!!");}
              }  function change_db($dbbase="zbgl"){ // 改变数据库
          $this->connect($dbbase);
          }  function query_first($sql,$dbbase="zbgl"){ // 返回一个值的sql命令
          $query_id=$this->query($sql,$dbbase);
            $returnarray=mysql_fetch_array($query_id);
            $this->num_rows=mysql_num_rows($query_id);
          $this->free_result($query_id);
          return $returnarray;
          }  function delete($sql,$dbbase="zbgl"){ // 删除命令
          $query_id=$this->query($sql,$dbbase);
          $this->affected_rows=mysql_affected_rows($this->dbLink);
          $this->free_result($query_id);
            }  function insert($sql,$dbbase="zbgl"){ // 插入命令
          $query_id=$this->query($sql,$dbbase);
          $this->insert_id=mysql_insert_id($this->dbLink);
          $this->affected_rows=mysql_affected_rows($this->dbLink);
          $this->free_result($query_id);
            }  function update($sql,$dbbase="zbgl"){  //  更新命令
          $query_id=$this->query($sql,$dbbase);
          $this->affected_rows=mysql_affected_rows($this->dbLink);
          $this->free_result($query_id);
          }  function count_records($table,$index="id",$where="",$dbbase="zbgl"){ // 记录总共表的数目
                                                       // where为条件
                                                       // dbbase为数据库
                                                       // index为所选key,默认为id
            if($dbbase!="") $this->change_db($dbbase);
            $result=@mysql_query("select count(".$index.") as 'num' from $table ".$where,$this->dbLink);
            if(!$result) $this->halt("错误的SQL语句: ".$sql);
            @$num = mysql_result($result,0,"num");
            return $num;
          }  function query($sql,$dbbase="zbgl"){   // 执行queyr指令
          if($dbbase!="") $this->change_db($dbbase);
        $this->query_id=@mysql_query($sql,$this->dbLink);
        if(!$this->query_id) $this->halt("错误的SQL语句: ".$sql);
        return $this->query_id;
          }  function halt($errmsg)  // 数据库出错,无法连接成功
            {
                $msg="<h3><b>数据库出错!</b></h3><br>";
                $msg.=$errmsg;
                echo $msg;
                die();
          }  function free_result($query_id)  // 释放query选者
            {
            @mysql_free_result($query_id);
            }  function close()        //关闭数据库连接
            {
          mysql_close($this->dbLink);
            }
    }$DB=new DB_MYSQL;
    $DB->dbServer="localhost";
    $DB->dbUser="root";
    $DB->dbPwd="";
    $DB->dbDatabase="zbgl";
    $dbbase="zbgl";
    ?>
      

  23.   

    在其他页面都报tx.php中的$tx有错误,
      

  24.   

    哪位解决了再开一贴100分奖励!不够再开!直到你满意为止!如果有测试环境(linux/php/mysql)的话,可以将源代码和库发给你帮我在你的环境下测试解决一下,谢谢!!!
      

  25.   

    可能是win2000和linux下mysql共用一个端口的问题
    试试将mysql在linux重装一下
      

  26.   

    [email protected]
    发过来,我帮你看看
      

  27.   

    ice_berg16(寻梦的稻草人) :已经给你发过去了,麻烦帮我看一下,先谢谢你了
      

  28.   

    还没解决啊!!!
    要不把程序和库发给我,我帮你看看吧
    你是什么环境?数据库、WEB服务器都在一台机上吗?
      

  29.   

    呵呵 忘了
    [email protected]
      

  30.   

    数据库、WEB服务器都在一台机上!
    是在win2k下开发,移植到linux下出现这么多问题!
    ▄◣right.php问题已经解决,是把用户名改成localhost即可。
    第二个问题照旧不行。
    现在又有新问题:
    ▄◣为什么提示数据库的表是只读的?不能增加数据呢?
    seanchan() :
    已经给你发过去了。库zbgl在tx目录下。
      

  31.   

    各位:
    问题基本解决了,现在唯一的问题是:为什么提示数据库的表是只读的?不能增加更改数据呢?
    我的用户名是root 密码为空。是不是数据库的原因?
    数据库文件夹是从win2k下直接拷贝到linux库目录下的。▄◣解决后就结贴!!!
      

  32.   

    再帮我找一个错误:是哪里错了?很简单的!
    出现如下错误提示:在36行
    .....
    warning:move_uploaded_file(附件.ZIP)[function.move-uploaded-file]:failed to create stream:permission denied in / var /www/tx/load.php on line 36
    warning:move_uploaded_file()[function.move-uploaded-file]:unable to move '/tmp/php8syux9' to '附件.ZIP'in /var /www/tx/load.php on line 36
    .....
    ▄◣load.php
    <?php session_start();?>
    <html><head>
    <title>上载文件表单</title></head> 
    <body> 
    <form enctype="multipart/form-data" action="" method="post"> 
    请选择文件: <br>
    <input name="upload_file" type="file"><br>
    <input type="submit" value="上传文件">
      <input type="button" name="Submit" value="关闭窗口" onClick="window.close()">
    </form> 
    </body>
    </html> <?php
    $upload_file=$_FILES['upload_file']['tmp_name'];
    $upload_file_name=$_FILES['upload_file']['name'];if($upload_file){
    $file_size_max = 1000*1000*1000;// 1M限制文件上传最大容量(bytes)
    $store_dir = "load/";// 上传文件的储存位置
    $accept_overwrite = 0;//是否允许覆盖相同文件
    // 检查文件大小
    if ($upload_file_size > $file_size_max) {
    echo "对不起,你的文件容量大于规定";
    exit;
    }// 检查读写文件
    if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {
       echo "<script language=javascript>alert('存在相同文件名的文件');history.go(-1)</script>";
    //Echo   "存在相同文件名的文件";
    exit;
    }//复制文件到指定目录
    if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) { //▄◣第36行
    echo "复制文件失败";
    exit;
    }}
    $V=$_FILES['upload_file']['name'];
    Session_Register("V");//
    //Echo $_SESSION["V"];Echo   "<p>你上传了文件:";
    Echo $_SESSION["V"];
    global $fj;
    $fj=$_SESSION["V"];
    echo "<br>";
    //客户端机器文件的原名称。 Echo   "文件的 MIME 类型为:";
    echo $_FILES['upload_file']['type'];
    //文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。 
    echo "<br>";Echo   "上传文件大小:";
    echo $_FILES['upload_file']['size'];
    //已上传文件的大小,单位为字节。 
    echo "<br>";
    //echo "<script language=javascript>alert('上传成功!');location.href='ADDUNIT.php'</script>";
    //Echo   "文件上传后被临时储存为:";
    //echo $_FILES['upload_file']['tmp_name'];
    //文件被上传后在服务端储存的临时文件名。 
    //echo "<br>";
    $Erroe=$_FILES['upload_file']['error'];
    switch($Erroe){
            case 0:
                Echo   "上传成功"; break;
            case 1:
                Echo   "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值."; break;
            case 2:
                Echo   "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。";    break;
            case 3:
                Echo   "文件只有部分被上传";break;
            case 4:
                Echo   "没有文件被上传";break;
    }?>
    <script language="javascript">  
    opener.document.forms["form1"].elements["zb_fj"].value = "<?php echo $fj?>";
    </SCRIPT>
      

  33.   

    $store_dir = "load/";// 上传文件的储存位置
    将这个目录的权限改一下,你现在是没有权限创建文件
    这个目录应该在你的web文件夹下面 如/var/www/htdocs/
    用root身份登录 输入如下命令
    cd var/www/htdocs/
    chmod 777 load
      

  34.   

    ice_berg16(寻梦的稻草人):
    现在唯一的问题是:为什么不能增加或更改数据呢?提示数据库的表是只读的?
    我的用户名是root 密码为空。是不是数据库的原因?还是权限的问题?如何更改?
    数据库文件是从win2k下直接拷贝到linux库目录下的。
    ************

    cd var/www/htdocs/
    chmod 777 load
    这个命令是不是和直接点击右键更改文件夹可写属性一样的效果?