I'm still extremely new to php, and am trying to become a developer instead of a designer. Right now I'm trying to conquer a huge project for my skills. I basically want to create a site where users will be able to write articles on there own local sports. I found a couple scripts on the internet and am dissecting them to figure out how they work.
I want the pages on the site to be dynamically created. (i.e. http://mysitename.com/index.php?post=1&user=sportsman )
I've found a helpful script that creates a post on the site, and to create an article you click on a link that looks like http://localhost/display.php?admin=1
I saw where they got this in the code, but when I tried to recreate with my own code, it didn't work.
Here's the files:
newarticle.php
PHP Code:
<?php
class simpleCMS {
var $host; var $username; var $password; var $table;
public function display_public() { $q = "SELECT * FROM testDB ORDER BY created DESC LIMIT 3"; $r = mysql_query($q);
if ( $r !== false && mysql_num_rows($r) > 0 ) { while ( $a = mysql_fetch_assoc($r) ) { $title = stripslashes($a['title']); $bodytext = stripslashes($a['bodytext']);
$entry_display .= <<<ENTRY_DISPLAY
<div class="post"> <h2> $title </h2> <p> $bodytext </p> </div>
ENTRY_DISPLAY; } } else { $entry_display = <<<ENTRY_DISPLAY
<h2> This Page Is Under Construction </h2> <p> No entries have been made on this page. Please check back soon, or click the link below to add an entry! </p>
ENTRY_DISPLAY; } $entry_display .= <<<ADMIN_OPTION
<p class="admin_link"> <a href="{$_SERVER['PHP_SELF']}?admin=1">Add a New Entry</a> </p>
ADMIN_OPTION;
return $entry_display; }
public function display_admin() { return <<<ADMIN_FORM
<form action="{$_SERVER['PHP_SELF']}" method="post"> <label for="title">Title:</label><br /> <input name="title" id="title" type="text" maxlength="150" /> <div class="clear"></div> <label for="bodytext">Body Text:</label><br /> <textarea name="bodytext" id="bodytext"></textarea> <div class="clear"></div> <input type="submit" value="Create This Entry!" /> </form> <br /> <a href="display.php">Back to Home</a>
ADMIN_FORM; }
public function write($p) { if ( $_POST['title'] ) $title = mysql_real_escape_string($_POST['title']); if ( $_POST['bodytext']) $bodytext = mysql_real_escape_string($_POST['bodytext']); if ( $title && $bodytext ) { $created = time(); $sql = "INSERT INTO testDB VALUES('$title','$bodytext','$created')"; return mysql_query($sql); } else { return false; } }
public function connect() { mysql_connect($this->host,$this->username,$this->password) or die("Could not connect. " . mysql_error()); mysql_select_db($this->table) or die("Could not select database. " . mysql_error());
return $this->buildDB(); }
private function buildDB() { $sql = <<<MySQL_QUERY CREATE TABLE IF NOT EXISTS testDB ( title VARCHAR(150), bodytext TEXT, created VARCHAR(100) ) MySQL_QUERY;
return mysql_query($sql); }
}
?>
display.php
PHP Code:
<html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Simple CMS with PHP</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head>
<body> <div id="page-wrap"> <?php include_once('newarticle.php'); $obj = new simpleCMS();
/* CHANGE THESE SETTINGS FOR YOUR OWN DATABASE */ $obj->host = 'localhost'; $obj->username = 'username'; $obj->password = 'db_password'; $obj->table = 'database_name'; $obj->connect(); if ( $_POST ) $obj->write($_POST); echo ( $_GET['admin'] == 1 ) ? $obj->display_admin() : $obj->display_public(); ?> </div> </body>
</html>
I was hoping someone with a little more experience could help me out. I'm not asking for a full page of code, because I really want to learn how this works. If you could just point me in the right direction it would be great.
Thanks
__________________
Alex
|