Issue Tracker

Submission disallowed due to disallowed word or phrase: " . htmlentities($word) . "

"; return; } } // Validate form data if (empty($title) || empty($description)) { echo "

Please fill out all fields.

"; } else { // Save issue to file $filename = 'issues.txt'; $handle = fopen($filename, 'a'); fwrite($handle, $title . '|' . $description . '|' . time() . "\n"); fclose($handle); echo "

Issue saved successfully.

"; } } // Read issues from file $filename = 'issues.txt'; if (file_exists($filename)) { $handle = fopen($filename, 'r'); $issues = array(); $solved_issues = array(); while (($line = fgets($handle)) !== false) { $parts = explode('|', $line); if (count($parts) == 3) { $parts[1] = preg_replace( '@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@i', '$1', $parts[1] ); $issue = array( 'title' => $parts[0], 'description' => $parts[1], 'date_added' => $parts[2] ); if (stripos($issue['title'], 'solved') !== false || stripos($issue['description'], 'solved') !== false) { $solved_issues[] = $issue; } else { $issues[] = $issue; } } } fclose($handle); // Sort issues by date added (most recent first) usort($issues, function($a, $b) { return $b['date_added'] - $a['date_added']; }); // Display all issues in a table echo '

All Issues

'; echo ''; echo ''; foreach ($issues as $issue) { echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
TitleDescriptionDate Added
' . $issue['title'] . '' . $issue['description'] . '' . date('Y-m-dH-m-s', $issue['date_added']) . '
'; // Display solved issues in a separate table if (!empty($solved_issues)) { echo '

Solved Issues

'; echo ''; echo ''; foreach ($solved_issues as $issue) { echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
TitleDescriptionDate Added
' . $issue['title'] . '' . $issue['description'] . '' . date('Y-m-d H:i:s', $issue['date_added']) . '
'; } } else { echo "

No issues have been submitted yet.

"; } ?>

Submit a New Issue