Web Hosting Talk







View Full Version : Tutorial CMS


ethereality
07-19-2005, 10:41 PM
HI. I've recently created a tutorial cms (content management system) out of a tutorial. But, whenever I try and create a tutorial, it gives me an error. Not a php error.

Here's the code:

//tutorials.php
<?php

//Getting the file db.php which includes our database settings.
define( 'DB_PATH' , "./" );
require DB_PATH."db.php";


//Setting up a variable to request the category which is in the URL
$request_cat = $_REQUEST['category'];


//Displaying an actual tutorial
if (isset($id)) {

// Updating the views, and grabbing a tutorial based on what id it has.
$update = mysql_query("UPDATE $mysql_table SET views = views + 1 WHERE id='$id'");
$result = mysql_query("SELECT * FROM $mysql_table WHERE id='$id'");
while($row = mysql_fetch_array($result)){

// Template for the tutorial
echo "
<table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"400\"><table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td><table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"275\"><div align=\"left\"><strong>
<a href=\"tutorials.php?category=".$row['category']."&id=".$row['id']."\">
".$row['title']."</a>
</strong>
</div>
</td>
<td width=\"125\"><div align=\"right\">[ Views: ".$row['views']." ]</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><div align=\"left\">Description: ".$row['description']."</div></td>
</tr>
<tr>
<td><div align=\"left\">".$row['content']."</div></td>
</tr>
<tr>
<td><div align=\"left\">
<table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"150\"><div align=\"left\">Added: ".$row['date']."</div></td>
<td><div align=\"right\">Author: <a href=\"mailto:".$row['email']."\">".$row['author']."</a></div></td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td><div align=\"left\">Category: <a href=\"tutorials.php?category=".$row['category'].">".$row['category']."</a></div></td>
</tr>
</table></td>
</tr>
</table>
"; // End of template of tutorial
} // End of grabbing data
exit(); // Stopping anything below from interfearing with this sectiom
} // End of Displaying an actual tutorial


//Displaying tutorials in a cateogry.
if ($category == $request_cat) {

//Grabbing information from the database.
$result = mysql_query("SELECT * from $mysql_table where category = '$category' ORDER BY ID DESC");
while($row = mysql_fetch_array($result)) {

//Template for the tutorials in a category.
echo "
<table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" align=\"center\" valign=\"middle\"><div align=\"center\"><a href=\"tutorials.php?category=".$row['category']."&id=".$row['id']."\"><img src=\"".$row['avatar']."\" alt=\"".$row['title']."\" title=\"".$row['title']."\" width=\"90\" height=\"60\" border=\"0\"></a></div></td>
<td width=\"300\"><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td><div align=\"center\"><strong>".$row['title']."</strong></div></td>
</tr>
<tr>
<td><div align=\"left\">Description: ".$row['description']."</div></td>
</tr>
<tr>
<td><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td><div align=\"left\">Added: ".$row['date']."</div></td>
<td><div align=\"left\">Category: <a href=\"tutorials.php?category=".$row['category'].">".$row['category']."</a></div></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"175\"><div align=\"left\">Author: <a href=\"mailto:".$row['email']."\">".$row['author']."</a></div></td>
<td width=\"100\"><div align=\"left\">Views: ".$row['views']."</div></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table><br>
"; // End of Template for the tutorials in a category.
} // End of grabbing information from database.
} // End of Displaying tutorials in a cateogry.


// Main Tutorial page. This is where all your categories will be listed.
if (!$category) {

//This makes a list of all the cateogries that are in the database! No need to make the links yourself!
$result = mysql_query("SELECT DISTINCT category from $mysql_table ");
while($row = mysql_fetch_array($result)) {

// Showing all the categories
echo "
<a href=\"tutorials.php?category=".$row['category']."\">".$row['category']."</a><br>
"; // End of showing all the categories
} // End of grabbing unique categories in database
}// End of main tutorial page

?>


// admin/admin.php
<?php include('header.php');?>
<?php

//Getting the file db.php which includes our database settings.
define( 'DB_PATH' , "./" );
require DB_PATH."db.php";

// Setting up some variables
$request_id = $_REQUEST['id'];

// Page: admin.php?act=addnew
if ($act == addnew) {
echo "
<form name=\"form\" method=\"post\" action=\"admin.php?act=addnew\">
<table width=\"80%\" border=\"0\" cellspacing=\"3\" cellpadding=\"0\">
<tr>
<td width=\"20%\">Name:</td>
<td width=\"79%\"><input name=\"name\" type=\"text\" id=\"name\" size=\"40\"></td>
</tr>
<tr>
<td>Avatar:</td>
<td><input name=\"avatar\" type=\"text\" id=\"avatar\" value=\"http//\" size=\"40\"></td>
</tr>
<tr>
<td>Category:</td>
<td><input name=\"category\" type=\"text\" id=\"category\" value=\"Automatically makes new category\" size=\"40\"> </td>
</tr>
<tr>
<td>Description:</td>
<td><input name=\"description\" type=\"text\" id=\"description\" size=\"40\"></td>
</tr>
<tr>
<td>Author:</td>
<td><input name=\"author\" type=\"text\" id=\"author\" size=\"40\"></td>
</tr>
<tr>
<td>Email:</td>
<td><input name=\"email\" type=\"text\" id=\"email\" size=\"40\"></td>
</tr>
<tr>
<td>Content</td>
<td><textarea name=\"content\" cols=\"65\" rows=\"10\"></textarea></td>
</tr>
<tr>
<td><input name=\"submit\" type=\"submit\" id=\"submit\" value=\"Submit\">
<input name=\"reset\" type=\"reset\" id=\"reset\" value=\"Reset\"></td>
<td>If you mess up, a edit link will be available on submit. </td>
</tr>
</table>
</form>";

if ($_POST['submit']) {

$name = $_POST['name'];
$avatar = $_POST['avatar'];
$category = $_POST['category'];
$description = $_POST['description'];
$author = $_POST['author'];
$email = $_POST['email'];
$content = $_POST['content'];
$date = date('m-d-Y');

if (!$name || !$avatar || !$category || !$description || !$author || !$email || !$content) {
die ('Sorry, a field was left blank. Check all fields again!');
}
else {
mysql_query("INSERT INTO & #036;mysql_table(id,title,avatar,date,category,description,author,email,content,
views) VALUES('','$name','$avatar','$date','$category','$description','$author','$email','$content','')") or die('Sorry, it failed');
echo "Success! You have added the tutorial <strong>$name</strong> to the category <strong>$category.</strong><br>What would you like to do?<br><a href=\"?act=addnew\">Add a new tutorial</a> &nbsp; ----&nbsp; <a href=\"?act=view\">Edit / Delete a previous tutorial</a>";
}
}
}


// Page: admin.php?act=edit&id=##
if ($act == edit && $id == $request_id) {
$result = mysql_query("SELECT * FROM $mysql_table WHERE id='$request_id'");
while($row = mysql_fetch_array($result)){
echo "
<form name=\"form\" method=\"post\" action=\"admin.php?act=edit&id=$request_id\">
<table width=\"80%\" border=\"0\" cellspacing=\"3\" cellpadding=\"0\">
<tr>
<td width=\"20%\">Name:</td>
<td width=\"79%\"><input name=\"name\" type=\"text\" id=\"name\" value=\"".$row['title']."\" size=\"40\"></td>
</tr>
<tr>
<td>Avatar:</td>
<td><input name=\"avatar\" type=\"text\" id=\"avatar\" value=\"".$row['avatar']."\" size=\"40\"></td>
</tr>
<tr>
<td>Category:</td>
<td><input name=\"category\" type=\"text\" id=\"category\" value=\"".$row['category']."\" size=\"40\"> </td>
</tr>
<tr>
<td>Description:</td>
<td><input name=\"description\" type=\"text\" id=\"description\" value=\"".$row['description']."\" size=\"40\"></td>
</tr>
<tr>
<td>Author:</td>
<td><input name=\"author\" type=\"text\" id=\"author\" value=\"".$row['author']."\" size=\"40\"></td>
</tr>
<tr>
<td>Email:</td>
<td><input name=\"email\" type=\"text\" id=\"email\" value=\"".$row['email']."\" size=\"40\"></td>
</tr>
<tr>
<td>Content</td>
<td><textarea name=\"content\" cols=\"65\" rows=\"10\">".$row['content']."</textarea></td>
</tr>
<tr>
<td><input name=\"submit\" type=\"submit\" id=\"submit\" value=\"Edit\"></td>
<td></td>
</tr>
</table>
</form>
";

if ($_POST['submit']) {

$name = $_POST['name'];
$avatar = $_POST['avatar'];
$category = $_POST['category'];
$description = $_POST['description'];
$author = $_POST['author'];
$email = $_POST['email'];
$content = $_POST['content'];

mysql_query("UPDATE $mysql_table SET title='$name', avatar='$avatar', category='$category', description='$description', author='$author', email='$email', content='$content' WHERE id='$request_id'") or die('Sorry, it failed');
echo "Success! Your tutorial has been edited.<br>What would you like to do?<br>
<a href=\"?act=addnew\">Add a new tutorial</a> &nbsp; ----&nbsp;
<a href=\"?act=view\">Edit / Delete a previous tutorial</a>";
}
}
}

// Page: admin.php?act=delete&id=##
if ($act == delete && $id == $request_id) {
$result = mysql_query("SELECT * FROM $mysql_table WHERE id='$request_id'");
while($row = mysql_fetch_array($result)){

echo "
<form action='?act=delete&id=".$row['id']."' method='post' name='form1'>
Are you sure you want to delete the tutorial: <strong>".$row['title']."<strong>?
<br>
<input name='yes' type='checkbox' id='yes' value='checkbox'>
Yes<br>
<input name='no' type='checkbox' id='no' value='checkbox'>
No
<br>
<input name='submit' type='submit' id='submit' value='Submit'>
</form>";
}

if ($_POST['submit']){

if ($_POST['yes'] && $_POST['no']){
die('Error! : Are you trying to confuse me?');
}

if ($_POST['yes']){

$result = mysql_query("SELECT * FROM $mysql_table WHERE id='$request_id'");
while($row = mysql_fetch_array($result)){

mysql_query("DELETE FROM $mysql_table WHERE id='$request_id'");
echo "
Thanks, the tutorial <strong>".$row['title'].".</strong> has been deleted. <a href='?'>Click here</a> to continue.
";
}
}

if ($_POST['no']){
die('<a href="?">Click here</a> to continue.');
}

if (!$_POST['yes'] && !$_POST['no']){
die('Oops, you forgot to respond to my question.');
}


}
}



// Page: admin.php?act=view
if ($act == view) {
echo "
<table width=\"700\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td><strong>ID</strong></td>
<td><strong>Name</strong></td>
<td><strong>Author</strong></td>
<td><strong>Category</strong></td>
<td><strong>Edit / Delete</strong></td>
</tr>
";
$result = mysql_query("SELECT * FROM $mysql_table ORDER BY ID ASC");
while($row = mysql_fetch_array($result)){
echo "
<tr>
<td>".$row['id']."</td>
<td>".$row['title']."</td>
<td><a href=\"mailto:".$row['email']."\">".$row['author']."</a></td>
<td>".$row['category']."</td>
<td><a href=\"admin.php?act=edit&id=".$row['id']."\">Edit</a> / <a href=\"admin.php?act=delete&id=".$row['id']."\">Delete</a></td>
</tr>
";
}
echo "</table>";
}

// Page: admin.php
if (!$act) {
echo "
What would you like to do?<br><a href=\"?act=addnew\">Add a new tutorial</a> &nbsp; ----&nbsp; <a href=\"?act=view\">Edit / Delete a previous tutorial </a>
";
}
?>
<?php include('footer.php');?>


I'm guessing the problem is in here:

if ($_POST['submit']) {

$name = $_POST['name'];
$avatar = $_POST['avatar'];
$category = $_POST['category'];
$description = $_POST['description'];
$author = $_POST['author'];
$email = $_POST['email'];
$content = $_POST['content'];
$date = date('m-d-Y');

if (!$name || !$avatar || !$category || !$description || !$author || !$email || !$content) {
die ('Sorry, a field was left blank. Check all fields again!');
}
else {
mysql_query("INSERT INTO & #036;mysql_table(id,title,avatar,date,category,description,author,email,content,
views) VALUES('','$name','$avatar','$date','$category','$description','$author','$email','$content','')") or die('Sorry, it failed');
echo "Success! You have added the tutorial <strong>$name</strong> to the category <strong>$category.</strong>
<br>What would you like to do?<br>
<a href=\"?act=addnew\">Add a new tutorial</a> &nbsp; ----&nbsp;
<a href=\"?act=view\">Edit / Delete a previous tutorial</a>";
}
}
}


EDIT: Don't know if this will help but here's the install.php file that isntalled the mySQL:


<title>Installer</title>
<?php

//Getting the file db.php which includes our database settings.
define( 'DB_PATH' , "./" );
require DB_PATH."db.php";

//Installing
mysql_query("
CREATE TABLE `$mysql_table` (
`id` tinyint(11) NOT NULL auto_increment,
`title` text NOT NULL,
`avatar` text NOT NULL,
`date` varchar(50) NOT NULL,
`category` varchar(25) NOT NULL default '',
`description` text NOT NULL,
`author` text NOT NULL,
`email` text NOT NULL,
`content` text NOT NULL,
`views` varchar( 30 ) NOT NULL default '0',
PRIMARY KEY (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
")
or die('Error, something is wrong. Please make sure all information is correct and try again.');

echo "Install Complete! All the tables have been installed, and you are all set! This file has been deleted for security purposes. If not, please delete it manually.";

?>

Hopefully you understand the code. I really need help on this.

Sorry for the long code.

maxymizer
07-20-2005, 12:13 AM
You could have posted which error message you get.
From the glimpse of it, I noticed one possible error:

mysql_query("INSERT INTO & #036;

Remove the bolded part from your code.
It's located under your "I'm guessing the problem is in here:".
If that doesn't correct it, please post which error message you get.

ethereality
07-20-2005, 12:15 AM
I see... it wasn't a php/server error, it was the message that the code puts out if the tutorial submission didn't work.



$

ethereality
07-20-2005, 01:35 AM
Okay, I'm getting a weird error now.


Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/dylan/public_html/tutorials.php on line 447

Line 447:

<span align=\"right\">Category: <a href=\"tutorials.php?category=".$row['category'].\">".$row['category']."</a></span></td>

adaml
07-20-2005, 05:19 AM
Has anyone else had a problem with the tutorial? As it looks like all the code is wrong. Or you have dont something wrong!

ethereality
07-20-2005, 06:46 AM
The original tutorial: http://www.forums.pixel-designz.net/index.php?showtopic=975

I've edited it and fixed one error. Then I changed the ouput of the tutorial template. That's where I'm having the problem.

Here's the PHP source file for tutorials.php:
http://ethereality.third-reality.net/tutorials.phps

RobertMaltby
07-20-2005, 10:52 AM
<span align=\"right\">Category: <a href=\"tutorials.php?category=".$row['category'].\">".$row['category']."</a></span></td>


Avoid " whenever possible... they parse slower then '....

Also try this:

<span align='right'>Category: <a href=\"tutorials.php?category=$row['category']\">$row['category']</a></span></td>