response_footer(); exit; } else { if (!DEVBOX) { $request = strtolower($_POST['action']); if ($request != 'subscribe' && $request != 'unsubscribe') { $request = 'subscribe'; } $sub = str_replace('@', '=', $_POST['email']); foreach ($_POST['maillist'] as $list => $type) { if ($type == 'digest') { $list = $list . '-digest'; } mail("{$list}-{$request}-{$sub}@lists.php.net", 'Website Subscription', 'This was a request generated from the form at' . 'http://' . PEAR_CHANNELNAME . '/support/lists.php.', "From: {$_POST['email']}"); } report_success('A request has been entered into the mailing list' . ' processing queue. You should receive ' . (count($_POST['maillist']) == 1 ? 'an email' : 'emails') . ' at ' . htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8') . ' shortly describing' . ' how to complete your request.'); } } } ?> <p> There are <?php echo count($mailing_lists) - 1; ?> PEAR-related mailing lists available. Most of them have archives available, and they are also available as newsgroups on our <a href="news://news.php.net">news server</a>. The archives are searchable. The lists are described in more detail in the
$resp = mail($row['email'], 'Password for ' . SITE_BIG . ' bug report #' . $bug_id, 'The password for ' . SITE_BIG . ' bug report #' . $bug_id . ' is ' . $row['passwd'] . '.', 'From: ' . PEAR_BOUNCE_EMAIL); if ($resp) { $success = 'The password for bug report #' . $bug_id . ' has been sent to ' . PEAR_Bugs_Utils::spamProtect($row['email'], 'text'); } else { $errors[] = 'Sorry. Mail can not be sent at this time. Please try again later.'; } } } } else { $errors[] = 'Invalid bug id provided'; } response_header('Bug Report Password Finder'); echo "<h1>Bug Report Password Finder</h1>\n"; report_error($errors); if ($success) { report_success($success); } ?> <p> If you need to modify a bug report that you submitted, but have forgotten what password you used, this utility can help you. </p> <p> Enter in the number of the bug report, press the Send button and the password will be mailed to the email address specified in the bug report. </p> <form method="get" action="bug-pwd-finder.php">
function run_parent_process($workers, $argv) { global $tests; global $config; global $failMessages; $sockets = []; $workerInfo = []; foreach ($workers as $id => $worker) { $workerInfo[$id] = ['id' => $worker['id'], 'pid' => $worker['pid'], 'socketId' => $worker['socketId']]; $sockets[$id] = $worker['socket']; } collect_responses($sockets); foreach ($tests as $id => $test) { if ($config->filter) { $match = false; foreach ($config->filter as $f) { if (preg_match("/{$f}/i", $id)) { $match = true; break; } } if (!$match) { continue; } } if ($config->exclude) { $match = false; foreach ($config->exclude as $e) { if (preg_match("/{$e}/i", $id)) { $match = true; break; } } if ($match) { continue; } } echo "{$id}:\n"; for ($i = 0; $i < $config->runs; $i++) { $parentState = (object) []; if (isset($test['setupParent'])) { $initialState = $test['setupParent']($parentState); } else { $initialState = (object) []; } if (isset($test['setupWorker'])) { call_workers($sockets, 'run_test', [$id, $i, 'setupWorker', $initialState]); } $responses = call_workers($sockets, 'run_test', [$id, $i, 'test']); $result = $test['check']($workerInfo, $responses, $parentState, $initialState); if ($result[0]) { report_success($id); } else { report_failure($id, $result[1]); } if (isset($test['teardownParent'])) { $test['teardownParent']($parentState, $initialState); } } echo "\n\n"; } foreach ($workers as $worker) { socket_write($worker['socket'], serialize(["quit", []])); } foreach ($workers as $worker) { pcntl_wait($worker['pid']); socket_close($worker['socket']); } echo "All workers done\n"; if ($failMessages) { $out = []; foreach ($failMessages as list($id, $message)) { $current = "{$id}: {$message}"; $out[] = $current; } echo implode("\n", array_unique($out)) . "\n"; exit(1); } else { exit(0); } }
} $request = new PEAR_Election_Accountrequest(); $salt = $request->addRequest($stripped['handle'], $stripped['email'], $stripped['firstname'], $stripped['lastname'], $stripped['password'], $stripped['password2']); if (PEAR::isError($salt)) { $errors[] = 'This email address has already been registered by another user'; $display_form = true; break; } if (isset($stripped['display_form'])) { $display_form = $stripped['display_form']; } if (is_array($salt)) { $errors = $salt; break; } elseif (strlen($salt) == 32) { report_success('Your account request confirmation has been submitted. ' . ' You must follow the link provided in the email ' . ' in order to activate your account.' . ' Until this is done you cannot vote in any election.'); $mailData = array('username' => $stripped['handle'], 'salt' => $salt); if (!DEVBOX) { $mailer = Damblan_Mailer::create('pearweb_account_request_vote', $mailData); $additionalHeaders['To'] = $stripped['email']; $mailer->send($additionalHeaders); } } $display_form = false; } } while (0); try { $sHelper = new Pearweb_Service_HoneyPot(HONEYPOT_API_KEY); $ip = $_SERVER['REMOTE_ADDR']; $sHelper->check($ip); } catch (Exception $e) {
if ($request->find($salt) && $request->pending()) { $email = $request->email; $user = $name = ''; $errors = array(); include PEARWEB_TEMPLATEDIR . '/bugs/registernewaccount.php'; response_footer(); exit; } else { report_error('Unknown salt'); } } else { report_error('Unknown salt'); } } else { echo '<h1>Confirm Account</h1>'; if (empty($stripped['salt']) || strlen($salt = htmlspecialchars($stripped['salt'])) != 32) { report_error('Unknown salt'); } else { $request = new PEAR_Election_Accountrequest(); $result = $request->confirmRequest($salt); if (PEAR::isError($result)) { report_error($result->getMessage()); } elseif ($result) { report_success('Your account has been activated, you can now vote in PEAR elections that are for the general PHP public as well as open bugs in the bug tracker'); } else { report_error('There was a problem activating your account, please contact ' . PEAR_WEBMASTER_EMAIL); } } } response_footer();
<?php $p = clean($package); $b = clean($bug); response_header('Patch Added :: ' . $p . ' :: Bug #' . $b); report_success('Patch added'); include dirname(__FILE__) . '/listpatches.php'; response_footer();
<?php response_header('Upload New Release'); ?> <h1>Upload New Release</h1> <?php if ($success) { if (is_array($info)) { report_success('Version ' . $info['version'] . ' of ' . $info['package'] . ' has been successfully released, ' . 'and its promotion cycle has started.'); echo '<p><a href="/package/', $info['package'], '">Visit package home</a>'; } else { report_success('Version ' . $info->getVersion() . ' of ' . $info->getPackage() . ' has been successfully released, ' . 'and its promotion cycle has started.'); } echo '</p></div>'; } else { report_error($errors); } $csrf_token_value = create_csrf_token($csrf_token_name); ?> <p> Upload a new package distribution file built using "<code>pear package</code>" here. The information from your package.xml file will be displayed on the next screen for verification. The maximum file size is 16 MB. </p> <p> Uploading new releases is restricted to each package's lead developer(s). </p><form action="release-upload.php" method="post" enctype="multipart/form-data" > <table class="form-holder" cellspacing="1"> <caption class="form-caption">
$pepr_form = $form->toArray(); report_error($pepr_form['errors']); } } ob_end_flush(); if (!empty($_GET['next_stage'])) { $form =& new HTML_QuickForm('no-form'); $form->removeAttribute('name'); $bbox = array(); switch ($proposal->status) { case 'proposal': $bbox[] = 'The package has been proposed on pear-dev.' . ' All further changes will produce an update email.'; break; case 'vote': $bbox[] = 'The package has been called for votes on pear-dev.' . ' No further changes are allowed.'; break; } if ($karma->has($auth_user->handle, 'pear.pepr.admin')) { $bbox[] = 'Your changes were recorded and necessary emails were sent.'; } if ($bbox) { report_success(implode(' ', $bbox)); } } else { if (!empty($_GET['saved'])) { report_success('Changes saved successfully.'); } } display_pepr_nav($proposal); $form->display(); response_footer();
$errors = array(); if ($voteData['is_conditional'] && empty($voteData['comment'])) { $errors[] = 'You have to apply a comment if your vote is' . ' conditional!'; } if ($voteData['is_conditional'] && $voteData['value'] < 1) { $errors[] = 'Conditional votes have to be formulated positively!' . " Please select '+1' and change your text to a" . " form like 'I am +1 on this if you change...'."; } if (!array_key_exists($voteData['reviews'][0], $proposalReviewsMap)) { $errors[] = 'Reviews contains invalid data'; } if ($errors) { report_error($errors); } else { $proposal->addVote($dbh, new ppVote($voteData)); $proposal->sendActionEmail('proposal_vote', 'user', $auth_user->handle); report_success('Your vote has been registered successfully'); $form = false; } } } } else { $form = false; } display_pepr_nav($proposal); ?> <table border="0" cellspacing="0" cellpadding="2" style="width: 100%"> <?php if ($proposal->status == 'vote') { echo " <tr>\n";
response_header('PEPr :: Comments :: ' . htmlspecialchars($proposal->pkg_name)); echo '<h1>Comments for "' . htmlspecialchars($proposal->pkg_name) . ""</h1>\n"; display_pepr_nav($proposal); if ($auth_user && $proposal->getStatus() == 'proposal') { include_once 'HTML/QuickForm2.php'; $form = new HTML_QuickForm2('comment', 'post', array('action' => 'pepr-comments-show.php?id=' . $id)); $form->removeAttribute('name'); $c = $form->addElement('textarea', 'comment', array('cols' => 70, 'rows' => 20, 'required' => 'required', 'placeholder' => 'Hi. Can I politely suggest that...', 'id' => 'comment_field'))->setLabel('Comments:'); $form->addElement('submit', 'submit'); $c->addFilter('trim'); $c->addRule('required', 'A comment is required'); if (isset($_POST['submit'])) { if ($form->validate()) { $proposal->sendActionEmail('proposal_comment', 'user', $auth_user->handle, $c->getValue()); $proposal->addComment($c->getValue(), 'package_proposal_comments'); report_success('Your comment was successfully processed'); } } } ?> <table border="0" cellspacing="0" cellpadding="2" style="width: 100%"> <tr> <th class="headrow" colspan="2">» Submit Your Comment</th> </tr> <tr> <td class="textcell" valign="top" colspan="2"> <?php if ($proposal->getStatus() != 'proposal') {
function do_import() { global $dbcon, $mysql_fields; global $outlook_fields, $outlook_to_mysql; global $contacts_table, $header; global $user_field, $_POST, $daction; $enteredby = isset($_REQUEST[$user_field]) ? $_REQUEST[$user_field] : ''; #header("Content-type: text/plain"); #include($header); ############################ # GET THE UPLOADED FILE if (!is_uploaded_file($_FILES['csvfile']['tmp_name'])) { report_error("Error uploading file"); do_form(); return; } $fd = fopen($_FILES['csvfile']['tmp_name'], "r"); ############################ # PARSE THE UPLOADED FILE # for each row in the cvs file uploaded # put the data in a row of $sql_data # mapping the outlook headers in the cvs file to # sql headers in the $sql_data array. $firstline = trim(fgets($fd, 4096)); //echo $firstline."<br>"; $headers = split(",", $firstline); # this array holds the names of all fields which are skipped $fields_skipped = array(); $got_data = false; $row = 0; $column_count = count($headers); $sql_data = array(); while (!feof($fd)) { $data = fgetcsv($fd, 4096); // map the outlook columns to mysql columns $sql_data[$row] = array(); for ($column = 0; $column < $column_count; $column++) { if (!isset($outlook_to_mysql[$headers[$column]])) { $fields_skipped[$headers[$column]] = true; continue; # skip reverse mapping which are not defined } $mysql_column = $outlook_to_mysql[$headers[$column]]; $sql_data[$row][$mysql_column] = addslashes($data[$column]); $got_data = true; } $row++; } fclose($fd); if (!$got_data) { report_error("Error: no data found in the uploaded file!"); do_form(); return; } if (!empty($fields_skipped)) { report_success("Note: these fields are being skipped, because there is no defined mapping for them:<br>" . join(", ", array_keys($fields_skipped)) . ".") . "<br>"; } #################################### # COMMIT THE DATA TO THE DATABASE # this routine is very simple and incredibly inefficient # which is ok as long as the database does not grow to thousands. # algorithm: # - load every name from the database into memory # - eliminate all rows in $sql_data where the first name and # last name are already in the database. # - commit the remaining rows of $sql_data # get the current names from the database # we trim away whitespace and cat the two names together $names = array(); $query = "SELECT TRIM(Organization), id FROM `{$contacts_table}` WHERE modinid = {$_POST['modinid']} ;"; $record_set = $dbcon->Execute($query); if ($record_set == null) { die($dbcon->ErrorMsg()); } while (!$record_set->EOF) { if (isset($record_set->fields[0])) { $names[$record_set->fields[0]] = $record_set->fields[1]; } $record_set->MoveNext(); } $record_set->Close(); # loop over each row in the uploaded data # insert into database if the names are different # (the data in $sql_data has already had addslashes called on it) $newdata = false; if ($daction == 'delete') { $queryd = "DELETE from {$contacts_table} where modinid= {$_POST['modinid']};"; $ok = $dbcon->Execute($queryd); if (!$ok) { die($dbcon->ErrorMsg()); } } foreach ($sql_data as $row) { $query2 = "SELECT id FROM `states` WHERE `state` = '{$row['State']}'"; $staten = $dbcon->Execute($query2) or die($dbcon->ErrorMsg()); $query2 = "SELECT id FROM `region` WHERE `title` = '{$row['region']}'"; $region = $dbcon->Execute($query2) or die($dbcon->ErrorMsg()); if ($region->Fields("id")) { $row[region] = $region->Fields("id"); } else { $row[region] = $staten->Fields("id"); } $row[State] = $staten->Fields("id"); if ($row[WebPage]) { $row[WebPage] = eregi_replace("http://", "", $row[WebPage]); $row[WebPage] = "http://" . $row[WebPage]; } if ($_POST[publishx]) { $row[publish] = $_POST[publishx]; } if ($_POST[regionx]) { $row[region] = $_POST[regionx]; } if ($_POST[field1]) { $row[field1] = $_POST[field1]; } if ($_POST[field2]) { $row[field2] = $_POST[field2]; } if ($_POST[field3]) { $row[field3] = $_POST[field3]; } if ($_POST[field4]) { $row[field4] = $_POST[field4]; } if ($_POST[field5]) { $row[field5] = $_POST[field5]; } if ($_POST[field6]) { $row[field6] = $_POST[field6]; } if ($_POST[field7]) { $row[field7] = $_POST[field7]; } if ($_POST[field8]) { $row[field8] = $_POST[field8]; } if ($_POST[field9]) { $row[field9] = $_POST[field9]; } if ($_POST[field10]) { $row[field10] = $_POST[field10]; } if ($_POST[field11]) { $row[field11] = $_POST[field11]; } if ($_POST[field12]) { $row[field12] = $_POST[field12]; } if ($_POST[field13]) { $row[field13] = $_POST[field13]; } if ($_POST[field14]) { $row[field14] = $_POST[field14]; } if ($_POST[field15]) { $row[field15] = $_POST[field15]; } if ($_POST[field16]) { $row[field16] = $_POST[field16]; } if ($_POST[field17]) { $row[field17] = $_POST[field17]; } if ($_POST[field18]) { $row[field18] = $_POST[field18]; } if ($_POST[field19]) { $row[field19] = $_POST[field19]; } if ($_POST[field20]) { $row[field20] = $_POST[field20]; } $name = trim(stripslashes($row['Organization'])); if ($daction == 'skip') { if ($name == "" || isset($names[$name])) { continue; } # skip over names which already exist } if ($daction == 'update') { if ($name == "" || isset($names[$name])) { foreach ($row as $column => $value) { if ($value == '') { unset($row[$column]); } else { $row[$column] = "'{$value}'"; } } $row[modinid] = $_POST[modinid]; $columns = array_keys($row); $values = array_values($row); $one = NULL; $one = array(); $sizeof = count($columns); foreach ($columns as $key => $value) { $one[$key] = $columns[$key] . " = " . $values[$key]; } $uvalues = join(",", array_values($one)); $query = "UPDATE {$contacts_table} set {$uvalues} where id = {$names[$name]};"; echo "<br><br>{$query}\n"; $ok = $dbcon->Execute($query); if (!$ok) { die($dbcon->ErrorMsg()); } else { $newdata = true; } report_success("updated record for {$row['Organization']}."); continue; } } foreach ($row as $column => $value) { if ($value == '') { unset($row[$column]); } else { $row[$column] = "'{$value}'"; } } $row[modinid] = $_POST[modinid]; $columns = join(",", array_keys($row)); $values = join(",", array_values($row)); $query = "INSERT INTO {$contacts_table} ({$columns}) VALUES({$values});"; //echo "<br><br>$query\n"; $ok = $dbcon->Execute($query); if (!$ok) { die($dbcon->ErrorMsg()); } else { $newdata = true; } report_success("added new record for {$row['Organization']}."); } if (!$newdata) { report_success("No action performed: the uploaded file contained no new records."); } $dbcon->Close(); }
if ($user['password'] != md5($_POST['password_old'])) { PEAR::raiseError('You provided a wrong old password.'); break; } } if ($_POST['password'] != $_POST['password2']) { PEAR::raiseError('The new passwords do not match.'); break; } $data = array('password' => md5($_POST['password']), 'handle' => $handle); $result = user::update($data); if ($result) { // TODO do the SVN push here $expire = !empty($_POST['PEAR_PERSIST']) ? 2147483647 : 0; setcookie('PEAR_PW', md5($_POST['password']), $expire, '/'); report_success('Your password was successfully updated.'); } } $dbh->setFetchmode(DB_FETCHMODE_ASSOC); $row = $dbh->getRow('SELECT * FROM users WHERE handle = ?', array($handle)); if ($row === null) { error_handler(htmlspecialchars($handle) . ' is not a valid account name.', 'Invalid Account'); } $csrf_token_value = create_csrf_token($csrf_token_name); $form = new HTML_QuickForm2('account-edit', 'post'); $form->removeAttribute('name'); // Set defaults for the form elements $form->addDataSource(new HTML_QuickForm2_DataSource_Array(array('active' => htmlspecialchars($row['active']), 'name' => htmlspecialchars($row['name']), 'email' => htmlspecialchars($row['email']), 'showemail' => htmlspecialchars($row['showemail']), 'homepage' => htmlspecialchars($row['homepage']), 'wishlist' => htmlspecialchars($row['wishlist']), 'pgpkeyid' => htmlspecialchars($row['pgpkeyid']), 'userinfo' => htmlspecialchars($row['userinfo']), 'latitude' => htmlspecialchars($row['latitude']), 'longitude' => htmlspecialchars($row['longitude'])))); $form->addElement('checkbox', 'active')->setLabel('Active User?'); $form->addElement('text', 'name', 'accesskey="n"')->setLabel('<span class="accesskey">N</span>ame:'); $form->addElement('email', 'email')->setLabel('Email:');
if ($_POST['text'] == '') { $errors[] = 'You have to specify the text of your correspondence.'; } if (!empty($_SESSION['last_email_sent']) && $_SESSION['last_email_sent'] > time() - 5) { $errors[] = 'Wait a few seconds before sending more email.'; } if (!report_error($errors)) { $text = "[This message has been brought to you via " . PEAR_CHANNELNAME . ".]\n\n"; $text .= wordwrap($_POST['text'], 72); if ($auth_user) { $text .= "\n\nvia PEAR account:"; $text .= print_r(array('email' => $auth_user->email, 'name' => $auth_user->name), true); } $_SESSION['last_email_sent'] = time(); if (@mail($row['email'], $_POST['subject'], $text, 'From: "' . $_POST['name'] . '" <' . $_POST['email'] . '>', '-f bounce-no-user@php.net')) { report_success('Your message was successfully sent.'); if (!empty($_POST['copy_me'])) { $text = "This is a copy of your mail sent to " . $row['email'] . ":\n\n" . $text; @mail($_POST['email'], $_POST['subject'], $text, 'From: "' . $_POST['name'] . '" <' . $_POST['email'] . '>', '-f bounce-no-user@php.net'); } } else { report_error('The server could not send your message, sorry.'); } } else { printForm($_POST); } } else { echo '<p>If you want to get in contact with one of the PEAR contributors,' . ' you can do this by filling out the following form.</p>'; echo '<p style="font-weight: bold; font-size: 110%; color: red;">' . 'Do not send email to this developer if you are in need of support for' . ' any of his/her package(s), instead we recommend' . ' emailing ' . PEAR_GENERAL_EMAIL . ' where you are more likely to get answer.<br />' . ' You can subscribe to the pear-general mailinglist from the ' . make_link('/support/lists.php', 'Support - Mailinglist') . ' page.</p>'; // Guess the user if he is logged in if ($auth_user) {
if (isset($_POST['tags']) && is_array($_POST['tags'])) { $manager = new Tags_Manager(); $manager->clearTags($_POST['name']); foreach ($_POST['tags'] as $tag) { if (!$tag) { continue; } $manager->createPackageTag($tag, $_POST['name']); } } include_once 'pear-rest.php'; $pear_rest = new pearweb_Channel_REST_Generator(PEAR_REST_PATH, $dbh); $pear_rest->saveAllPackagesREST(); $pear_rest->savePackageREST($_POST['name']); $pear_rest->savePackagesCategoryREST(package::info($_POST['name'], 'category')); report_success('Package information successfully updated.'); } } } else { if (isset($_GET['action'])) { switch ($_GET['action']) { case 'release_remove': if (!isset($_GET['release'])) { report_error('Missing package ID!'); break; } include_once 'pear-database-release.php'; if (release::remove($_GET['id'], $_GET['release'])) { echo "<b>Release successfully deleted.</b><br /><br />\n"; } else { report_error('An error occured while deleting the release!');
// The add method performs further validation then creates the account include_once 'pear-database-user.php'; $ok = user::add($stripped); if (PEAR::isError($ok)) { $errors[] = 'This email address has already been registered by another user'; $display_form = true; break; } if (isset($stripped['display_form'])) { $display_form = $stripped['display_form']; } if (is_array($ok)) { $errors = $ok; break; } elseif ($ok === true) { report_success('Your account request has been submitted, it will' . ' be reviewed by a human shortly. This may take from' . ' two minutes to several days, depending on how much' . ' time people have.' . ' You will get an email when your account is open,' . ' or if your request was rejected for some reason.'); $mailData = array('username' => $stripped['handle'], 'firstname' => $stripped['firstname'], 'lastname' => $stripped['lastname'], 'package' => $stripped['existingpackage']); if (!DEVBOX) { $mailer = Damblan_Mailer::create('pearweb_account_request', $mailData); $additionalHeaders['To'] = PEAR_GROUP_EMAIL; $mailer->send($additionalHeaders); } } elseif ($ok === false) { $msg = 'Your account request has been submitted, but there' . ' were problems mailing one or more administrators.' . ' If you don\'t hear anything about your account in' . ' a few days, please drop a mail about it to the' . ' <i>pear-dev</i> mailing list.'; report_error($msg, 'warnings', 'WARNING:'); } $display_form = false; } } while (0); try { $sHelper = new Pearweb_Service_HoneyPot(HONEYPOT_API_KEY);
exit; } if (!package_exists($_REQUEST['package'])) { $errors[] = 'Package "' . $clean_package . '" does not exist.'; response_header("Report - Invalid package"); report_error($errors); response_footer(); exit; } response_header('Report - New'); // See if this package uses an external bug system require_once 'bugs/pear-bugs-utils.php'; $bug_link = PEAR_Bugs_Utils::getExternalSystem($clean_package); if (!empty($bug_link)) { $link = make_link($bug_link); report_success($clean_package . ' has an external bug system that can be reached at ' . $link); response_footer(); exit; } if (!isset($_POST['in'])) { $_POST['in'] = array('package_name' => '', 'bug_type' => '', 'email' => '', 'handle' => '', 'sdesc' => '', 'ldesc' => '', 'repcode' => '', 'expres' => '', 'actres' => '', 'package_version' => '', 'php_version' => '', 'php_os' => '', 'passwd' => ''); show_bugs_menu($clean_package); try { $sHelper = new Pearweb_Service_HoneyPot(HONEYPOT_API_KEY); $ip = $_SERVER['REMOTE_ADDR']; $sHelper->check($ip); } catch (Exception $e) { if (!isset($auth_user)) { report_error($e); $display_form = false; response_footer();
* @author Tobias Schlitt <*****@*****.**> * @author Daniel Convissor <*****@*****.**> * @copyright Copyright (c) 1997-2005 The PHP Group * @license http://www.php.net/license/3_0.txt PHP License * @version $Id$ */ /** * Obtain the common functions and classes. */ require_once 'pepr/pepr.php'; require_once 'HTML/QuickForm2.php'; auth_require('pear.pepr'); if (!empty($_GET['isDeleted'])) { response_header('PEPr :: Delete'); echo "<h1>Delete Proposal</h1>\n"; report_success('Proposal deleted successfully.'); echo '<p>'; echo make_link('/pepr/', 'Back to PEPr Home Page'); echo "</p>\n"; response_footer(); exit; } if (empty($_GET['id'])) { response_header('PEPr :: Delete :: Invalid Request'); echo "<h1>Delete Proposal</h1>\n"; report_error('The requested proposal does not exist.'); response_footer(); exit; } $proposal = proposal::get($dbh, $_GET['id']); if (!$proposal) {