▄◣急!问高手"php+mysql程序从win2000移植到linux下后出现的两个简单小错误",up也有分,分不够再加... 1,用户名,密码可能有错误2,php.ini中的mysql.allow_persistent 可能没有打开,所以用mysql_pconnect会出错,只有用mysql_connect. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ice_berg16(寻梦的稻草人) 说的对 ice_berg16(寻梦的稻草人) / lhzyn(lhzyn):数据库连接正确,因为可以判断用户和密码,并且能够进入查到并显示库中的数据.用户名和密码也都是正确的,而且还是在linux服务器上打开网页并提示错误的!是不是上面的tx.php代码有错误?请指教!!! $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"); ice_berg16(寻梦的稻草人) 如果用户名密码不正确,它不应该能登陆进去呀,它还可以判断用户名正确和错误的,但是登陆进去后框架右下页面right.php就提示错误1, 1、我建议你先做个简单的数据库连接的PHP试试,先保证数据库连接没问题,将问题分解2、如果hostname用名字而不是IP地址的话,请确保/etc/hosts中有说明(当然,如果你用其它的主机名解析方法除外)3、建议将用到的SQL语句输出来,copy到数据库中运行试试,保证SQL语句的正确性(你既然是在WINDOWS下用过的,应该不会出这样的问题:)) 先谢谢 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'); ?><?phpmysql_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 = "") ...... 而且所有的session值都正确,但是修改用户和密码及增加用户和单位的页中提示类似错误2的错误。 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在那里呢?是同一个吗? ice_berg16(寻梦的稻草人)本机de xuzuning(唠叨):是同一个,我直接将库拷到linux的mysql库目录下的 xuzuning(唠叨):先谢谢你库zbgl不能被来自www.sx.gov.cn的用户root打开,为什么?是什么原因造成的呢?但是从登陆界面通过用户名和密码是可以登陆进去的,而且可以判断用户名和密码是否正确! 先建立一个zbgl试试看,然后再覆盖呢? 请ice_berg16(寻梦的稻草人)xuzuning(唠叨):和其他高手帮帮我这个小弟吧!急死了...就剩这个问题就交工了... ▄◣login.php...<form method="POST" action="check.php" name="LoginForm">...用户名:<input type="text" name="username" size="15">...密 码:<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<?phpsession_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'); ?><?phpmysql_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"; 我不懂,连接数据库的程序怎么是分开的?一个是tx.php 一个是conn.php如果登录程序好使把tx.php换成conn.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(\"could not connect\"); ?> 将mysql_pconnect改成mysql_connect怎么样呢?你说数据库是从Win×下直接copy到Linux下的,应该注意一下数据库的读写权限是否要做必要的修改 @错误就在$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 9Accdss denied for user:'[email protected]'(using password:yes) anybody999(java&&delphi) :更不行了,连“\”都把报错,还有其他办法吗? ding 注意这个UP很关键哦!要不这贴就到第2页啦 conn.php是什么?贴出来还有,你说登录程序好使是在LINUX下还是WIN下? 登录程序好使是在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";?> 在其他页面都报tx.php中的$tx有错误, 哪位解决了再开一贴100分奖励!不够再开!直到你满意为止!如果有测试环境(linux/php/mysql)的话,可以将源代码和库发给你帮我在你的环境下测试解决一下,谢谢!!! 可能是win2000和linux下mysql共用一个端口的问题试试将mysql在linux重装一下 [email protected]发过来,我帮你看看 ice_berg16(寻梦的稻草人) :已经给你发过去了,麻烦帮我看一下,先谢谢你了 还没解决啊!!!要不把程序和库发给我,我帮你看看吧你是什么环境?数据库、WEB服务器都在一台机上吗? 呵呵 忘了[email protected] 数据库、WEB服务器都在一台机上!是在win2k下开发,移植到linux下出现这么多问题!▄◣right.php问题已经解决,是把用户名改成localhost即可。第二个问题照旧不行。现在又有新问题:▄◣为什么提示数据库的表是只读的?不能增加数据呢?seanchan() :已经给你发过去了。库zbgl在tx目录下。 各位:问题基本解决了,现在唯一的问题是:为什么提示数据库的表是只读的?不能增加更改数据呢?我的用户名是root 密码为空。是不是数据库的原因?数据库文件夹是从win2k下直接拷贝到linux库目录下的。▄◣解决后就结贴!!! 再帮我找一个错误:是哪里错了?很简单的!出现如下错误提示:在36行.....warning:move_uploaded_file(附件.ZIP)[function.move-uploaded-file]:failed to create stream:permission denied in / var /www/tx/load.php on line 36warning: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> $store_dir = "load/";// 上传文件的储存位置将这个目录的权限改一下,你现在是没有权限创建文件这个目录应该在你的web文件夹下面 如/var/www/htdocs/用root身份登录 输入如下命令cd var/www/htdocs/chmod 777 load ice_berg16(寻梦的稻草人):现在唯一的问题是:为什么不能增加或更改数据呢?提示数据库的表是只读的?我的用户名是root 密码为空。是不是数据库的原因?还是权限的问题?如何更改?数据库文件是从win2k下直接拷贝到linux库目录下的。************用cd var/www/htdocs/chmod 777 load这个命令是不是和直接点击右键更改文件夹可写属性一样的效果? PHP无法对父目录文件操作 discuz的模块模板的问题 关于用数组中的元素替换另一个数组 php 请问怎么实现这样的功能 RMB寻求PHP技术支持 专心求教,如何创建能显示中文/unicode的PDF文件 有关三元操作符 关于cookie的问题 一个关于日期的小问题,但很急!!! SOS!!!!!!!!SOS ::( PHP自动生成图象来验证你的登陆或者注册的方法………………谁会 请教! 求preg_match_all函数的用法
数据库连接正确,因为可以判断用户和密码,并且能够进入查到并显示库中的数据.用户名和密码也都是正确的,而且还是在linux服务器上打开网页并提示错误的!
是不是上面的tx.php代码有错误?请指教!!!
$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");
如果用户名密码不正确,它不应该能登陆进去呀,它还可以判断用户名正确和错误的,但是登陆进去后框架右下页面right.php就提示错误1,
2、如果hostname用名字而不是IP地址的话,请确保/etc/hosts中有说明(当然,如果你用其它的主机名解析方法除外)
3、建议将用到的SQL语句输出来,copy到数据库中运行试试,保证SQL语句的正确性(你既然是在WINDOWS下用过的,应该不会出这样的问题:))
我确信数据库连接肯定没有问题:只是登陆进去后框架的右下页面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 = "")
......
这个信息应理解为:
库zbgl不能被来自www.sx.gov.cn的用户root打开
既然你说在win2000开发在linux下运行,那么你的mysql在那里呢?是同一个吗?
本机de
是同一个,我直接将库拷到linux的mysql库目录下的
库zbgl不能被来自www.sx.gov.cn的用户root打开,为什么?是什么原因造成的呢?
但是从登陆界面通过用户名和密码是可以登陆进去的,而且可以判断用户名和密码是否正确!
ice_berg16(寻梦的稻草人)
xuzuning(唠叨):
和其他高手帮帮我这个小弟吧!急死了...就剩这个问题就交工了...
...
<form method="POST" action="check.php" name="LoginForm">
...
用户名:<input type="text" name="username" size="15">
...
密 码:<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";
一个是tx.php 一个是conn.php
如果登录程序好使把tx.php换成conn.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(\"could not connect\");
?>
你说数据库是从Win×下直接copy到Linux下的,应该注意一下数据库的读写权限是否要做必要的修改
$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)
还有,你说登录程序好使是在LINUX下还是WIN下?
▄◣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";
?>
试试将mysql在linux重装一下
发过来,我帮你看看
要不把程序和库发给我,我帮你看看吧
你是什么环境?数据库、WEB服务器都在一台机上吗?
[email protected]
是在win2k下开发,移植到linux下出现这么多问题!
▄◣right.php问题已经解决,是把用户名改成localhost即可。
第二个问题照旧不行。
现在又有新问题:
▄◣为什么提示数据库的表是只读的?不能增加数据呢?
seanchan() :
已经给你发过去了。库zbgl在tx目录下。
问题基本解决了,现在唯一的问题是:为什么提示数据库的表是只读的?不能增加更改数据呢?
我的用户名是root 密码为空。是不是数据库的原因?
数据库文件夹是从win2k下直接拷贝到linux库目录下的。▄◣解决后就结贴!!!
出现如下错误提示:在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>
将这个目录的权限改一下,你现在是没有权限创建文件
这个目录应该在你的web文件夹下面 如/var/www/htdocs/
用root身份登录 输入如下命令
cd var/www/htdocs/
chmod 777 load
现在唯一的问题是:为什么不能增加或更改数据呢?提示数据库的表是只读的?
我的用户名是root 密码为空。是不是数据库的原因?还是权限的问题?如何更改?
数据库文件是从win2k下直接拷贝到linux库目录下的。
************
用
cd var/www/htdocs/
chmod 777 load
这个命令是不是和直接点击右键更改文件夹可写属性一样的效果?