Commit 4ecac790 authored by Sorrel Harriet's avatar Sorrel Harriet
Browse files

cleaning out lab exercises. Archived old ones, will add to teaching resources repo

parent 9d51141c
<?php
error_reporting( E_ALL );
ini_set( "display_errors", 1 );
include '../../../config.php';
$db = new PDO( $dbInfo, $dbUser, $dbPassword );
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$title = "PHP/MySQL blog demo";
$css="css/blog.css";
$embeddedStyle = "";
include_once "views/header.php";
include_once "views/admin/admin-navigation.php";
$navigation = isset( $_GET['page'] );
if ( $navigation ) {
//prepare to load corresponding controller
$contrl = $_GET['page'];
} else {
//or prepare to load default controller
$contrl = "entries";
}
//load the controller
include_once "controllers/admin/$contrl.php";
include_once "views/footer.php";
?>
<?php
include_once "models/Blog_Entry_Table.class.php";
$entryTable = new Blog_Entry_Table( $db );
//was editor form submitted?
$editorSubmitted = isset( $_POST['action'] );
if ( $editorSubmitted ) {
$buttonClicked = $_POST['action'];
//was "save" button clicked
$insertNewEntry = ( $buttonClicked === 'save' );
if ( $insertNewEntry ) {
$title = $_POST['title'];
$entry = $_POST['entry'];
//save the new entry
$entryTable->saveEntry( $title, $entry );
}
}
include_once "views/admin/editor-html.php";
?>
-- this will create a table for blog entries
CREATE TABLE blog_entry (
entry_id INT NOT NULL AUTO_INCREMENT,
title VARCHAR( 150 ),
entry_text TEXT,
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY ( entry_id )
)
/* code listing for blog/css/blog.css */
form#editor{
width: 300px;
margin:0px;
padding:0px;
}
form#editor label, form#editor input[type='text']{
display:block;
}
form#editor #editor-buttons{
border:none;
text-align:right;
}
form#editor textarea, form#editor input[type='text']{
width:90%;
margin-bottom:2em;
}
form#editor textarea{
height:10em;
}
<?php
class Blog_Entry_Table {
private $db;
public function __construct ( $db ) {
$this->db = $db;
}
public function saveEntry ( $title, $entry ) {
$entrySQL = "INSERT INTO blog_entry ( title, entry_text )
VALUES ( ?, ?)";
$entryStatement = $this->db->prepare( $entrySQL );
$formData = array( $title, $entry );
try{
$entryStatement->execute( $formData );
} catch (Exception $e){
$msg = "<p>You tried to run this sql: $entrySQL<p>
<p>Exception: $e</p>";
trigger_error($msg);
}
}
}
<?php
$out = "
<nav id='admin-navigation'>
<a href='admin.php?page=entries'>All entries</a>
<a href='admin.php?page=editor'>Editor</a>
</nav>";
echo $out;
?>
<?php
$out = "
<form method='post' action='admin.php?page=editor' id='editor'>
<fieldset>
<legend>New Entry Submission</legend>
<label>Title</label>
<input type='text' name='title' maxlength='150' />
<label>Entry</label>
<textarea name='entry'></textarea>
<fieldset id='editor-buttons'>
<input type='submit' name='action' value='save' />
</fieldset>
</fieldset>
</form>
";
echo $out;
?>
<?php
$entriesAsHTML = "<ul>";
while ( $entry = $allEntries->fetchObject() ) {
$href = "admin.php?page=editor&amp;id=$entry->entry_id";
$entriesAsHTML .= "<li><a href='$href'>$entry->title</a></li>";
}
$entriesAsHTML .= "</ul>";
echo $entriesAsHTML;
?>
<?php
$out = "
</body>
</html>
";
echo $out;
?>
<?php
$out = "<!DOCTYPE html>
<html>
<head>
<title>$title</title>
<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />
<link rel='stylesheet' type='text/css' href='$css'>
<link rel='stylesheet' type='text/css' href='$embeddedStyle'>
</head>";
echo $out;
?>
<?php
error_reporting( E_ALL );
ini_set( "display_errors", 1 );
include_once "../../../coursework_blog_config.php";
$db = new PDO( $dbInfo, $dbUser, $dbPassword );
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$title = "PHP/MySQL blog demo";
$css="css/blog.css";
$embeddedStyle = "";
include_once "views/header.php";
include_once "views/admin/admin-navigation.php";
$navigation = isset( $_GET['page'] );
if ( $navigation ) {
//prepare to load corresponding controller
$contrl = $_GET['page'];
} else {
//or prepare to load default controller
$contrl = "entries";
}
//load the controller
include_once "controllers/admin/$contrl.php";
include_once "views/footer.php";
?>
<?php
include_once "models/Table.class.php";
include_once "models/Blog_Entry_Table.class.php";
$entryTable = new Blog_Entry_Table( $db );
//was editor form submitted?
$editorSubmitted = isset( $_POST['action'] );
if ( $editorSubmitted ) {
$buttonClicked = $_POST['action'];
$id = $_POST['id'];
$save = ($buttonClicked === 'save');
$insertNewEntry = ( $save and $id === '0' );
$updateEntry = ( $save and $insertNewEntry === false );
$deleteEntry = ($buttonClicked === 'delete');
$title = $_POST['title'];
$entry = $_POST['entry'];
if ( $insertNewEntry ) {
$savedEntryId = $entryTable->saveEntry( $title, $entry );
} else if ( $updateEntry ){
$entryTable->updateEntry( $id, $title, $entry );
$savedEntryId = $id;
} else if ( $deleteEntry ) {
$entryTable->deleteEntry( $id );
}
}
$entryRequested = isset( $_GET['id'] );
$entrySaved = isset( $savedEntryId );
if ( $entryRequested ) {
$id = $_GET['id'];
$entryData = $entryTable->getEntry( $id );
$entryData->entry_id = $id;
$entryData->message = "";
} else if ( $entrySaved ) {
$entryData = $entryTable->getEntry( $savedEntryId );
$entryData->message = "Entry was saved";
} else {
$entryData = new StdClass();
$entryData->entry_id = 0;
$entryData->title = "";
$entryData->entry_text = "";
$entryData->message = "";
}
include_once "views/admin/editor-html.php";
?>
<?
include_once "models/Table.class.php";
include_once "models/Blog_Entry_Table.class.php";
$entryTable = new Blog_Entry_Table( $db );
$allEntries = $entryTable->getAllEntries();
include_once "views/admin/entries-html.php";
?>
<?php
include_once "models/Table.class.php";
include_once "models/Admin_Table.class.php";
$createNewAdmin = isset( $_POST['new-admin'] );
if( $createNewAdmin ) {
$newEmail = $_POST['email'];
$newPassword = $_POST['password'];
$adminTable = new Admin_Table($db);
try {
$adminTable->create( $newEmail, $newPassword );
$adminFormMessage = "New user created";
} catch ( Exception $e ) {
$adminFormMessage = $e->getMessage();
}
}
include_once "views/admin/new-admin-form-html.php";
<?
include_once "models/Table.class.php";
include_once "models/Blog_Entry_Table.class.php";
$entryTable = new Blog_Entry_Table( $db );
$entryClicked = isset( $_GET['id'] );
if ($entryClicked ) {
$entryId = $_GET['id'];
$entryData = $entryTable->getEntry( $entryId );
// print_r($entryData);
include_once "views/entry-html.php";
} else {
$entries = $entryTable->getallentries();
include_once "views/list-entries-html.php";
}
?>
-- this will create a table for blog entries
CREATE TABLE blog_entry (
entry_id INT NOT NULL AUTO_INCREMENT,
title VARCHAR( 150 ),
entry_text TEXT,
date_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY ( entry_id )
)
-- this will create a table for admin users
CREATE TABLE admin (
admin_id INT NOT NULL AUTO_INCREMENT,
email TEXT,
password VARCHAR( 32 ),
PRIMARY KEY ( admin_id )
)
/* code listing for blog/css/blog.css */
form#editor{
width: 300px;
margin:0px;
padding:0px;
}
form#editor label, form#editor input[type='text']{
display:block;
}
form#editor #editor-buttons{
border:none;
text-align:right;
}
form#editor textarea, form#editor input[type='text']{
width:90%;
margin-bottom:2em;
}
form#editor textarea{
height:10em;
}
<?php
error_reporting( E_ALL );
ini_set( "display_errors", 1 );
include_once "../../../coursework_blog_config.php";
$db = new PDO( $dbInfo, $dbUser, $dbPassword );
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$title = "PHP/MySQL blog demo";
$css="css/blog.css";
$embeddedStyle = "";
include_once "views/header.php";
include_once "controllers/blog.php";
include_once "views/footer.php";
?>
<?
class Admin_Table extends Table {
public function create ( $email, $password ) {
//check if e-mail is available
$this->checkEmail( $email );
//encrypt password with MD5
$sql = "INSERT INTO admin ( email, password )
VALUES( ?, SHA1(?) )";
$data= array( $email, $password );
$this->makeStatement( $sql, $data );
}
private function checkEmail ($email) {
$sql = "SELECT email FROM admin WHERE email = ?";
$data = array( $email );
$this->makeStatement( $sql, $data );
$statement = $this->makeStatement( $sql, $data );
if ( $statement->rowCount() === 1 ) {
$e = new Exception("Error: '$email' already used!");
throw $e;
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment