<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>INFO 214 Assignment 1 Minimum Requirement Tester: Results</title> <meta name="generator" content="BBEdit 9.6" /> <link rel="Stylesheet" href="http://info-nts-12.otago.ac.nz/INFO214/db_styles.css" type="text/css" /> <style type="text/css" media="screen"> .greenbg { background-color: green; color: white; } .result { padding: 8px; } </style> </head> <body> <h1>INFO 214 Assignment 1 Minimum Requirement Tester: Results</h1> <h2>Key</h2> <table> <tr> <td class="blackboard grey-light result"><strong>Note:</strong> These messages are just for information.</td> <td class="blackboard yellow-ou result"><strong style="font-size: large">%</strong> <strong>Incomplete:</strong> A test was not completed. It may or may not be a problem.</td> </tr> <tr> <td class="blackboard greenbg result"><span style="font-size: large">✔</span> <strong>Passed:</strong> Your schema passed a test. You want as many of these as possible!</td> <td class="blackboard yellow-ou result"><strong style="font-size: large">⚠</strong> <strong>Warning:</strong> This is a warning. It may or may not be a problem.</td> </tr> <tr> <td class="blackboard red-ou result"><span style="font-size: large">✘</span> <strong>Failed:</strong> Your schema failed a test. You want none of these!</td> <td class="blackboard result"><strong style="font-size: large">#</strong> <strong>Skipped:</strong> A test was skipped. It may or may not be a problem.</td> </tr> <tr> <td class="blackboard red-ou result"><span style="font-size: large">☠</span> <strong>Error:</strong> There was an error on the server—please <a href="mailto:nigel.stanger@otago.ac.nz">contact Nigel</a>.</td> <td /> </tr> </table> <hr /> <div class="blackboard grey-light result"> <p>Your results may take a few seconds to appear below. If your schema passes all the tests then you have met the minimum requirement for Assignment 1 and should score at least 50%. Your final submission will be marked using an extended version of this schema checking tool.</p> <p>Note that the <em>first</em> sentence of any failure message is the most important one. The second sentence is generated by the software framework this tool is built on and may sometimes be a bit obscure. For example, if a table or column is missing or mis-named, you will see something like “Failed asserting that 0 matches expected 1.” This can safely be ignored. More subtly, suppose you declare a column of type <code>NUMBER</code> with no length, when a maximum length is specified. Oracle’s <code>NUMBER</code> data type defaults to a length of 38 digits, so failure messages will refer to the value “38”. Again, this can be ignored.</p> <p>If you are unsure about anything in the report, please contact one of the teaching staff.</p> </div> <div style="border: 2px solid grey; width: 50%; padding: 1em 4em 1em 4em;"> <?php try { if ( empty( $_POST['username'] ) ) throw new Exception( 'No username entered. Please return to the login page and try again.' ); if ( empty( $_POST['password'] ) ) throw new Exception( 'No password entered. Please return to the login page and try again.' ); // Define things that need to be globally accessible as constants. define( 'ORACLE_USERNAME', $_POST['username'] ); define( 'ORACLE_PASSWORD', $_POST['password'] ); $outputMode = 'HTML'; define( 'OUTPUT_VERBOSITY', 2 ); define( 'RUN_MODE', 'student' ); $logMessage = sprintf( '%s: user %s connected%s', date( 'Y-m-d H:i:s' ), ORACLE_USERNAME, "\n" ); file_put_contents( 'logs/connect.log', $logMessage, FILE_APPEND | LOCK_EX ); require_once 'test_config.php'; // Test that the database connection works. $testPDO = new PDO( "oci:dbname=" . ORACLE_SERVICE_ID, ORACLE_USERNAME, ORACLE_PASSWORD ); unset( $testPDO ); require_once 'test.php'; } catch ( PDOException $e ) { echo '<p class="blackboard red-ou result"><span style="font-size: large">☠</span> <strong>Error:</strong> '; switch ( $e->getCode() ) { case 1017: echo 'Oracle username and/or password are incorrect, cannot connect to schema. Please check your login details and try again.'; break; default: echo 'Failed to connect to Oracle, error was:<br /><span class="blackboard">'; echo $e->getMessage(); echo '</span>'; break; } echo "</p>\n"; redirect(); } catch ( Exception $e ) { echo '<p class="blackboard red-ou result"><span style="font-size: large">☠</span> <strong>Error:</strong> ', $e->getMessage(), "</p>\n"; redirect(); } function redirect() { echo '<p class="blackboard grey-light result">Redirecting you back to the login page in a few seconds…</p>'; header( "refresh:7;url=student_login.html" ); } ?> </div> </body> </html>