577 lines
17 KiB
PHP
Executable File
577 lines
17 KiB
PHP
Executable File
<?php
|
|
|
|
$admin_digest = $_COOKIE['bobsleddigest'];
|
|
$digest = "b8939260fa537f7c975aaad60c951aaf5bbb7a9f";
|
|
$phrase = file_get_contents('../../../data/bobsledphrase.txt');
|
|
|
|
if( $admin_digest == "" or ($_POST['user'] and $_POST['password']) )
|
|
{
|
|
$admin_digest = sha1("{$_POST['user']}^{$_POST['password']}^$phrase");
|
|
setcookie('bobsleddigest',$admin_digest,time() + (30*60),'/bobsled/admin','.rameydesign.net');
|
|
}
|
|
|
|
include "../header.php";
|
|
|
|
if( $admin_digest == $digest )
|
|
{
|
|
if( $_POST['cmd'] == 'add_picture' )
|
|
{ print "<div class='alert'>" . AddPicture() . "</div>"; }
|
|
|
|
else if( $_POST['cmd'] == 'add_event' )
|
|
{ print "<div class='alert'>" . AddEvent() . "</div>"; }
|
|
|
|
else if( $_POST['cmd'] == 'add_team' )
|
|
{ print "<div class='alert'>" . AddTeam() . "</div>"; }
|
|
|
|
else if( $_POST['cmd'] == 'delete_team' )
|
|
{ print "<div class='alert'>" . DeleteTeam() . "</div>"; }
|
|
|
|
else if( $_POST['cmd'] == 'delete_event' )
|
|
{ print "<div class='alert'>" . DeleteEvent() . "</div>"; }
|
|
|
|
else if( $_POST['cmd'] == 'delete_picture' )
|
|
{ print "<div class='alert'>" . DeletePicture() . "</div>"; }
|
|
|
|
PrintAdminIndex();
|
|
}
|
|
else { PrintLoginPage(); }
|
|
|
|
?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|
|
<?php
|
|
|
|
function AddTeam()
|
|
{
|
|
$team = str_replace(".","_",$_POST['teamname']);
|
|
$team = str_replace("/","_",$team);
|
|
$team = str_replace(" ","_",$team);
|
|
$team = escapeshellcmd($team);
|
|
|
|
print `mkdir "../pictures/$team/"`;
|
|
|
|
$newfolder = opendir("../pictures/$team/");
|
|
if( $newfolder )
|
|
{ $message = "Team $team successfully added."; closedir($newfolder); }
|
|
else
|
|
{ $message = "Team $team could not be added, please try again."; }
|
|
|
|
return $message;
|
|
}
|
|
|
|
function AddEvent()
|
|
{
|
|
$team = str_replace(".","_",$_POST['teamname']);
|
|
$team = str_replace("/","_",$team);
|
|
$team = str_replace(" ","_",$team);
|
|
$team = escapeshellcmd($team);
|
|
|
|
$event = str_replace(".","_",$_POST['eventname']);
|
|
$event = str_replace("/","_",$event);
|
|
$event = str_replace(" ","_",$event);
|
|
$event = escapeshellcmd($event);
|
|
|
|
print `mkdir "../pictures/$team/$event/"`;
|
|
|
|
$newfolder = opendir("../pictures/$team/$event/");
|
|
if( $newfolder )
|
|
{ $message = "Event $event for $team successfully added."; closedir($newfolder); }
|
|
else
|
|
{ $message = "Event $event for $team could not be added, please try again."; }
|
|
|
|
return $message;
|
|
}
|
|
|
|
function AddPicture()
|
|
{
|
|
$team = str_replace(".","_",$_POST['teamname']);
|
|
$team = str_replace("/","_",$team);
|
|
$team = str_replace(" ","_",$team);
|
|
$team = escapeshellcmd($team);
|
|
|
|
$event = str_replace(".","_",$_POST['eventname']);
|
|
$event = str_replace("/","_",$event);
|
|
$event = str_replace(" ","_",$event);
|
|
$event = escapeshellcmd($event);
|
|
|
|
$name = $_FILES['picture']['name'];
|
|
$description = addslashes($_POST['description']);
|
|
$price = addslashes($_POST['price']);
|
|
|
|
if( move_uploaded_file($_FILES['picture']['tmp_name'],"../pictures/$team/$event/$name") )
|
|
{
|
|
if( file_put_contents("../pictures/$team/$event/$name.txt","$price\n$description") )
|
|
{ $message = "Picture $name successfully added to team $team for $event."; }
|
|
}
|
|
else { $message = "Picture $name could not be added to team $team for $event, please try again."; }
|
|
|
|
return $message;
|
|
}
|
|
|
|
function DeleteTeam()
|
|
{
|
|
$team = str_replace(".","_",$_POST['teamname']);
|
|
$team = str_replace("/","_",$team);
|
|
$team = str_replace(" ","_",$team);
|
|
$team = escapeshellcmd($team);
|
|
|
|
$team_folder = scandir("../pictures/$team");
|
|
|
|
foreach($team_folder as $file)
|
|
{
|
|
$event_folder = scandir("../pictures/$team/$file");
|
|
foreach($event_folder as $file2)
|
|
{ print `rm "../pictures/$team/$file/$file2"`; }
|
|
|
|
print `rmdir "../pictures/$team/$file"`;
|
|
}
|
|
|
|
print `rmdir "../pictures/$team"`;
|
|
|
|
if( file_exists("../pictures/$team") )
|
|
{ $message = "Could not delete team."; }
|
|
else { $message = "Team deleted successfully."; }
|
|
|
|
return $message;
|
|
}
|
|
|
|
function DeleteEvent()
|
|
{
|
|
$team = str_replace(".","_",$_POST['teamname']);
|
|
$team = str_replace("/","_",$team);
|
|
$team = str_replace(" ","_",$team);
|
|
$team = escapeshellcmd($team);
|
|
|
|
$event = str_replace(".","_",$_POST['eventname']);
|
|
$event = str_replace("/","_",$event);
|
|
$event = str_replace(" ","_",$event);
|
|
$event = escapeshellcmd($event);
|
|
|
|
$event_folder = scandir("../pictures/$team/$event");
|
|
|
|
foreach($event_folder as $file)
|
|
{ print `rm "../pictures/$team/$event/$file"`; }
|
|
|
|
print `rmdir "../pictures/$team/$event"`;
|
|
|
|
if( file_exists("../pictures/$team/$event") )
|
|
{ $message = "Could not delete event."; }
|
|
else { $message = "Event deleted successfully."; }
|
|
|
|
return $message;
|
|
}
|
|
|
|
function DeletePicture()
|
|
{
|
|
$team = str_replace(".","_",$_POST['teamname']);
|
|
$team = str_replace("/","_",$team);
|
|
$team = str_replace(" ","_",$team);
|
|
$team = escapeshellcmd($team);
|
|
|
|
$event = str_replace(".","_",$_POST['eventname']);
|
|
$event = str_replace("/","_",$event);
|
|
$event = str_replace(" ","_",$event);
|
|
$event = escapeshellcmd($event);
|
|
|
|
$picture = str_replace("/","_",$_POST['picturename']);
|
|
$picture = str_replace(" ","_",$picture);
|
|
$picture = escapeshellcmd($picture);
|
|
|
|
print `rm "../pictures/$team/$event/$picture"`;
|
|
print `rm "../pictures/$team/$event/$picture.txt"`;
|
|
|
|
|
|
if( file_exists("../pictures/$team/$event/$picture") )
|
|
{ $message = "Could not delete picture."; }
|
|
else { $message = "Picture deleted successfully."; }
|
|
|
|
if( file_exists("../pictures/$team/$event/$picture.txt") )
|
|
{ $message .= " Could not delete picture details file."; }
|
|
else { $message .= " Picture details file delete successfully."; }
|
|
|
|
return $message;
|
|
}
|
|
|
|
function PrintAdminIndex()
|
|
{
|
|
$teams = scandir('../pictures');
|
|
$teams_html = "";
|
|
$events_js = "";
|
|
$pictures_js = "";
|
|
if($teams)
|
|
{
|
|
foreach($teams as $file)
|
|
{
|
|
if( $file != '.' and $file != "..")
|
|
{
|
|
$teams_html .= "<option value='$file'>$file</option>\n";
|
|
|
|
$var_name = str_replace(" ","_",$file);
|
|
$events_counter = 0;
|
|
$events_js .= "\nvar $var_name = new Array();";
|
|
|
|
$events = scandir("../pictures/$file");
|
|
if($events)
|
|
{
|
|
foreach($events as $file2)
|
|
{
|
|
if($file2 != '.' and $file2 != "..")
|
|
{
|
|
$file_name = addslashes($file2);
|
|
$events_js .= "\n $var_name" . "[$events_counter] = '$file2';";
|
|
$events_counter++;
|
|
|
|
$var_name2 = str_replace(" ","_",$file2);
|
|
$pictures_counter = 0;
|
|
$pictures_js .= "\nvar $var_name$var_name2 = new Array();";
|
|
|
|
$pictures = scandir("../pictures/$file/$file2");
|
|
if($pictures)
|
|
{
|
|
$counter2 = 0;
|
|
foreach($pictures as $file3)
|
|
{
|
|
if($file3 != '.' and $file3 != '..' and !(true == strpos($file3,".txt")))
|
|
{
|
|
$file_name2 = addslashes($file3);
|
|
$pictures_js .= "\n $var_name$var_name2" . "[$pictures_counter] = '$file_name2';";
|
|
$pictures_counter++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
<strong>Admin Panel</strong>
|
|
<br /> <br />
|
|
|
|
<!--ADD TEAM-->
|
|
<form action='index.php' method='post'>
|
|
<input type='hidden' name='cmd' value='add_team' />
|
|
<div class='admin_section'>Add a new bobsled team</div>
|
|
<div class='indented_para'>
|
|
<table cellpadding='4' cellspacing='0' border='0'>
|
|
<tr>
|
|
<td align='right'>Team name:</td>
|
|
<td><input type='text' size='30' name='teamname' /></td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td><input type='submit' value='Add Team' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
<br /> <br />
|
|
|
|
<!--ADD EVENT-->
|
|
<form action='index.php' method='post'>
|
|
<input type='hidden' name='cmd' value='add_event' />
|
|
<div class='admin_section'>Add a new event to an existing team</div>
|
|
<div class='indented_para'>
|
|
<table cellpadding='4' cellspacing='0' border='0'>
|
|
<tr>
|
|
<td align='right'>Select Team:</td>
|
|
<td>
|
|
<select name='teamname'>
|
|
<option>Select a Team</option>
|
|
<?php print $teams_html;
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Event name:</td>
|
|
<td><input type='text' size='30' name='eventname' /></td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td><input type='submit' value='Add Event' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
<br /> <br />
|
|
|
|
<!--ADD PICTURE-->
|
|
<form action='index.php' method='post' enctype="multipart/form-data">
|
|
<input type='hidden' name='cmd' value='add_picture' />
|
|
<div class='admin_section'>Add a new picture to an existing team's event</div>
|
|
<div class='indented_para'>
|
|
<table cellpadding='4' cellspacing='0' border='0'>
|
|
<tr>
|
|
<td align='right'>Select Team:</td>
|
|
<td>
|
|
<select name='teamname' id='add_teams_select' onchange="SetEventsHTML('add')">
|
|
<option>Select a Team</option>
|
|
<?php print $teams_html;
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Select Event:</td>
|
|
<td>
|
|
<select id='add_events_select' style='visibility:hidden'>
|
|
<option>Select an Event</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Browse for picture:</td>
|
|
<td><input type='file' name='picture' /></td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Picture description:</td>
|
|
<td><input type='text' size='50' name='description' /></td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Picture price:</td>
|
|
<td><input type='text' size='5' name='price' /> (no dollar sign)</td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td><input type='submit' value='Add Picture' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
<script type='text/javascript' language='javascript'>
|
|
<!--
|
|
<?php print $events_js . "\n\n" . $pictures_js;
|
|
?>
|
|
|
|
function SetEventsHTML(id_prefix)
|
|
{
|
|
var events_id = id_prefix + "_events_select";
|
|
var teams_id = id_prefix + "_teams_select";
|
|
|
|
//grab the HTML elements
|
|
var events_select = document.getElementById(events_id);
|
|
var team_selected = document.getElementById(teams_id).value;
|
|
|
|
//replace all spaces with an underscore
|
|
while( team_selected.indexOf(" ") > 0 )
|
|
{ team_selected = team_selected.replace(" ","_"); }
|
|
|
|
var events_array = eval(team_selected);
|
|
var array_length = events_array.length;
|
|
|
|
if( team_selected != 'Select a Team' )
|
|
{
|
|
if(id_prefix == "delete2")
|
|
{
|
|
var picture_options = document.getElementById(id_prefix + "_pictures_select").options.length - 1;
|
|
for(var c=picture_options;c>0;c--)
|
|
{ document.getElementById(id_prefix + "_pictures_select").remove(c); }
|
|
}
|
|
|
|
var num_options = events_select.options.length - 1;
|
|
for(var c=num_options;c>0;c--)
|
|
{ events_select.remove(c); }
|
|
|
|
for(var i=0;i < array_length;i++)
|
|
{
|
|
var new_option = document.createElement("OPTION");
|
|
new_option.text = events_array[i];
|
|
new_option.value = events_array[i];
|
|
|
|
events_select.style.visibility = "visible";
|
|
events_select.options.add(new_option);
|
|
}
|
|
}
|
|
}
|
|
|
|
function SetPicturesHTML()
|
|
{
|
|
//grab the HTML elements
|
|
var pictures_select = document.getElementById('delete2_pictures_select');
|
|
var event_selected = document.getElementById('delete2_events_select').value;
|
|
var team_selected = document.getElementById('delete2_teams_select').value;
|
|
|
|
//replace all spaces with an underscore
|
|
while( event_selected.indexOf(" ") > 0 )
|
|
{ event_selected = event_selected.replace(" ","_"); }
|
|
|
|
//replace all spaces with an underscore
|
|
while( team_selected.indexOf(" ") > 0 )
|
|
{ team_selected = team_selected.replace(" ","_"); }
|
|
|
|
var pictures_array = eval(team_selected + event_selected);
|
|
var array_length = pictures_array.length;
|
|
|
|
if( event_selected != 'Select an Event' )
|
|
{
|
|
var num_options = pictures_select.options.length - 1;
|
|
for(var c=num_options;c>0;c--)
|
|
{ pictures_select.remove(c); }
|
|
|
|
for(var i=0;i < array_length;i++)
|
|
{
|
|
var new_option = document.createElement("OPTION");
|
|
new_option.text = pictures_array[i];
|
|
new_option.value = pictures_array[i];
|
|
|
|
pictures_select.style.visibility = "visible";
|
|
pictures_select.options.add(new_option);
|
|
}
|
|
}
|
|
}
|
|
|
|
function ReallyDeleteTeam()
|
|
{
|
|
if( confirm("Do you really want to delete this team?") )
|
|
{ return true; }
|
|
else { return false; }
|
|
}
|
|
|
|
function ReallyDeleteEvent()
|
|
{
|
|
if( confirm("Do you really want to delete this event?") )
|
|
{ return true; }
|
|
else { return false; }
|
|
}
|
|
|
|
function ReallyDeletePicture()
|
|
{
|
|
if( confirm("Do you really want to delete this picture?") )
|
|
{ return true; }
|
|
else { return false; }
|
|
}
|
|
|
|
//-->
|
|
</script>
|
|
<br /> <hr />
|
|
<!--DELETION CAPABILITIES--->
|
|
|
|
<!--DELETE TEAM-->
|
|
<form action='index.php' method='post'>
|
|
<input type='hidden' name='cmd' value='delete_team' />
|
|
<div class='admin_section'>Delete an entire, existing team</div>
|
|
<div class='indented_para'>
|
|
<table cellpadding='4' cellspacing='0' border='0'>
|
|
<tr>
|
|
<td align='right'>Select a team:</td>
|
|
<td>
|
|
<select name='teamname'>
|
|
<option>Select a Team</option>
|
|
<?php print $teams_html;
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td><input type='submit' value='Delete Team' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
<br /> <br />
|
|
|
|
<!--DELETE EVENT-->
|
|
<form action='index.php' method='post'>
|
|
<input type='hidden' name='cmd' value='delete_event' />
|
|
<div class='admin_section'>Delete an entire, existing event of an existing team</div>
|
|
<div class='indented_para'>
|
|
<table cellpadding='4' cellspacing='0' border='0'>
|
|
<tr>
|
|
<td align='right'>Select Team:</td>
|
|
<td>
|
|
<select name='teamname' id='delete_teams_select' onchange="SetEventsHTML('delete')">
|
|
<option>Select a Team</option>
|
|
<?php print $teams_html;
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Select an event:</td>
|
|
<td>
|
|
<select id='delete_events_select' style='visibility:hidden'>
|
|
<option>Select an Event</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td><input type='submit' value='Delete Event' onsubmit='ReallyDeleteEvent()' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
<br /> <br />
|
|
|
|
<!--DELETE PICTURE-->
|
|
<form action='index.php' method='post'>
|
|
<input type='hidden' name='cmd' value='delete_picture' />
|
|
<div class='admin_section'>Delete a picture from an existing team's event</div>
|
|
<div class='indented_para'>
|
|
<table cellpadding='4' cellspacing='0' border='0'>
|
|
<tr>
|
|
<td align='right'>Select Team:</td>
|
|
<td>
|
|
<select name='teamname' id='delete2_teams_select' onchange="SetEventsHTML('delete2')">
|
|
<option>Select a Team</option>
|
|
<?php print $teams_html;
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Select Event:</td>
|
|
<td>
|
|
<select id="delete2_events_select" onchange="SetPicturesHTML()" style='visibility:hidden'>
|
|
<option>Select an Event</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Select Picture:</td>
|
|
<td>
|
|
<select id="delete2_pictures_select" style='visibility:hidden'>
|
|
<option>Select a Picture</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td><input type='submit' value='Delete Picture' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
|
|
<?php
|
|
}
|
|
|
|
function PrintLoginPage()
|
|
{
|
|
?>
|
|
<form action='index.php' method='post'>
|
|
<table cellpadding='4' cellspacing='0' border='0'>
|
|
<tr>
|
|
<td align='right'>Username:</td>
|
|
<td><input type='text' size='20' name='user' /></td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>Password:</td>
|
|
<td><input type='password' size='20' name='password' /></td>
|
|
</tr>
|
|
<tr>
|
|
<td> </td>
|
|
<td><input type='submit' value='login' /></td>
|
|
</table>
|
|
</form>
|
|
<?php
|
|
}
|
|
|
|
?>
|