$title="PHP3 Bug Database";
require "include/header.inc";
$destination = "php3@php.il.eu.org";
#$destination = "rasmus@lerdorf.on.ca";
function indent($string, $prefix) {
$string = ereg_replace(13, "", $string); /* get rid of Ctrl-M */
return $prefix . ereg_replace("\n", "\n$prefix", $string) . "\n";
}
function show_menu($state) {
global $PHP_SELF, $bug_type;
if(!isset($bug_type)) { $bug_type="Any"; }
echo "
\n";
}
function show_types($first_item) {
$items = array("Any",
"Feature/Change Request",
"Documentation problem",
"Installation problem",
"Failed to compile",
"Parser error",
"Performance problem",
"MySQL related",
"mSQL related",
"PostgreSQL related",
"ODBC related",
"Oracle related",
"Sybase related",
"Solid related",
"Adabas-D related",
"dBase related",
"dbm related",
"Other");
echo "\n$first_item\n";
for($i=0;$i$items[$i]\n";
}
}
echo " \n";
}
function find_password($user) {
$fp=fopen("/repository/CVSROOT/passwd","r");
while(!feof($fp)) {
$line=fgets($fp,120);
list($luser,$passwd,$junk) = explode(":",$line);
if($user==$luser) {
fclose($fp);
return($passwd);
}
}
fclose($fp);
return("");
}
function addlinks($text) {
$text = htmlspecialchars($text);
$new_text = ereg_replace("(http:[^ \n\t]*)","\1 ",$text);
$new_text = ereg_replace("(ftp:[^ \n\t]*)","\1 ",$text);
$new_text = ereg_replace("[.,]-=-\"","\"",$new_text);
$new_text = ereg_replace("-=-\"","\"",$new_text);
return $new_text;
}
if (isset($cmd) && $cmd == "Send bug report") {
if(!ereg("@",$email)) {
echo "Please provide a valid email address\n";
include("include/footer.inc");
exit;
}
if($bug_type=="--Please Select--") {
echo "Please select an appropriate bug type
\n";
include("include/footer.inc");
exit;
}
show_menu($status);
echo "
\n";
mysql_pconnect("localhost","bourbon","");
mysql_select_db("php3");
$ts=date("Y-m-d H:i:s");
mysql_query("INSERT into bugdb values (0,'$bug_type','$email','$sdesc','$ldesc','$php_version','$php_os','Open','','$ts','$ts','')");
$cid = mysql_insert_id();
$report = "";
echo("\n");
$ldesc = stripslashes($ldesc);
$sdesc = stripslashes($sdesc);
$report .= "From: $email\n";
$report .= "Operating system: $php_os\n";
$report .= "PHP version: $php_version\n";
$report .= "PHP Bug Type: $bug_type\n";
$report .= "Bug description:\n";
$report .= indent($ldesc, " ");
$html_report = ereg_replace("<", "<", $report);
$html_report = ereg_replace(">", ">", $html_report);
echo $html_report;
echo(" \n");
if (Mail($destination, "Bug #$cid: $sdesc", $report, "From: $email")) {
echo("
Mail sent to $destination... \n");
echo("Thank you for your help!\n");
} else {
echo("
Mail not sent! \n");
echo("Please send this page in a mail to " .
"$email manually.\n");
}
} elseif(isset($cmd) && $cmd=="Display Bugs") {
show_menu($status);
echo " \n";
include("table_wrapper.inc");
function external_processing($fieldname,$tablename,$data,$row)
{
switch($fieldname) {
case "id":
print "$data \n";
break;
case "Originator":
print "$data \n";
break;
default:
print $data;
break;
}
}
function row_coloring($row) {
switch($row["Status"]) {
case "Open":
return "#ffbbaa";
break;
case "Closed":
return "#aaffbb";
break;
default:
return "#aaaaaa";
break;
}
}
$external_processing_function="external_processing";
$row_coloring_function="row_coloring";
mysql_pconnect("localhost","bourbon","");
mysql_select_db("php3");
$tables[] = "bugdb";
$fields[] = "id";
$fields[] = "bug_type as 'Bug Type'";
$fields[] = "status as Status";
$fields[] = "php_version as Version";
$fields[] = "php_os as OS";
$fields[] = "email as Originator";
$fields[] = "sdesc as Description";
$conversion_table["id"] = "ID#";
$pass_on = ereg_replace(" ","+","&cmd=Display+Bugs&status=$status&bug_type=$bug_type");
$default_header_color="aaaaaa";
$centering["id"] = "center";
if (!isset($order_by)) {
$order_by = "id";
}
if($status=="All" && $bug_type=="Any") {
/* nothing */
} elseif($status=="All" && $bug_type!="Any") {
$where_clause = "bug_type='$bug_type'";
} elseif($status!="All" && $bug_type=="Any") {
$where_clause = "status='$status'";
} else {
$where_clause = "status='$status' and bug_type='$bug_type'";
}
table_wrapper("php3");
echo "Submit a Bug Report \n";
} else if(!isset($cmd) && isset($id)) {
show_menu($status);
echo " \n";
mysql_pconnect("localhost","bourbon","");
mysql_select_db("php3");
if(isset($modify) && $modify=="Edit Bug") {
$ok=0;
if($user!="cvsread") {
$psw=find_password($user);
if(strlen($psw)>0) {
if(crypt($pw,substr($psw,0,2))==$psw) {
$ts=date("Y-m-d H:i:s");
if($status=="Delete!") {
mysql_query("DELETE from bugdb where id=$id");
} else {
mysql_query("UPDATE bugdb set status='$estatus', comments='$comments', ts2='$ts', dev_id='$user' where id=$id");
}
$ok=1;
}
}
}
if(!$ok) {
echo "Sorry, incorrect user id/password pair. \n";
Mail("rasmus@lerdorf.on.ca", "bugdb auth failure for $user/$pw", "", "From: bugdb");
} else {
echo "Database updated! \n";
}
}
$result = mysql_query("SELECT * from bugdb where id=$id");
if(mysql_numrows($result)>0) {
$row = mysql_fetch_row($result);
echo "Bug id #$id \n";
echo "\n";
if(!isset($edit)) {
echo "Status: ".$row[7]." ";
echo "Modify ";
} else {
echo "
\n";
$text = addlinks($row[4]);
echo "".$text." \n";
if(!isset($edit)) {
if(strlen($row[8])) {
echo "[".$row[10]."] Updated by ".$row[11]." \n";
$text=addlinks($row[8]);
echo "".$text." \n";
}
} else {
echo "Developer Comments: \n";
echo " \n";
echo "CVS user id: \n";
echo "CVS password: \n";
echo " \n";
echo "\n";
}
} else {
if(isset($modify) && $status=="Delete!") {
echo "Bug id #$id has been deleted \n";
} else {
echo "Sorry bug id #$id does not exist \n";
}
}
mysql_freeresult($result);
} else {
show_menu($status);
?>
Or use the form below to submit a new bug report.
} ?>
require("include/footer.inc"); ?>