主题:  请教win2000+IIS+PHP4.2.2+MYSQL

ylx

职务:普通成员
等级:1
金币:0.0
发贴:12
注册:2002/6/23 17:50:16
#12002/9/24 15:06:25
我的系统是这样装的:Win2000+IIS5.0+php4.2.2+mysql3.51,运行一般的php程序没有问题,由于我是个新手,只能用Dreamweaver MX来编一些PHP程序,它有一个插件phakt-2_0_60.mxp可以建立PHP模式的用户登录系统,不过在我的系统上无法运行,但在Apace+php+mysql中可以(我试验过),对此我多次研究了php.ini文件,总也发现不了问题,十分烦恼。
下面是Dreamweaver MX生成的用户登录代码:

login on 页面:



// *** Start the session
session_start();
// *** Validate request to log in to this site.
$KT_LoginAction = $HTTP_SERVER_VARS["REQUEST_URI"];
if (isset($HTTP_POST_VARS["name"])) {
$KT_valUsername = $HTTP_POST_VARS['name'];
$KT_fldUserAuthorization = "level";
$KT_redirectLoginSuccess = "member/welcome.php";
$KT_redirectLoginFailed = "index.php";
$KT_rsUser_Source = "SELECT name, password ";
if ($KT_fldUserAuthorization != "") $KT_rsUser_Source .= "," . $KT_fldUserAuthorization;
$KT_rsUser_Source .= " FROM user WHERE name='" . $KT_valUsername . "' AND password='" . $HTTP_POST_VARS['password'] . "'";
$KT_rsUser=$jnjt->Execute($KT_rsUser_Source) or DIE($jnjt->ErrorMsg());
if (!$KT_rsUser->EOF) {
// username and password match - this is a valid user
$KT_Username=$KT_valUsername;
session_unregister("KT_Username");
session_register("KT_Username");
if ($KT_fldUserAuthorization != "") {
$KT_userAuth=$KT_rsUser->Fields($KT_fldUserAuthorization);
} else {
$KT_userAuth="";
}
session_unregister("KT_userAuth");
session_register("KT_userAuth");
if (isset($HTTP_GET_VARS['accessdenied']) && false) {
$KT_redirectLoginSuccess = $HTTP_GET_VARS['accessdenied'];
}
$KT_rsUser->Close();
session_unregister("KT_login_failed");
session_register("KT_login_failed");
$KT_login_failed = false;
// Add code here if you want to do something if login succeded

KT_redir($KT_redirectLoginSuccess);
}
$KT_rsUser->Close();
$KT_login_failed = true;
session_unregister("KT_login_failed");
session_register("KT_login_failed");
// Add code here if you want to do something if login fails

KT_redir($KT_redirectLoginFailed);
}
//PHP ADODB document - made with PHAkt 2.0.60?>

检查用户登录及退出登陆页面:


// *** Restrict Access To Page: Grant or deny access to this page
$KT_authorizedUsers=" ";
$KT_authFailedURL="../index.php";
$KT_grantAccess=0;
session_start();
if (isset($HTTP_SESSION_VARS["KT_Username"])) {
if (true || !(isset($HTTP_SESSION_VARS["KT_userAuth"])) || $HTTP_SESSION_VARS["KT_userAuth"]=="" || strpos($KT_authorizedUsers, $HTTP_SESSION_VARS["KT_userAuth"])) {
$KT_grantAccess = 1;
}
}
if (!$KT_grantAccess) {
$KT_qsChar = "?";
if (strpos($KT_authFailedURL, "?")) $KT_qsChar = "&";
$KT_referrer = $HTTP_SERVER_VARS["REQUEST_URI"];
$KT_authFailedURL = $KT_authFailedURL . $KT_qsChar . "accessdenied=" . urlencode($KT_referrer);
KT_redir($KT_authFailedURL);
}

// *** Logout the current user. false
$KT_Logout = $HTTP_SERVER_VARS["PHP_SELF"] . "?KT_Logoutnow=1";
if ($KT_Logoutnow=="1") {
session_start();
session_unregister("KT_Username");
session_unregister("KT_UserAuthorization");
$KT_logoutRedirectPage = "../index.php";
// redirect with URL parameters (remove the "KT_Logoutnow" query param).
if ($KT_logoutRedirectPage == "") $KT_logoutRedirectPage = $HTTP_SERVER_VARS["PHP_SELF"];
if (!strpos($KT_logoutRedirectPage, "?") && $QUERY_STRING != "") {
$KT_newQS = "?";
reset ($HTTP_GET_VARS);
while (list ($key, $val) = each ($HTTP_GET_VARS)) {
if($key != "KT_Logoutnow"){
if (strlen($KT_newQS) > 1) $KT_newQS .= "&";
$KT_newQS .= $key . "=" . urlencode($val);
}
}
if (strlen($KT_newQS) > 1) $KT_logoutRedirectPage .= $KT_newQS;
}
KT_redir($KT_logoutRedirectPage);
}
//PHP ADODB document - made with PHAkt 2.0.60?>

includes/functions.inc.php 文件内容:

// PHP ADODB document - made with PHAkt
// functions needed by PHAkt generated pages

function KT_replaceParam($qstring, $paramName, $paramvalue) {
if (preg_match("/&" . $paramName . "=/", $qstring)) {
return preg_replace("/&" . $paramName . "=[^&]+/", "&" . $paramName . "=" . urlencode($paramvalue), $qstring);
} else {
return $qstring . "&" . $paramName . "=" . urlencode($paramvalue);
}
}

function KT_removeParam($qstring, $paramName) {
if($qstring == "&"){
$qstring = "";
}
return preg_replace("/&" . $paramName . "=[^&]+/", "", $qstring);
}


function KT_keepParams($paramName) {
global $MM_keepURL, $MM_keepForm, $MM_keepBoth, $MM_keepNone, $HTTP_GET_VARS, $HTTP_POST_VARS;
$MM_keepURL="";
$MM_keepForm="";
$MM_keepBoth="";
$MM_keepNone="";
// add the URL parameters to the MM_keepURL string
while (list($key, $value)=each($HTTP_GET_VARS)) {
if ($key != $paramName) {
$MM_keepURL .= "&" . $key . "=" . urlencode($value);
}
}

// add the Form variables to the MM_keepForm string
while (list($key, $value)=each($HTTP_POST_VARS)) {
if ($key != $paramName) {
$MM_keepForm .= "&" . $key . "=" . urlencode($value);
}
}

// create the Form + URL string and remove the intial '&' from each of the strings
$MM_keepBoth = $MM_keepURL . $MM_keepForm;
if (strlen($MM_keepBoth) > 0) $MM_keepBoth = substr($MM_keepBoth,1);
if (strlen($MM_keepURL) > 0) $MM_keepURL = substr($MM_keepURL,1);
if (strlen($MM_keepForm) > 0) $MM_keepForm = substr($MM_keepForm,1);
}

function GetSQLvalueString($thevalue, $theType, $theDefinedvalue = "", $theNotDefinedvalue = "") {
switch ($theType) {
case "text":
$thevalue = ($thevalue != "") ? "'" . $thevalue . "'" : "NULL";
break;
case "long":
case "int":
$thevalue = ($thevalue != "") ? intval($thevalue) : "NULL";
break;
case "double":
$thevalue = ($thevalue != "") ? "'" . doubleval($thevalue) . "'" : "NULL";
break;
case "date":
// format the date according to the current locale
global $KT_localFormat;
global $KT_serverFormat;
if ($thevalue != "") {
$thevalue = KT_convertDate($thevalue, $KT_localFormat, $KT_serverFormat);
}
$thevalue = ($thevalue != "") ? "'" . $thevalue . "'" : "NULL";
break;
case "defined":
$thevalue = ($thevalue != "") ? $theDefinedvalue : $theNotDefinedvalue;
break;
}
return $thevalue;
}


class fakeRecordSet{
var $fields=array();

function preparevalue($field, $value){
if($value=="NULL"){
$value="";
}
$this->fields[$field]=$value;
}

function Fields($field){
return $this->fields[$field];
}

function Close(){
unset($this->fields);
}
}

function KT_parseError($a,$b) {
//if(strstr($b, "Bad date external representation")){
// $b = " Data nu a fost bine introdusa.";
//}
echo "

Error:
$b

";
}

function KT_DIE($a,$b) {
echo "

An error occured!
Error no: $a
Error message: $b

";
exit;
}

function addReplaceParam($KT_Url,$param,$value){
$sep = (strpos($KT_Url, '?') == false)?"?":"&";
$value = KT_descape($value);
if(eregi("$param=[^&]*",$KT_Url)){
$KT_Url = eregi_replace("$param=[^\&]*", "$param=$value", $KT_Url);
}else {
$KT_Url .="$sep$param=$value";
}
if ($value == "") {
$KT_Url = preg_replace("/$param=/", "", $KT_Url);
}
$KT_Url = str_replace("?&", "?", $KT_Url);
$KT_Url = eregi_replace("&+$", "", $KT_Url);
$KT_Url = preg_replace("/\?$/", "", $KT_Url);
return $KT_Url;
}

function KT_descape($KT_text){
if(eregi("^'.*'$",$KT_text)){
$KT_text = substr($KT_text, 1, strlen($KT_text)-2);
}
return $KT_text;
}

function KT_removeEsc($KT_text) {
if (eregi("^'.*'$",$KT_text)) {
return substr($KT_text, 1, strlen($KT_text)-2);
} else {
return $KT_text;
}
}

function KT_convertDate($date, $inFmt, $outFmt) {
if (($inFmt == "none") || ($outFmt == "none")) {
return $date;
}
if(ereg("^[0-9]+[/|-][0-9]+[/|-][0-9]+$", $date)) {
$outFmt = eregi_replace(" +.+$", "", $outFmt);
}
if (ereg ("%d[/|-]%m[/|-]%Y %H:%M:%S", $inFmt)) {
if(ereg ("([0-9]{1,2})[/|-]([0-9]{1,2})[/|-]([0-9]{2,4}) *([0-9]{1,2}){0,1}:{0,1}([0-9]{1,2}){0,1}:{0,1}([0-9]{1,2}){0,1}", $date, $regs)){
for ($i=1;$i<7;$i++) {
if ($regs[$i]=="" || !isset($regs[$i])) $regs[$i]="00";
}
$outdate = $outFmt;
$outdate = ereg_replace("%Y",$regs[3],$outdate);
$outdate = ereg_replace("%m",$regs[2],$outdate);
$outdate = ereg_replace("%d",$regs[1],$outdate);
$outdate = ereg_replace("%H",$regs[4],$outdate);
$outdate = ereg_replace("%M",$regs[5],$outdate);
$outdate = ereg_replace("%S",$regs[6],$outdate);
} else {
$outdate = $date;
}
} else if (ereg ("%Y[/|-]%m[/|-]%d %H:%M:%S", $inFmt)) {
if(ereg ("([0-9]{2,4})[/|-]([0-9]{1,2})[/|-]([0-9]{1,2}) *([0-9]{1,2}){0,1}:{0,1}([0-9]{1,2}){0,1}:{0,1}([0-9]{1,2}){0,1}", $date, $regs)){
for ($i=1;$i<7;$i++) {
if ($regs[$i]=="" || !isset($regs[$i])) $regs[$i]="00";
}
$outdate = $outFmt;
$outdate = ereg_replace("%Y",$regs[1],$outdate);
$outdate = ereg_replace("%m",$regs[2],$outdate);
$outdate = ereg_replace("%d",$regs[3],$outdate);
$outdate = ereg_replace("%H",$regs[4],$outdate);
$outdate = ereg_replace("%M",$regs[5],$outdate);
$outdate = ereg_replace("%S",$regs[6],$outdate);
} else {
$outdate = $date;
}
} else if (ereg ("%m[/|-]%d[/|-]%Y %H:%M:%S", $inFmt)) {
if(ereg ("([0-9]{1,2})[/|-]([0-9]{1,2})[/|-]([0-9]{2,4}) *([0-9]{1,2}){0,1}:{0,1}([0-9]{1,2}){0,1}:{0,1}([0-9]{1,2}){0,1}", $date, $regs)){
for ($i=1;$i<7;$i++) {
if ($regs[$i]=="" || !isset($regs[$i])) $regs[$i]="00";
}
$outdate = $outFmt;
$outdate = ereg_replace("%Y",$regs[3],$outdate);
$outdate = ereg_replace("%m",$regs[1],$outdate);
$outdate = ereg_replace("%d",$regs[2],$outdate);
$outdate = ereg_replace("%H",$regs[4],$outdate);
$outdate = ereg_replace("%M",$regs[5],$outdate);
$outdate = ereg_replace("%S",$regs[6],$outdate);
} else {
$outdate = $date;
}
} else {
KT_DIE("KT-Conversion-1", "Unknown data format : ".$inFmt." .");
}
return $outdate;
}

function KT_redir($url) {
if (preg_match("#^/#", $url)) {
global $HTTP_SERVER_VARS;
$url = "http://".$HTTP_SERVER_VARS["HTTP_HOST"].$url;
} else if (!preg_match("#^[a-z]+://#", $url)) {
global $HTTP_SERVER_VARS;
$url = "http://".$HTTP_SERVER_VARS["HTTP_HOST"].(preg_replace("#/[^/]*$#", "/", $HTTP_SERVER_VARS["PHP_SELF"])).$url;
}
header("Location: ".$url);
exit;
}
?>

请那位高手不吝赐教,给予指点谜津!