School Map:  Home / Enroll $ Student Records; Class  
$ News @ LIVE Tech Radio * Support/FAQ | Store | FORUMS

Class / Forums / homeroom Refresh the current page week 15 php
 

 (#283 2005-11-07 21:50:07) Post Reply

oldpaint
Need To Set


Enrolled: Oct 2005
Posts: 5
AP: 1



<?php
session_start
();
header("Cache-control: private");
if(!
$_SESSION['count'])
{
$_SESSION['count'] = 1;
}
else
{
$_SESSION['count']++;
}

/*(advanced) TO-DO ASSIGNMENT: Create a mySQL table structure to enter musical artists into a table(s)
for: artist_name, genre, votes. Allow a form to choose an existing artist and "vote for it" or add a
new artist to the table. Display the results by most number of votes. Create a separate admin script
to be able to modify the surfer entered information in the table from the browser and to be able to
delete any record by artist_name. */

if ($_SESSION['count'] == 1 || $_GET['action'] == "new" || $_GET['action'] == "vote") //only access database on first page load or update after a post
{ $user = "********";
$pw = "********";
$db = "********";
if (
$_GET['action'] == "new")
{
$aname = $_GET['aname'];
$genre = $_GET['genre'];
$artist_names_str = $_SESSION['artist_names_str'];
$artist_names_arr = explode(",", $artist_names_str);
$aname = stripslashes($aname);

if (!
$aname)
{
$errlist .= "&quot;Artist name&quot; is a required field, please fill it in to continue.<br />n";
}
else
{
$aname = strip_tags($aname);
$aname = trim($aname, " ");
$aname = ucwords(strtolower($aname));
$artist_length = strlen($aname);
$aname_length = strlen($aname);
if (
$artist_length > 60)
{
$amount = $aname_length - 60;
$errlist .= ""Artist name" is $amount characters too long.<br />n";
}
if (
preg_match ("/&/", $aname))
{
$pattern = "/&/";
$replacement = "&";
$aname = preg_replace($pattern, $replacement, $aname);
}
if (
preg_match ("/[^a-z0-9's-&;]/i", $aname))
{
$errlist .= ""$aname" contains invalid characters.<br />n";
}
foreach (
$artist_names_arr as $artist)
{ if (
preg_match ("/b$anameb/i", $artist))
{
$errlist .= ""$aname" already exists in the database.<br />n";
$flag++;
}
}
}
if (!
$genre)
{
$errlist .= ""Genre" is a required field, please fill it in to continue.<br />n";
}
if (
$flag)
{
$aname = ""; $genre = "";
}
if (!
$errlist)
{
$aname = addslashes($aname);

$link = mysql_connect("localhost", $user, $pw)
or die(
"Could not connect: " . mysql_error());
mysql_select_db($db) or die("Could not select: " . mysql_error());

$query = "INSERT INTO musical_artist VALUES ('','$aname','$genre','0')";
mysql_query($query, $link)
or die(
"Could not insert: " . mysql_error());

if (
$aname)
{
$aname = "";
}
if (
$genre)
{
$genre = "";
}
}
}
if (
$_GET['action'] == "vote")
{ if (
$_SESSION['ip_address'] == $_SERVER['REMOTE_ADDR'])
{
$errlist2 .= "You are only allowed to vote once.<br />n";
}
elseif (!
$_GET['candidate'])
{
$errlist2 .= "Make sure you select one of the artists before pressing the vote button.<br />n";
}
if (!
$errlist2)
{
$candidate = $_GET['candidate'];

$link = mysql_connect("localhost", $user, $pw)
or die(
"Could not connect: " . mysql_error());
mysql_select_db($db) or die("Could not select: " . mysql_error());

$query = "UPDATE musical_artist SET votes = votes + '1' WHERE id='$candidate'";
mysql_query($query, $link)
or die(
"Could not update: " . mysql_error());

if (
$_GET['candidate'])
{
$_GET['candidate'] = "";
}
$_SESSION['ip_address'] = $_SERVER['REMOTE_ADDR'];
}
}
if (!
$errlist || ! $errlist2)
{ for (
$i = 0; $i < count($artist_names_arr); $i++)
{
array_splice($artist_names_arr, $i);
}

$link = mysql_connect("localhost", $user, $pw)
or die(
"Could not connect: " . mysql_error());
mysql_select_db($db) or die("Could not select: " . mysql_error());

$query = "SELECT * FROM musical_artist ORDER BY votes DESC";
$result = mysql_query($query, $link);
if (!
$result)
{ die(
"query failed: " . mysql_error());
}

// load arrays from database
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$id_arr[] = $row[0];
$artist_names_arr[] = $row[1];
$genre_arr[] = $row[2];
$votes_arr[] = $row[3];
}

$rows = count($id_arr);

for (
$i = 0; $i < $rows; $i++)
{
$artist_names_arr[$i] = stripslashes($artist_names_arr[$i]);
}

mysql_free_result($result);

if (
$rows)
{
$_SESSION['artist_names_str'] = implode(",", $artist_names_arr);
}

$radioList = "";
}

}
//end update/post

$genreOptions = array(
'Acid Rock',
'Alternative',
'Bluegrass',
'Blues',
'Classic Rock',
'Country',
'Country Rock',
'Folk',
'Grunge',
'Jazz',
'Metal',
'New Age',
'Pop',
'Punk',
'Ragtime',
'Rap',
'Raggae',
'Rock',
'Soft Rock',
'Soul'
);

$genreList .= "<option value=""> Select one n";
foreach (
$genreOptions as $item)
{ if (
$item == $genre)
{
$genreList .= " <option value="$item" SELECTED>" . $item . "n";
}
else
{
$genreList .= " <option value="$item">" . $item . "n";
}
}

for (
$i = 0; $i < $rows; $i++)
{
$radioList .= "<tr class="b"><td><input type="radio" name="candidate" value="" . $id_arr[$i] . "" /> " . $artist_names_arr[$i] . "</td><td>" . $genre_arr[$i] . "</td><td>" . $votes_arr[$i] . "</td></tr>n";
}

$_SESSION['radioList'] = $radioList; // regenerate the data without accessing the database
$radioList = $_SESSION['radioList'];

?>

<html>
<head>
<style type="text/css">
<!--
table.a { width: 740px; border-spacing: 1px }
table.b { width: 700px; border-color: #0099FF; border-style: dashed; border-width: thin; border-spacing: 2px }
tr.a { background-color: #EEEEEE; font-family: arial; font-size: 11pt; font-weight: bold; color: #0099FF }
tr.b { font-family: verdana, arial; font-size: 10pt; font-weight: normal }
tr.c { background-color: #CCFFCC; font-family: verdana, arial; font-size: 10pt; font-weight: normal }
td { padding: 2px }
// -->
</style>
<body>
<br />
<br />
<br />
<table class="a"><tr><td align="center">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get" />
<input type="hidden" name="action" value="new" />
<table class="b">
<tr class="a"><td colspan="2">Submit A New Artist</td><td align="center"><div style="font-size: 8pt; font-family: arial; font-weight: normal"><a href="fifteenth.admin.php">admin</a></div></td></tr>
<tr><td colspan="3" style="color: #FF0000; font-family: verdana; font-size: 8pt">
<?php if ($errlist) {echo $errlist;} ?>

</td>
</tr>
<tr class="b"><td colspan="3">Artist name: <input type="text" name="aname" value="<?php echo $aname; ?>" size="40" />
Genre:
<select name="genre">
<?php echo $genreList; ?>
</select>
<input type="submit" />
</form>
</td></tr>
<tr>
<td colspan="3" width="100%" valign="top">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get" />
<input type="hidden" name="action" value="vote" />
</td>
</tr>
<tr class="a"><td colspan="3">Vote For Your Favorite Artist</td></tr>
<tr>
<td colspan="3" style="color: #FF0000; font-family: verdana; font-size: 8pt">
<?php if ($errlist2) {echo $errlist2;} ?>

</td>
</tr>
<tr class="c"><td>Artist name</td><td>Genre</td><td>Votes</td></tr>
<?php
if (! $radioList)
{ echo
"<tr class="b"><td colspan="3">The database is empty.</td></tr>n";
}
else
{ echo
$radioList;
}
if (!
$_SESSION['count'])
{ echo
"<tr class="b"><td colspan="3">You need cookies enabled to view the database.</td></tr>n";
}
?>
<tr><td colspan="3"><input type="submit" value=" Vote! " /></td></tr>
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>




 

 (#284 2005-11-07 21:50:48) Post Reply

oldpaint
Need To Set


Enrolled: Oct 2005
Posts: 5
AP: 1

-----------------------------------------------------
admin script
-----------------------------------------------------
<?php
session_start();
header("Cache-control: private");

$user = "************";
$pw = "************";
$db = "************";

$self = $_SERVER['PHP_SELF'];

if ($username == "username")
{ $username = sha1($username);
}
if ($password == "password")
{ $password = sha1($password);
}

//echo $password . "<br />";
//echo $username;
$_username = '249ba36000029bbe97499c03db5a9001f6b734ec'; //username is username
$_password = '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8'; //password is password

if ( $action == "enter" )
{ if (($password != $_password) && ($_SESSION['password'] != $_password ))
{ $elist .= "<font color="red" face="verdana" size="2"><b>Incorrect password</b></font><br />n";
}
if (($username != $_username) && ($_SESSION['username'] != $_username ))
{ $elist .= "<font color="red" face="verdana" size="2"><b>Incorrect username</b></font>n";
}
if (! $elist && ! ($_SESSION['password']) && ! ($_SESSION['username']) )
{ $_SESSION['password'] = $password;
$_SESSION['username'] = $username;
}
if ( $elist )
{ login($self,$elist);
}
else
{ if ($task == "edit")
{ page_header();
edit ($id, $artist_name, $genre, $errlist);
}
elseif ($task == "delete")
{ $link = mysql_connect("localhost", $user, $pw)
or die("Could not connect: " . mysql_error());
mysql_select_db($db, $link) or die("Could not select: " . mysql_error());

$flag = 0;
foreach($_POST as $key => $value)
{ if ($value == "on")
{ $query = "DELETE FROM musical_artist WHERE id='$key'";
$result = mysql_query($query, $link);
$flag++;
if (!$result)

{ echo "<html><body>n";
die("query failed: " . mysql_error());
}
}
}

if (! $flag)
{ page_header();
echo "<table class="a"><tr><td align="center"><table class="b">
<tr class="b"><td><a href="fifteenth.admin.php?ses=logout">Logout</a>
| <a href="fifteenth.admin.php?action=enter&task=main">Main</a></td></tr>
<tr><td height="50"> </td></tr>
<tr class="b"><td> No records were selected to delete.</td></tr>
</td></tr></table></td></tr></table>";
}
else
{ page_header();
echo "<table class="a"><tr><td align="center"><table class="b">
<tr class="b"><td><a href="fifteenth.admin.php?ses=logout">Logout</a>
| <a href="fifteenth.admin.php?action=enter&task=main">Main</a></td></tr>
<tr><td height="50"> </td></tr>
<tr class="b"><td>$flag records were successfully deleted.</td></tr>
</td></tr></table></td></tr></table>";
}
}
elseif ($task == "process_edit")
{ if (!$artist_name)
{ $errlist .= ""Artist name" was left blank.<br />n";
}
else
{ $artist_name = ucwords(strtolower($artist_name));
if ( preg_match ("/[^a-z0-9's-&]/i", $artist_name))
{ $errlist .= ""$artist_name" contains invalid characters.<br />n";
}
}
if (preg_match ("/&/", $artist_name))
{ $pattern = "/&/";
$replacement = "&";
$artist_name = preg_replace($pattern, $replacement, $artist_name);
}
if ($errlist)
{ page_header();
edit ($id, $artist_name, $genre, $errlist);
}
else
{ $link = mysql_connect("localhost", $user, $pw)
or die("Could not connect: " . mysql_error());
mysql_select_db($db, $link) or die("Could not select: " . mysql_error());

$artist_name = addslashes($artist_name);
$query = "UPDATE musical_artist SET artist_names = '$artist_name', genre = '$genre' WHERE id='$id'";
$result = mysql_query($query, $link);
if (!$result)
{ echo "<html><body>n";
die("query failed: " . mysql_error());
}
else
{ page_header();
echo "<table class="a"><tr><td align="center"><table class="b">
<tr class="b"><td><a href="fifteenth.admin.php?ses=logout">Logout</a>
| <a href="fifteenth.admin.php?action=enter&task=main">Main</a></td></tr>
<tr><td height="50"> </td></tr>
<tr class="b"><td>Edit was carried out successfully.</td></tr>
</td></tr></table></td></tr></table>";
}
}
}
elseif ($task == "main")
{ $link = mysql_connect("localhost", $user, $pw)
or die("Could not connect: " . mysql_error());
mysql_select_db($db, $link) or die("Could not select: " . mysql_error());

$query = "SELECT id, artist_names, genre FROM musical_artist ORDER BY artist_names ASC";
$result = mysql_query($query, $link);
if (!$result)
{ die("query failed: " . mysql_error());
}

$editList .= "<dl>n";
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{ $row[1] = stripslashes($row[1]);
$editList .= "<dt><input type="checkbox" name="" . $row[0] . "" /><a href="fifteenth.admin.php?action=enter&task=edit&id=$row[0]&artist_name=$row[1]&genre=$row[2]" /> " . $row[1] . "</a>n";
}
$editList .= "</dl>n";

mysql_free_result($result);

page_header();

print <<<HTML
<table width="700"><tr><td align="center">
<form action="$self" method="post" />
<input type="hidden" name="action" value="enter" />
<input type="hidden" name="task" value="delete" />
<table width="600" style="font-family: arial, verdana; font-size: 10pt;">
<tr><td><a href="fifteenth.admin.php?ses=logout">Logout</a></td></tr>
<tr class="a"><td>Admin: delete checked or click name to edit</td></tr>
<tr><td height="50"> </td></tr>
<tr><td>$editList</td></tr>
<tr><td><input type="submit" value="Delete Checked"></td></tr>
<tr><td>
</form>
</td></tr></table>
</td></tr></table>
HTML;
}
}
}
elseif ($ses == 'logout')
{ SESSION_UNSET();
login($self,$elist);
}
else
{ login($self,$elist);
}

function login($self,$elist) { //default login screen
print <<<HTML
<html>
<body>
<table width="400"><tr><td align="center">
<form action="$self" method="post">
<input type="hidden" name="action" value="enter">
<input type="hidden" name="task" value="main">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="3" WIDTH="300" style="font-family: verdana; font-size: 10pt; font-weight: bold">
<TR><TD colspan="2"> </TD></TR>
<TR style="font-family: arial; font-size: 12pt">
<TD colspan="2" bgcolor="#EEEEEE">Login</TD></TR>
<tr><td colspan="2">
$elist
</td></tr>
<TR><TD colspan="2"> </TD></TR>
<TR><TD>Username:</TD><TD><input type="text" name="username"></TD></TR>
<TR><TD>Password:</TD><TD><input type="password" name="password"></TD></TR>
<TR><TD><input type="submit" value="Enter"></TD><TD> </TD></TR>
<TR><TD> </TD><TD> </TD></TR>
<TR bgcolor="#EEEEEE"><TD colspan="2"> </TD></TR>
<TR><TD colspan="2"> </TD></TR>
</TABLE>
</form>
</td>
</tr>
</table>
HTML;
}

function edit ($id, $artist_name, $genre, $errlist) {

$genreOptions = array(
'Acid Rock',
'Alternative',
'Bluegrass',
'Blues',
'Classic Rock',
'Country',
'Country Rock',
'Folk',
'Grunge',
'Jazz',
'Metal',
'New Age',
'Pop',
'Punk',
'Ragtime',
'Rap',
'Raggae',
'Rock',
'Soft Rock',
'Soul'
);

$genreList .= "<option value=""> Select one n";
foreach ($genreOptions as $item)
{ if ($item == $genre)
{ $genreList .= " <option value="$item" SELECTED>" . $item . "n";
}
else
{ $genreList .= " <option value="$item">" . $item . "n";
}
}

print <<<HTML
<table class="a"><tr><td align="center">
<form action="$self" method="post" />
<input type="hidden" name="action" value="enter" />
<input type="hidden" name="task" value="process_edit" />
<table class="b">
<tr class="b"><td><a href="fifteenth.admin.php?ses=logout">Logout</a>
| <a href="fifteenth.admin.php?action=enter&task=main">Main</a>
</td></tr>
<tr class="a"><td>Admin: edit existing</td></tr>
<tr class="b"><td><font color="#FF0000">$errlist</font> </td></tr>
<tr><td height="50"> </td></tr>
<tr class="b"><td colspan="3">Artist name: <input type="text" name="artist_name" value="$artist_name" size="40" />
Genre:
<select name="genre">
$genreList
</select>
<input type="submit" value="Save Changes" />
</form>
</td></tr>
</td>
</tr>
</table>
</td>
</tr>
</table>
HTML;
}

function page_header() {
print <<<HTML
<html>
<head>
<style type="text/css">
<!--
table.a { width: 740px; border-spacing: 1px }
table.b { width: 700px; border-spacing: 2px }
tr.a { background-color: #EEEEEE; font-family: arial; font-size: 11pt; font-weight: bold; color: #0099FF }
tr.b { font-family: verdana, arial; font-size: 10pt; font-weight: normal }
tr.c { background-color: #CCFFCC; font-family: verdana, arial; font-size: 10pt; font-weight: normal }
td { padding: 2px }
// -->
</style>
<body>

HTML;

}

?>

</body>
</html>

 

 (#285 2005-11-07 22:17:14) Post Reply

oldpaint
Need To Set


Enrolled: Oct 2005
Posts: 5
AP: 1

I noticed the system striped the backslashes off my newline characters.

 

 (#286 2005-11-07 22:29:24) Post Reply

oldpaint
Need To Set


Enrolled: Oct 2005
Posts: 5
AP: 1

also noticed my & a m p & and & q u o t ; were converted to & and ". I was up late last night finishing up and I noticed a goof I made in the script where I had
$aname_length = strlen($aname);
and
$artist_length = strlen($aname);
only meant to have the first one.

 

 

View Previous Thread
Print this page Print This Page

View Next Thread

School Map:  Home / Enroll $ Student Records; Class  
$ News @ LIVE Tech Radio * Support/FAQ | Store

Advertising | Link To Us | Privacy 
Copyright 2000-2002 Script School Productions / KMR Enterprises 
No part of this website may be reproduced, copied and/or distributed in any medium 
without express written permission