📄 install.php
字号:
$modsuccess = true;
for ($i=0; $i<count($modfields); $i++) {
$modsuccess = mysql_query("ALTER TABLE phpQSurvey MODIFY ".$modfields[$i]) ? $modsuccess : false;
}
$successstatus = $modsuccess ? $successstatus : false;
$statusmsg[] = array($modsuccess, sprintf($phpQlang['ModifyingColumns'], 'phpQSurvey'), $phpQlang['ModifyColumnFailure']);
$addfields = array(array('phpQSurvey', 'Language', 'Language VARCHAR(50) NOT NULL AFTER Template'),
array('phpQSurvey', 'AnswerInputStyle', 'AnswerInputStyle VARCHAR(255) NOT NULL AFTER QuestionStyle'),
array('phpQSurvey', 'ResultsWidth', 'ResultsWidth VARCHAR(255) NOT NULL'),
array('phpQSurvey', 'ResultsBorder', 'ResultsBorder VARCHAR(255) NOT NULL'),
array('phpQSurvey', 'ResultsAnswer', 'ResultsAnswer VARCHAR(255) NOT NULL'),
array('phpQSurvey', 'ResultsStats', 'ResultsStats VARCHAR(255) NOT NULL'),
array('phpQSurvey', 'ResultsGraph', 'ResultsGraph VARCHAR(255) NOT NULL'));
$addresult = AddColumns($addfields);
$successstatus = $addresult[0] ? $successstatus : false;
for ($i=0; $i<count($addresult[1]); $i++) {
$statusmsg[] = array($addresult[1][$i][0], $addresult[1][$i][1], $addresult[1][$i][2]);
}
# Insert the default values for our new rows...
mysql_query("UPDATE phpQSurvey SET Language='english', ResultsWidth='500', ResultsBorder='background-color: #333366; color: #FFFFFF; text-decoration: none;', ResultsAnswer='background-color: #FFFFFF; color: #333366;', ResultsStats='background-color: #DDEEFF; color: #333366;', ResultsGraph='background-color: #333366; height: 8px;'");
# Update phpQQuestion to remove any NULL fields...
$modfields = array('SID BIGINT UNSIGNED NOT NULL',
'QID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT',
'SortOrder INT UNSIGNED NOT NULL',
'Question TEXT NOT NULL',
"Type ENUM('radio','checkbox','textfield','textarea','select','selectmult','pagebreak') NOT NULL DEFAULT 'radio'",
'Mult INT UNSIGNED NOT NULL DEFAULT 1',
'QuestionStyle VARCHAR(255) NOT NULL',
'Instructions TEXT NOT NULL',
'Answer TEXT NOT NULL',
'Choose VARCHAR(11) NOT NULL',
'DefaultAnswer TEXT NOT NULL',
'LargestAID INT UNSIGNED NOT NULL',
'ColNumb INT UNSIGNED NOT NULL DEFAULT 1',
'AnswerTextStyle VARCHAR(255) NOT NULL',
'AnswerStyle VARCHAR(255) NOT NULL',
'Attributes TEXT NOT NULL',
"Required ENUM('y','n') NOT NULL DEFAULT 'y'",
"Summary ENUM('y','n') NOT NULL DEFAULT 'n'");
$modsuccess = true;
for ($i=0; $i<count($modfields); $i++) {
$modsuccess = mysql_query("ALTER TABLE phpQQuestion MODIFY ".$modfields[$i]) ? $modsuccess : false;
}
$successstatus = $modsuccess ? $successstatus : false;
$statusmsg[] = array($modsuccess, sprintf($phpQlang['ModifyingColumns'], 'phpQQuestion'), $phpQlang['ModifyColumnFailure']);
$addfields = array(array('phpQQuestion', 'AnswerInputStyle', 'AnswerInputStyle VARCHAR(255) NOT NULL AFTER ColNumb'));
$addresult = AddColumns($addfields);
$successstatus = $addresult[0] ? $successstatus : false;
for ($i=0; $i<count($addresult[1]); $i++) {
$statusmsg[] = array($addresult[1][$i][0], $addresult[1][$i][1], $addresult[1][$i][2]);
}
# Update phpQUser to remove any NULL fields...
$modfields = array('UID BIGINT UNSIGNED NOT NULL DEFAULT 0',
'SID BIGINT UNSIGNED NOT NULL',
'IPAddr VARCHAR(100) NOT NULL',
"CheckType CHAR(3) NOT NULL DEFAULT '000'",
'Email VARCHAR(255) NOT NULL',
'Confirm VARCHAR(50) NOT NULL',
"EmailConfirm ENUM('y','n') NOT NULL DEFAULT 'n'",
"CompleteDate DATETIME NOT NULL DEFAULT '0000-00-00'");
$modsuccess = true;
for ($i=0; $i<count($modfields); $i++) {
$modsuccess = mysql_query("ALTER TABLE phpQUser MODIFY ".$modfields[$i]) ? $modsuccess : false;
}
$successstatus = $modsuccess ? $successstatus : false;
$statusmsg[] = array($modsuccess, sprintf($phpQlang['ModifyingColumns'], 'phpQUser'), $phpQlang['ModifyColumnFailure']);
$addfields = array(array('phpQUser', 'BlockDupe', 'BlockDupe VARCHAR(40) NOT NULL AFTER IPAddr'));
$addresult = AddColumns($addfields);
$successstatus = $addresult[0] ? $successstatus : false;
for ($i=0; $i<count($addresult[1]); $i++) {
$statusmsg[] = array($addresult[1][$i][0], $addresult[1][$i][1], $addresult[1][$i][2]);
}
# Update phpQAnswer to remove any NULL fields...
$modfields = array('UID BIGINT UNSIGNED NOT NULL',
'SID BIGINT UNSIGNED NOT NULL',
'QID BIGINT UNSIGNED NOT NULL',
'Answer TEXT NOT NULL');
$modsuccess = true;
for ($i=0; $i<count($modfields); $i++) {
$modsuccess = mysql_query("ALTER TABLE phpQAnswer MODIFY ".$modfields[$i]) ? $modsuccess : false;
}
$successstatus = $modsuccess ? $successstatus : false;
$statusmsg[] = array($modsuccess, sprintf($phpQlang['ModifyingColumns'], 'phpQAnswer'), $phpQlang['ModifyColumnFailure']);
}
if (!isset($macheck["Version"]) || $macheck["Version"] < 2.1) {
$mqindex = mysql_query("show keys from phpQAnswer");
$findkey = false;
while ($maindex = mysql_fetch_array($mqindex)) {
if (strtolower($maindex['Key_name']) == 'index_uid') {
$findkey = true;
break;
}
}
$keymsgleft = sprintf($phpQlang['AddColumnToTable'], 'index_uid', 'phpQAnswer');
if (!$findkey) {
$addkey = mysql_query("ALTER IGNORE TABLE phpQAnswer ADD INDEX index_uid (UID)");
if ($addkey) {
$statusmsg[] = array($addkey, $keymsgleft, '');
}
else {
$statusmsg[] = array($addkey, $keymsgleft, $phpQlang['AddColumnFailure']);
$successstatus = false;
}
}
else {
$statusmsg[] = array($findkey, $keymsgleft, '');
}
$addfields = array(array('phpQSurvey', 'SubmitImageSrc', "SubmitImageSrc VARCHAR(255) NOT NULL"),
array('phpQSurvey', 'SubmitImageWidth', "SubmitImageWidth INT UNSIGNED NOT NULL"),
array('phpQSurvey', 'SubmitImageHeight', 'SubmitImageHeight INT UNSIGNED NOT NULL'),
array('phpQSurvey', 'SubmitImageText', 'SubmitImageText VARCHAR(255) NOT NULL'),
array('phpQSurvey', 'ResultImageSrc', "ResultImageSrc VARCHAR(255) NOT NULL"),
array('phpQSurvey', 'ResultImageWidth', "ResultImageWidth INT UNSIGNED NOT NULL"),
array('phpQSurvey', 'ResultImageHeight', 'ResultImageHeight INT UNSIGNED NOT NULL'),
array('phpQSurvey', 'ResultImageText', 'ResultImageText VARCHAR(255) NOT NULL'),
array('phpQSurvey', 'NextImageSrc', "NextImageSrc VARCHAR(255) NOT NULL"),
array('phpQSurvey', 'NextImageWidth', "NextImageWidth INT UNSIGNED NOT NULL"),
array('phpQSurvey', 'NextImageHeight', 'NextImageHeight INT UNSIGNED NOT NULL'),
array('phpQSurvey', 'NextImageText', 'NextImageText VARCHAR(255) NOT NULL'));
$addresult = AddColumns($addfields);
$successstatus = $addresult[0] ? $successstatus : false;
for ($i=0; $i<count($addresult[1]); $i++) {
$statusmsg[] = array($addresult[1][$i][0], $addresult[1][$i][1], $addresult[1][$i][2]);
}
# Set default values for new columns...
mysql_query("UPDATE phpQSurvey SET SubmitImageText='".$phpQlang['Submit']."', ResultImageText='".$phpQlang['ShowResults']."', NextImageText='".$phpQlang['Next']."'");
}
if (!isset($macheck["Version"]) || $macheck["Version"] < 2.2) {
# Update phpQQuestion to allow htmlcontent type.
$modfields = array(
"Type ENUM('radio','checkbox','textfield','textarea','select','selectmult','pagebreak','htmlcontent') NOT NULL DEFAULT 'radio'"
);
$modsuccess = true;
for ($i=0; $i<count($modfields); $i++) {
$modsuccess = mysql_query("ALTER TABLE phpQQuestion MODIFY ".$modfields[$i]) ? $modsuccess : false;
}
$successstatus = $modsuccess ? $successstatus : false;
$statusmsg[] = array($modsuccess, sprintf($phpQlang['ModifyingColumns'], 'phpQQuestion'), $phpQlang['ModifyColumnFailure']);
$addfields = array(array('phpQSurvey', 'ResponseNotice', "ResponseNotice TINYINT NOT NULL"),
array('phpQSurvey', 'ResponseEmail', "ResponseEmail TEXT NOT NULL"));
$addresult = AddColumns($addfields);
$successstatus = $addresult[0] ? $successstatus : false;
for ($i=0; $i<count($addresult[1]); $i++) {
$statusmsg[] = array($addresult[1][$i][0], $addresult[1][$i][1], $addresult[1][$i][2]);
}
if ($successstatus) {
$uversion = mysql_query("UPDATE phpQAdmin SET Version='".$GLOBALS["PHPQVERSION"]."'");
$statusmsg[] = array($uversion, $phpQlang['UpdatingVersion'], sprintf($phpQlang['VersionInstalled'], $GLOBALS["PHPQVERSION"]));
}
else {
$statusmsg[] = array(false, $phpQlang['UpdatingVersion'], $phpQlang['VersionErrors']);
}
}
else {
$statusmsg[] = array(true, sprintf($phpQlang['VersionAlreadyExists'], $macheck["Version"]), '');
}
$status .= PrintHead();
$status .= PrintStatus($ErrorCode[1], $phpQlang['MySQLConnection'], $phpQlang['InvalidConnection']);
$status .= PrintStatus($ErrorCode[2], $phpQlang['MySQLDatabase'], $phpQlang['InvalidDatabase']);
for ($i=0; $i<count($statusmsg); $i++) {
$status .= PrintStatus($statusmsg[$i][0], $statusmsg[$i][1], $statusmsg[$i][2]);
}
$status .= PrintEnd();
$tail = false;
# Everything succeeded as planned...
if ($ErrorCode[1] && $ErrorCode[2] && $successstatus) {
UpdateMySQLFile();
$tail = true;
}
$contents = GetStatusPage($action, $status, $tail);
$contents = FormatPage($contents);
}
else {
if (!$ErrorCode[4]) {
$contents = GetStartPage("");
$contents = FormatPage($contents);
}
else {
$contents = GetStartPage($phpQlang['CompleteAllFields']);
$contents = FormatPage($contents);
}
}
break;
default:
$contents = GetStartPage("");
$contents = FormatPage($contents);
break;
}
function AddColumns ($addfields) {
global $phpQlang;
$successstatus = true;
$statusmsg = array();
for ($i=0; $i<count($addfields); $i++) {
$findcol = FindColumn($addfields[$i][1], $addfields[$i][0]);
$colmsgleft = sprintf($phpQlang['AddColumnToTable'], $addfields[$i][1], $addfields[$i][0]);
if (!$findcol) {
$addsuccess = mysql_query("ALTER TABLE ".$addfields[$i][0]." ADD ".$addfields[$i][2]);
if ($addsuccess) {
$statusmsg[] = array($addsuccess, $colmsgleft, '');
}
else {
$statusmsg[] = array($addsuccess, $colmsgleft, $phpQlang['AddColumnFailure'] . mysql_error());
$successstatus = false;
}
}
else {
$statusmsg[] = array($findcol, $colmsgleft, '');
}
}
return array($successstatus, $statusmsg);
}
#-->> Output Page
# Create the chumpsoft tab.
$menu = "<TD><IMG SRC=\"admin/images/invdot.gif\" WIDTH=5 HEIGHT=1 ALT=\"\"></TD>\n";
$menu .= "<TD><IMG SRC=\"admin/images/tableft.gif\" WIDTH=4 HEIGHT=15 ALT=\"\"></TD>\n";
$menu .= "<TD BGCOLOR=#99CCFF><NOBR>\n";
$menu .= "<B>chumpsoft :: phpQ</B></NOBR></TD>\n";
$menu .= "<TD><IMG SRC=\"admin/images/tabright.gif\" WIDTH=7 HEIGHT=15 ALT=\"\"></TD>\n";
#-->> Reading Template
$template = "admin/template.html";
$templatedata = join('', file($template));
# This is a hack since the template was designed to be viewed from admin/ dir
$templatedata = str_replace("HREF=\"../docs", "HREF=\"docs", $templatedata);
$templatedata = str_replace("HREF=\"index.php", "HREF=\"admin/index.php", $templatedata);
$templatedata = str_replace("HREF=\"favicon.ico", "HREF=\"admin/favicon.ico", $templatedata);
$templatedata = str_replace("SRC=\"images/", "SRC=\"admin/images/", $templatedata);
$templatedata = str_replace("HREF=\"template.css\"", "HREF=\"admin/template.css\"", $templatedata);
# Substitute data into template
$templatedata = str_replace("::CHARSET::", $phpQlang['CHARSET'], $templatedata);
$templatedata = str_replace("::USERMANUAL::", $phpQlang['UserManual'], $templatedata);
$templatedata = str_replace("::SURVEYNAME::", $phpQlang['AdminTitle'].' :: '.$phpQlang['Installation'], $templatedata);
$templatedata = str_replace("::JSINIT::", "", $templatedata);
$templatedata = str_replace("::MESSAGE::", "", $templatedata);
$templatedata = str_replace("::CONTENT::", $contents, $templatedata);
$templatedata = str_replace("::JSCRIPT::", GetJS(), $templatedata);
$templatedata = str_replace("::MENU::", $menu, $templatedata);
echo $templatedata;
#-->> Functions
function ProtectHTML ($mytext) {
$mytext = str_replace("&", "&", $mytext);
$mytext = str_replace("<", "<", $mytext);
$mytext = str_replace(">", ">", $mytext);
$mytext = str_replace("\"", """, $mytext);
return $mytext;
}
function FindTable ($tablename, $db) {
$result = mysql_list_tables($db);
while ($row = mysql_fetch_row($result)) {
if (strtolower($row[0]) == strtolower($tablename)) {
return true;
}
}
return false;
}
function FindColumn ($colname, $tablename) {
$rindex = mysql_query("select * from $tablename limit 1");
if ($masearch = mysql_fetch_array($rindex)) {
$limit = mysql_num_fields($rindex);
for ($i=0; $i<$limit; $i++) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -