Jump to content
xisto Community
Sign in to follow this  
msabas

Scripting For A Tutorial Submit Site

Recommended Posts

I am very interested in learning how to create or start my own tutorial submitt site. What do I need to learn ? What do I need to have.

 

Is there a script that can be made up or a software?

 

What I would like to do is start my own tutorial submit site. something similar to good-tutorials and or pixel2life except those sites are really big and cover many tutoriasl for many different programs. Id like to just cover tutorials for maybe a total of 3 to 4 different programs. Im sure I need hosting a domain a site and some good forums to get something good going.

 

But the main thing i need is the script on how to create this Tutorial Submit site

 

What i found is this but im a bit confused since i do not know how to create the mysql tables portion

 

 

Features include:

 

Categories

Comments

Admin Panel

 

First off, we gotta make some MySQL tables.

 

First table:

CREATE TABLE `tutorials` (`id` int(250) NOT NULL auto_increment,`submitter` varchar(250) NOT NULL,`text` text NOT NULL,`short_description` text NOT NULL,`title` varchar(250) NOT NULL,`cat_id` int(25) NOT NULL,`date_submitted` varchar(250) NOT NULL,`time_submitted` varchar(250) NOT NULL,`show_email` tinyint(1) NOT NULL,`email` varchar(250) NOT NULL,`views` int(250) NOT NULL default '0',`is_validated` tinyint(1) NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM;

This sets up the table where all of the actual tutorials will be stored.

 

Second table:

CREATE TABLE `tutorials_categorys` (`id` int(25) NOT NULL auto_increment,`category` varchar(250) NOT NULL,`description` text NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM;

This table will make the tutorial categorys, in which the different tutorials will be shown!

 

Third table:

CREATE TABLE `tutorials_comments` (`id` int(250) NOT NULL auto_increment,`tut_id` int(250) NOT NULL,`submitter` varchar(250) NOT NULL,`text` text NOT NULL,`time_submitted` varchar(250) NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM;

This table will store all the tutorial comments in which we can later display them!

 

Alrighty, now, onto the coding. First off, we are going to want to make a file called tutorials.php.

We will be using switch() for our navigation system in this, and if you don't like it, replace it with your own.

 

Here is the code:

 

tutorials.php

php code:

<?php //------------------------------------------ //database connection mysql_connect("localhost", "username", "password") or die(mysql_error()); mysql_select_db("database") or die(mysql_error()); //end database connection //------------------------------------------ //------------------------------------------ //echo out a navigation panel echo " <center><a href='tutorials.php'>View Categorys</a> | <a href='tutorials.php?action=addtutorial'>Add Tutorial</a></center> "; //------------------------------------------ //------------------------------------------ //begin main navigation (tutorials.php?action=) switch($_GET['action']) { 	//------------------------------------------ 	//this case adds a tutorial. 	//pretty self-explanitory 	//------------------------------------------ 	case "addtutorial": 	//if the form to enter a new 	//tutorial hasn't been submitted, 	//show it 	if(!isset($_POST['add_tutorial'])) 	{ 		echo " 		<table border='0' cellpadding='0' cellspacing='0' width='500'> 		<form action='$self?action=addtutorial' method='post'> 			<tr> 				<td>Name:</td> 				<td><input type='text' name='name'></td> 			</tr> 			<tr> 				<td>Title:</td> 				<td><input type='text' name='title'></td> 			</tr> 			<tr> 				<td>Category:</td> 				<td> 					<select name='category'> 						"; 				//now what we are doing here is looping through 				//the categorys table and getting all the 				//categorys and putting them into a select 				//so the user can select which category 				//the tutorial is on 				$query = mysql_query("SELECT * FROM tutorials_categorys ORDER BY id ASC") or die(mysql_error()); 				while($row = mysql_fetch_array($query)) 				{ 					echo "<option value='$row[id]'>$row[category]"; 				} 						echo " 					</select> 				</td> 			</tr> 				<tr> 				<td>Tutorial:</td> 				<td><textarea name='tutorial' cols='40' rows='10'></textarea></td> 			</tr> 			</tr> 				<tr> 				<td>Short Description:</td> 				<td><textarea name='short_description' cols='40' rows='2'></textarea></td> 			</tr> 			<tr> 				<td>Email:</td> 				<td><input type='text' name='email' maxlength='50'></td> 			</tr> 			<tr> 				<td>Show Email?</td> 				<td><input type='checkbox' name='show_email' value='1' checked></td> 			</tr> 			<tr> 				<td colspan='2'><center><input type='submit' name='add_tutorial' value='Submit New Tutorial'></center></td> 			</tr> 		</form> 		</table> 		"; 	} 	//else, error check, enter it 	elseif(isset($_POST['add_tutorial'])) 	{ 		$name = mysql_real_escape_string(strip_tags($_POST['name'])); 		$title = mysql_real_escape_string(strip_tags($_POST['title'])); 		$category = mysql_real_escape_string(strip_tags($_POST['category'])); 		$tutorial = mysql_real_escape_string(strip_tags($_POST['tutorial'])); 		$short_description = mysql_real_escape_string(strip_tags($_POST['short_description'])); 		$email = mysql_real_escape_string(strip_tags($_POST['email'])); 		$show_email = mysql_real_escape_string($_POST['show_email']); 		$date = date("m/d/Y"); 		$time = time(); 		//we begin error checking.... 		$error_msg = array(); 		if(empty($name)) 		{ 			$error_msg[] = "Please insert a name!<br />"; 		} 		if(empty($title)) 		{ 			$error_msg[] = "Please insert a title!<br />"; 		} 		if(empty($category)) 		{ 			$error_msg[] = "Please insert a category!<br />"; 		} 		if(empty($tutorial)) 		{ 			$error_msg[] = "Please insert the tutorial text!<br />"; 		} 		if(empty($short_description)) 		{ 			$error_msg[] = "Please insert a short description!<br />"; 		} 		if(empty($email)) 		{ 			$error_msg[] = "Please insert an email!<br />"; 		} 		//print the errors, if any 		if(count($error_msg)>0) 		{ 			echo "<strong>ERROR:</strong><br>n"; 			foreach($error_msg as $err) 				echo "$err"; 		} 		//everythings ok, insert it to the DB 		else 		{ 			$sql = "INSERT INTO tutorials (submitter, text, short_description, title, cat_id, date_submitted, time_submitted, show_email, email, is_validated) VALUES ('$name', '$tutorial', '$short_description', '$title', '$category', '$date', '$time', '$show_email', '$email', '0')"; 			mysql_query($sql) or die(mysql_error()); 			echo "Tutorial added for review!"; 		} 	} 	break; 	//------------------------------------------ 	//this case gets the specified [ID] in the url 	//(tutorials.php?action=viewcategory&id=[ID] 	//and gets all the tutorials listed under that 	//category ID (cat_id) 	//------------------------------------------ 	case "viewcategory": 	//if there is an ID given... 	if($_GET['id']) 	{ 		//get the id, put it into a variable, cast to an INT 		//(for security purposes) 		$id = (int)$_GET['id']; 		$query = mysql_query("SELECT * FROM tutorials WHERE cat_id = '$id' AND is_validated = '1'") or die(mysql_error()); 		//if no results, show that there are no tutorials 		//for that category 		if(mysql_num_rows($query) == 0) 		{ 			echo "No tutorials for this category yet!"; 		} 		//else, there is..show em 		else 		{ 			echo "<h1>Tutorials</h1>"; 			//loop through the tutorials 			//show all tutorials 			echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>"; 			while($row = mysql_fetch_array($query)) 			{ 				echo " 					<tr> 						<td>Title:</td> 						<td><b>$row[title]</b></td> 					</tr> 					<tr> 						<td>Date Submitted:</td> 						<td><b>$row[date_submitted]</b></td> 					</tr> 					<tr> 						<td>Views:</td> 						<td>$row[views]</td> 					</tr> 					<tr> 						<td>Short Description:</td> 						<td>$row[short_description]</td> 					</tr> 					<tr> 						<td>Submitter:</td> 						<td>$row[submitter]</td> 					</tr> 					<tr> 						<td colspan='2'><center><b><a href='$self?action=viewtutorial&id=$row[id]'>View</a></b></center></td> 					</tr> 					<tr> 						<td colspan='2'><hr /></td> 					</tr> 				"; 			} 			echo "</table>"; 		} 	} 	else 	{ 		echo "Please give me a category ID!"; 	} 	break; 	//------------------------------------------ 	//this case gets the given [ID] 	//action=viewtutorial&id=[ID] 	//and gets that tutorial ID from the database 	//and displays it! 	//------------------------------------------ 	case "viewtutorial": 	//if there is an ID given.. 	if($_GET['id']) 	{ 		//set $id to the URL id, cast to an INT 		//for security purposes 		$id = (int)$_GET['id']; 		//query the database 		$query = mysql_query("SELECT * FROM tutorials WHERE id = '$id' LIMIT 1") or die (mysql_error()); 		//if no rows returned... 		if(mysql_num_rows($query) == 0) 		{ 			echo "That ID is not in the database!"; 		} 		//else, show it! 		else 		{ 			//update the views for this tutorial! 			$update_views = mysql_query("UPDATE tutorials SET views = views + 1 WHERE id = '$id'") or die(mysql_error()); 			//loop through the database 			while($row = mysql_fetch_array($query)) 			{ 				echo " 				<table border='0' cellpadding='0' cellspacing='0' width='500' style='border: 1px solid black; padding: 3px;'> 					<tr> 						<td colspan='2'>Tutorial: <b>$row[title]</b></td> 					</tr> 					<tr> 						<td colspan='2' style='border: 1px solid black;'><center><b>Tutorial</b></center><br />$row[text]</td> 					</tr> 					<tr> 					"; 					//---------------------------- 					//this part of the code 					//checks to see if the submitter 					//wants an email left for support 					//---------------------------- 					if($row['show_email'] == 1) 					{ 						echo " 						<td colspan='2'>This tutorial was submitted by <b>$row[submitter]</b> with an email left for support questions. Contact this person <a href='mailto:$row[email]'>here</a></td> 						"; 					} 					echo " 					</tr> 					<tr> 						<td><hr /></td> 					</tr> 				"; 			} 			//-------------------------------- 			//this is where we loop through the 			//comments table to show all the 			//comments for this tutorial 			//-------------------------------- 			$comments = mysql_query("SELECT * FROM tutorials_comments WHERE tut_id = '$id' ORDER BY id DESC") or die (mysql_error()); 			//if there are no comments.. 			if(mysql_num_rows($comments) == 0) 			{ 				echo " 					<tr> 						<td colspan='2'>No comments for this tutorial yet!</td> 					</tr> 				"; 			} 			//else, show them! 			else 			{ 				//loop through them 				while($row = mysql_fetch_array($comments)) 				{ 					echo " 					<tr> 						<td colspan='2'>Comment by: <b>$row[submitter]</b></td> 					</tr> 					<tr> 						<td colspan='2'  style='border: 1px solid black; padding: 2px;' vAlign='top'>$row[text]</td> 					</tr> 					"; 				} 			} 			//show the form to enter comments 			echo " 			<tr> 				<td colspan='2'><hr /></td> 			</tr> 			<form action='$self' method='post'> 				<tr> 					<td>Name:</td> 					<td><input type='text' name='name' maxlength='25'></td> 				</tr> 				<tr> 					<td>Comment:</td> 					<td><textarea name='message' cols='40' rows='10'></textarea></td> 				</tr> 				<tr> 					<td colspan='2'><center><input type='submit' name='add_comment' value='Add Comment'></center></td> 				</tr> 			</form> 			"; 			//----------------------------- 			//if the comment submit form 			//HAS been submitted, enter info 			//to the database. 			//----------------------------- 			if(isset($_POST['add_comment'])) 			{ 				//strip all HTML tags 				//and get rid of any quotes to prevent 				//SQL injection 				$message = mysql_real_escape_string(strip_tags($_POST['message'])); 				$name = mysql_real_escape_string(strip_tags($_POST['name'])); 				$time = time(); 				//use an array to store all error messages 				$error_msg = array(); 				if(empty($message)) 				{ 					$error_msg[] = "Please enter a message!<br />"; 				} 				if(empty($name)) 				{ 					$error_msg[] = "Please enter a name!<br />"; 				} 				//print the errors 				if(count($error_msg)>0) 				{ 					echo "<strong>ERROR:</strong><br>n"; 					foreach($error_msg as $err) 						echo "$err"; 				} 				//else, everything is ok, enter it in the DB 				else 				{ 					$query = mysql_query("INSERT INTO tutorials_comments VALUES (NULL,'$id','$name', '$message', '$time')") or die(mysql_error()); 				} 			} 			echo "</table>"; 		} 	} 	//if not.. 	else 	{ 		echo "No ID specified!"; 	} 	break; 	//------------------------------------------ 	//default case, this is shown default 	//in this instance, we are going to make the default case show 	//all the categories that you can view tutorials on 	//------------------------------------------ 	default: 	$query = mysql_query("SELECT * FROM tutorials_categorys") or die(mysql_error()); 	//if the number of rows returned is 0, then say, no categories 	if(mysql_num_rows($query) == 0) 	{ 		echo "No tutorial categories currently!"; 	} 	//if anything else, then there has to be categories. show em. 	else 	{ 		echo "<h1>Tutorial Categories:</h1> "; 		//while loop to loop through the database and display results! 		while($row = mysql_fetch_array($query)) 		{ 			echo " 			<table border='0' cellpadding = '0' cellspacing='0' width='500'> 				<tr> 					<td>Category Name:</td> 					<td>$row[category]</td> 				</tr> 				<tr> 					<td>Description:</td> 					<td>$row[description]</td> 				</tr> 				<tr> 					<td><a href='$self?action=viewcategory&id=$row[id]'>Visit this category</a></td> 				</tr> 				<tr> 					<td><hr /></td> 				</tr> 			</table> 			"; 		} 	} 	break; } //end navigation //------------------------------------------ ?> 

Phew, theres explanations in the code, so i'm going to save your time by just letting you read

the comments in the code.

 

Second file. This is our admin panel, where we can review submitted tutorials, and validate/delete them!

 

tutorials_admin.php

PHP Code:

<?php

//------------------------------------------

//database connection

mysql_connect("localhost", "username", "password") or die(mysql_error());

mysql_select_db("database") or die(mysql_error());

//end database connection

//------------------------------------------

 

 

//------------[IMPORTANT]-------------------

// I would suggest adding this file to part

// of a user system so it doesn't get viewed

// by just anyone

//------------[IMPORTANT]-------------------

 

 

//------------------------------------------

//echo out a navigation panel

echo "

<center><a href="tutorials.php">View Categorys</a> | <a href="tutorials.php?action=addtutorial">Add Tutorial</a> | <a href="tutorials_admin.php">Admin</a> | <a href="tutorials_admin.php?action=addcategory">Add Category</a></center>

";

//------------------------------------------

 

//------------------------------------------

//begin main navigation (tutorials.php?action=)

switch($_GET['action'])

{

//--------------------------

// case to add a tutorial category

//--------------------------

case "addcategory":

//if the form to add a new category

//isn't submitted, show one

if(!isset($_POST['new_category']))

{

echo "

<form action='tutorials_admin.php?action=addcategory' method='post'>

<table border='0' cellpadding='0' cellspacing='0' width='500'>

<tr>

<td>Category name:</td>

<td><input type='text' name='category' maxlength='25'></td>

</tr>

<tr>

<td>Description:</td>

<td><textarea name='description' cols='40' rows='10'></textarea></td>

</tr>

<tr>

<td colspan='2'><center><input type='submit' name='new_category' value='New Category!'></td>

</tr>

</table>

</form>

";

}

//else, error check and then insert data to database!

elseif(isset($_POST['new_category']))

{

$category = mysql_real_escape_string(strip_tags($_POST['category']));

$description = mysql_real_escape_string(strip_tags($_POST['description']));

 

//begin error reporting

$error_msg = array();

if(empty($category))

{

$error_msg[] = "No Category name entered!<br />";

}

if(empty($description))

{

$error_msg[] = "No description entered!<br />";

}

//print errors, if any

if(count($error_msg)>0)

{

echo "<strong>ERROR:</strong><br>n";

foreach($error_msg as $err)

echo "$err";

}

//else, no errors, insert to the DB!

else

{

$query = mysql_query("INSERT INTO tutorials_categorys (category, description) VALUES ('$category', '$description')") or die(mysql_error());

echo "Tutorial Category Added!";

}

}

break;

 

//--------------------------

//this case takes the submitted

//form data of the admin form.

//you can either validate, or delete

//--------------------------

case "handle":

//if nothing is submitted in the

//row[] array, then error!

if(empty($_POST['row']))

{

echo "Nothing to delete/validate!";

}

if(isset($_POST['delete_tutorials']))

{

$delete_array = $_POST['row'];

 

//loop through each individual

//item in the array

 

foreach($delete_array as $val)

{

//delete them!

$query = "DELETE FROM tutorials WHERE id = '$val'";

$result = mysql_query($query) or die(mysql_error());

}

echo "Tutorial(s) deleted";

}

elseif(isset($_POST['validate_tutorials']))

{

$validate_array = $_POST['row'];

 

//loop through each individual

//item in the array

 

foreach($validate_array as $val)

{

//update the status to 1 which means validated!

$query = "UPDATE tutorials SET is_validated = '1' WHERE id = '$val'";

$result = mysql_query($query) or die(mysql_error());

}

echo "Tutorial(s) validated!";

}

break;

 

//--------------------------

//default case, we show

//all tutorials with actions

//--------------------------

default:

$query = mysql_query("SELECT * FROM tutorials WHERE is_validated = '0' ORDER BY time_submitted DESC") or die(mysql_error());

echo "<h1>Unreviewed Tutorials</h1>";

if(mysql_num_rows($query) == 0)

{

echo "No tutorials unreviewed!";

}

//there are rows, show the tutorials to

//verify them

else

{

//echo the submit buttons

echo "

<form action='tutorials_admin.php?action=handle' method='post'>

<table border='0' cellpadding='0' cellspacing='0' width='500'>

<tr>

<td><center>With Selected</center></td>

</tr>

<tr>

<td colspan='2'><center><input type='submit' name='validate_tutorials' value='Validate'><input type='submit' name='delete_tutorials' value='Delete'></center></td>

</tr>

<tr>

<td colspan='2'><hr /></td>

</tr>

";

//loop throught it to show them all

while($row = mysql_fetch_array($query))

{

echo "

<tr>

<td>Title:</td>

<td>$row[title]</td>

</tr>

<tr>

<td>Submitter:</td>

<td>$row[submitter]</td>

</tr>

<tr>

<td>Short Description:</td>

<td>$row[short_description]</td>

</tr>

<tr>

<td>Tutorial Text:</td>

<td>$row[text]</td>

</tr>

<tr>


Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.