LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 997|回复: 3

关于PHP和论坛的架设

[复制链接]
发表于 2006-4-30 20:36:53 | 显示全部楼层 |阅读模式
我用的是debian,然后是按照http://www.lslnet.com/linux/docs/linux-3893.htm的文章配置了服务器(Apache+MySQL+PHP4)

但是在测试文章最后的PHP代码的时候出现了问题.
下边是测试代码.
[php]<?php

$dbname='mytest';
$tablename='user';
$page=0;
$rowperpage=20;

mysql_connect("localhost", "root", "您的密码");

//下面这个viewData函数,是自己编的,用来显示数据
//从某种程度上讲,本程序起关键作用的就这么一句:
viewData($dbname,$tablename,$page,$rowperpage);


////////////////////////////////////////////////
//
// 往下仅仅是定义了两个函数而已,你可以不去看他  ///
//
////////////////////////////////////////////////


//定义一个函数,用来返回查询状态
function echoQueryResult() {
global $queryStr, $errMsg;

if( $errMsg == "" ) $errMsg = "成功";
if( $queryStr != "" ) {
echo "<table cellpadding=5>\n";
echo "<tr><td>查询:</td><td>$queryStr</td></tr>\n";
echo "<tr><td>结果:</td><td>$errMsg</td></tr>\n";
echo "</table><p>\n";
}
}


//定义一个函数,用来显示数据
function viewData($dbname,$tablename,$page,$rowperpage) {
global $mysqlHandle, $PHP_SELF, $errMsg, $orderby;

echo "<h2>下面是您所查的数据:</h2>\n";

$queryStr = stripslashes( $queryStr );
if( $queryStr == "" ) {
$queryStr = "SELECT * FROM $tablename";
if( $orderby != "" )
$queryStr .= " ORDER BY $orderby";
}

$pResult = mysql_db_query( $dbname, $queryStr );
$errMsg = mysql_error();

$GLOBALS[queryStr] = $queryStr;

if( $pResult == false ) {
echoQueryResult();
return;
}
if( $pResult == 1 ) {
$errMsg = "成功";
echoQueryResult();
return;
}

echo "<hr>\n";

$row = mysql_num_rows( $pResult );
$col = mysql_num_fields( $pResult );

if( $row == 0 ) {
echo "没有数据!表格是空的。";
return;
}

if( $rowperpage == "" ) $rowperpage = 20;
if( $page == "" ) $page = 0;
else $page--;
mysql_data_seek( $pResult, $page * $rowperpage );

echo "<table cellspacing=1 cellpadding=2>\n";
echo "<tr>\n";
echo '<th bgcolor="#FFCC66">';
echo "用户名\n";
echo "</th>\n";
echo '<th bgcolor="#FFCC66">';
echo "口令\n";
echo "</th>\n";
echo '<th bgcolor="#FFCC66">';
echo "出生日期\n";
echo "</th>\n";
echo '<th bgcolor="#FFCC66">';
echo "是否激活\n";
echo "</th>\n";
echo "</tr>\n";


for( $i = 0; $i < $rowperpage; $i++ ) {
$rowArray = mysql_fetch_row( $pResult );
if( $rowArray == false ) break;
echo "<tr>\n";
$key = "";
for( $j = 0; $j < $col; $j++ ) {
$data = $rowArray[$j];

$field = mysql_fetch_field( $pResult, $j );
if( $field->primary_key == 1 )
$key .= "&" . $field->name . "=" . $data;

if( strlen( $data ) > 30 )
$data = substr( $data, 0, 30 ) . "...";
$data = htmlspecialchars( $data );
echo '<td bgcolor="#99CCCC">';
echo "$data\n";
echo "</td>\n";
}

echo "</tr>\n";
}
echo "</table>\n";
echo "<hr>";
//$PHP_SELF

echo "<font size=2>";
echo "<form action='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=$page&rowperpage=$rowperpage' method=post>";
echo "<font color=green>";
echo "第".($page+1)."页/共".(int)($row/$rowperpage+1)."页";
echo "</font>\n";
echo " | ";
if( $page > 0 ) {
echo "<a href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=".($page).'&rowperpage='.$rowperpage;
if( $orderby != "" )
echo "&orderby=$orderby";
echo "'>上一页</a>\n";
} else
echo "上一页";
echo " | ";
if( $page < ($row/$rowperpage)-1 ) {
echo "<a href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=".($page+2).'&rowperpage='.$rowperpage;
if( $orderby != "" )
echo "&orderby=$orderby";
echo "'>下一页</a>\n";
} else
echo "下一页";
echo " | ";
if( $row > $rowperpage ) {
echo "<input type=submit value='跳到第'>\n";
echo "<input type=text size=4 name=page>页";
}
echo "</form>";


echo "<form action='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=$page&rowperpage=$rowperpage' method=post>";
echo " 目前每页显示记录数为".$rowperpage."条,您可以";
echo "<input type=submit value='改为'>";
echo "<input type=text size=4 name=rowperpage>条/页";

echo "</form>\n";
echo "</font>\n";
}


?>[/php]
遇到如下问题(浏览器显示的文字):
Warning: Unknown(/var/www/mytest1.php): failed to open stream: Permission denied in Unknown on line 0



Warning: (null)(): Failed opening '/var/www/mytest1.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0

另外我还在这个机器上弄了一个Discuz!论坛,没成功
在执行install.php时候出现错误.在开始安装的时候浏览器显示如下提示:
Discuz! info: MySQL Query Error



Time: 2006-4-30 10:55am

Script:



SQL: CREATE TABLE cdb_access ( uid mediumint(8) unsigned NOT NULL default '0', fid smallint(6) unsigned NOT NULL default '0', allowview tinyint(1) NOT NULL default '0', allowpost tinyint(1) NOT NULL default '0', allowreply tinyint(1) NOT NULL default '0', allowgetattach tinyint(1) NOT NULL default '0', allowpostattach tinyint(1) NOT NULL default '0', PRIMARY KEY (uid,fid)) TYPE=MYISAM

Error: Can't create/write to file './mytest/cdb_access.frm' (Errcode: 13)

Errno.: 1



An error report has been dispatched to our administrator.

另外这个时候浏览我架设的论坛的index.php的时候出现如下提示:
Discuz! info: MySQL Query Error

Time: 2006-4-30 12:33pm
Script: /index.php

SQL: SELECT * FROM cdb_settings WHERE variable NOT IN ('bbrules', 'bbrulestxt', 'maxonlines', 'welcomemsg', 'welcomemsgtxt', 'newsletter', 'creditsnotify', 'custombackup')
Error: Can't find file: './mytest/cdb_settings.frm' (errno: 13)
Errno.: 1017

An error report has been dispatched to our administrator.

我感觉都是SQL配置的问题.但是我有不知道配置错在哪里或者如何解决.请大家帮帮忙吧.先谢谢了.
发表于 2006-4-30 21:27:42 | 显示全部楼层
'/var/www/mytest1.php'

这个文件,apche能读取么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-30 22:16:28 | 显示全部楼层
$ ls -l mytest1.php
-rwx------  1 root root 3728 2006-04-30 17:46 mytest1.php

谢谢大哥,我用了下边的命令就好了.
# chmod a+r mytest1.php
FreeBSD6:/var/www# ls -l mytest1.php
-rwxr--r--  1 root root 3728 2006-04-30 17:46 mytest1.php
谁来帮我解决架设论坛的问题?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-30 22:30:12 | 显示全部楼层
再次感谢终极幻想大哥.一句话让我茅塞顿开.
我想起来了,我曾经把数据库文件调整成为#chown root.root mytest/ 了.改回来论坛就行了.

大哥,我已经投了0008号 软件学院04研五票.(那个网站真慢啊.)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表