187 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| /**
 | |
|  * Administration program file of PHPCSV Guestbook version 0.94
 | |
|  * See settings.php for configuration.
 | |
|  * Edit page.php for change appearance.
 | |
|  */
 | |
| session_start();
 | |
| include "settings.php";
 | |
| 
 | |
| function ReadEntries() {
 | |
|     global $GBdata;
 | |
|     global $DataStatus;
 | |
|     $fhandle=fopen($GBdata,"r") or $DataStatus="empty";
 | |
|     for($e=0; $entrydata=fgetcsv($fhandle, 16384, ","); $e++) {
 | |
|         $Entries["$e"]=$entrydata;
 | |
|         $Entries["$e"][7]=$e+1;
 | |
|     } fclose($fhandle);
 | |
|     if (!$Entries[0]) $DataStatus="empty";
 | |
|     return $Entries;
 | |
| }
 | |
| 
 | |
| function SaveEntries() {
 | |
|     global $GBdata;
 | |
|     global $AdminEntries;
 | |
|     $fhandle=fopen($GBdata,"w");
 | |
|     foreach($AdminEntries as $e=>$Entry) fputcsv($fhandle,$Entry);
 | |
|     fclose($fhandle);
 | |
| }
 | |
| 
 | |
| function AdminHeaderView() {
 | |
|     global $Titles;
 | |
|     global $GBadmin;
 | |
|     global $GBpassword;
 | |
|     echo "<h2><a href=\"index.php\">$Titles[AdminHeader]</a></h2>\n";
 | |
|     if ($_SESSION["SessionStatus"]==(md5($GBadmin.$GBpassword))) {
 | |
|         echo "<form action=administration.php method=post>\n";
 | |
|         echo "  <p align=\"right\"><input type=submit name=\"exit\" value=\"$Titles[AdminExit]\"></p>\n";
 | |
|         echo "</form>\n";
 | |
|         echo "  $Titles[AdminHello], $GBadmin!\n";
 | |
|     }
 | |
| }
 | |
| 
 | |
| function AdminEntriesView() {
 | |
|     global $Titles;
 | |
|     global $DataStatus;
 | |
|     global $GBadmin;
 | |
|     global $GBpassword;
 | |
|     global $AdminEntries;
 | |
|     global $GBpagination;
 | |
|     if ($_SESSION["SessionStatus"]==(md5($GBadmin.$GBpassword))) if ($DataStatus=="empty") echo "$Titles[EmptyFile]\n";
 | |
|         else if ($_SESSION["DeleteStatus"]=="deletion") {
 | |
|             echo "  $Titles[AdminSureDel] ",count($_SESSION["DeleteEntries"])," $Titles[AdminSureDelMessages]?\n";
 | |
|             echo "<form action=administration.php method=post>\n";
 | |
|             echo "  <input type=submit name=\"applydelete\" value=\"$Titles[AdminDelete]\">\n";
 | |
|             echo "  <input type=submit name=\"canceldelete\" value=\"$Titles[AdminCancel]\">\n";
 | |
|             echo "</form>\n";
 | |
|         } else if ($_SESSION["EditStatus"]) {
 | |
|             echo "  $Titles[AdminMessage] ", ($_SESSION["EditStatus"]),", ",date("j.m.Y, H:i",$AdminEntries[($_SESSION["EditStatus"]-1)][5]),":<br>\n";
 | |
|             echo "<form action=administration.php method=post>\n";
 | |
|             echo "  $Titles[AdminName]: <input type=text name=\"editname\" value=\"",$AdminEntries[($_SESSION["EditStatus"]-1)][0],"\" maxlength=255><br>\n";
 | |
|             echo "  $Titles[City] <input type=text name=\"editfrom\" value=\"",$AdminEntries[($_SESSION["EditStatus"]-1)][1],"\" maxlength=255><br>\n";
 | |
|             echo "  $Titles[Link] <input type=text name=\"editlink\" value=\"",$AdminEntries[($_SESSION["EditStatus"]-1)][2],"\" maxlength=255><br>\n";
 | |
|             echo "  $Titles[Email] <input type=text name=\"editmail\" value=\"",$AdminEntries[($_SESSION["EditStatus"]-1)][3],"\" maxlength=255><br>\n";
 | |
|             echo "  $Titles[AdminMessage]:<br>\n  <textarea name=\"edittext\" wrap=virtual cols=50 rows=5  maxlength=7168>",$AdminEntries[($_SESSION["EditStatus"]-1)][4],"</textarea><br>\n";
 | |
|             echo "  $Titles[Response]:<br>\n  <textarea name=\"editresp\" wrap=virtual cols=50 rows=5  maxlength=7168>",$AdminEntries[($_SESSION["EditStatus"]-1)][6],"</textarea><br>\n";
 | |
|             echo "  <input type=submit name=\"submiteedit\" value=\"$Titles[AdminApply]\"> ";
 | |
|             echo "<input type=submit name=\"applydelete\" value=\"$Titles[AdminDelete]\"> ";
 | |
|             echo "<input type=submit name=\"canceledit\" value=\"$Titles[AdminCancel]\">\n";
 | |
|             echo "</form>\n";
 | |
|         } else {
 | |
|             if (($GBpagination>0)&&(count($AdminEntries)>$GBpagination)) {
 | |
|                 $Entries=array_reverse($AdminEntries);
 | |
|                 if ($_GET['page']) switch ($_GET['page']) {
 | |
|                     case $Titles[First]:
 | |
|                         $CurrentPage=0;
 | |
|                         break;
 | |
|                     case $Titles[Last]:
 | |
|                         $CurrentPage=intdiv(count($Entries),$GBpagination);
 | |
|                         break;
 | |
|                     case "$Titles[Previous]":
 | |
|                         $CurrentPage=$_SESSION['currentpage']-1;
 | |
|                         break;
 | |
|                     case "$Titles[Next]":
 | |
|                         $CurrentPage=$_SESSION['currentpage']+1;
 | |
|                         break;
 | |
|                     default:
 | |
|                         $CurrentPage=$_GET['page']-1;
 | |
|                 } else $CurrentPage=0;
 | |
|                 echo "<form action=administration.php method=\"get\">\n";
 | |
|                 if ($CurrentPage>0) {
 | |
|                     echo "    <input type=\"submit\" value=\"$Titles[First]\" name=\"page\"/>\n";
 | |
|                     echo "    <input type=\"submit\" value=\"$Titles[Previous]\" name=\"page\"/>\n";
 | |
|                 }
 | |
|                 for ($p = ($CurrentPage-2); $p <= ($CurrentPage+2); $p++) {
 | |
|                     $page = $p+1;
 | |
|                     if (($p>=0)&&($p<(count($Entries)/$GBpagination))) {
 | |
|                         echo "    <input type=\"submit\" value=\"$page\" name=\"page\"";
 | |
|                         if ($p==$CurrentPage) echo " disabled";
 | |
|                         echo "/>\n";
 | |
|                     }
 | |
|                 }
 | |
|                 if ($CurrentPage<((count($Entries)/$GBpagination)-1)) {
 | |
|                     echo "    <input type=\"submit\" value=\"$Titles[Next]\" name=\"page\"/>\n";
 | |
|                     echo "    <input type=\"submit\" value=\"$Titles[Last]\" name=\"page\"/>\n";
 | |
|                 }
 | |
|                 echo "</form>\n";
 | |
|                 echo "<form action=administration.php method=post>\n";
 | |
|                 echo "<table border=1  width=\"100%\">\n  <tr><th></th><th>$Titles[AdminName]</th><th>$Titles[City]</th><th>$Titles[Link]</th><th>$Titles[Email]</th><th>$Titles[AdminMessage]</th><th>$Titles[Response]</th><th>$Titles[AdminDate]</th><th></th></tr>\n";
 | |
|                 for ($e = ($GBpagination*$CurrentPage); $e < ($GBpagination*($CurrentPage+1)); $e++) {
 | |
|                     if ($e>=count($Entries)) break;
 | |
|                     $Entry = $Entries[$e];
 | |
|                     echo "  <tr><td>",($Entry[7]),"<input type=checkbox name=\"cb",($Entry[7]-1),"\" value=\"checked\"></td><td>$Entry[0]</td><td>$Entry[1]</td><td>$Entry[2]</td><td>$Entry[3]</td><td>",nl2br($Entry[4]),"</td><td>",nl2br($Entry[6]),"</td><td>",date("j.m.Y, H:i",$Entry[5]),"</td><td><input type=submit name=\"submit",($Entry[7]-1),"\" value=\"$Titles[AdminEdit]\"></td></tr>\n";
 | |
|                 }
 | |
|                 $_SESSION['currentpage']=$CurrentPage;
 | |
|             } else {
 | |
|                 echo "<form action=administration.php method=post>\n";
 | |
|                 echo "<table border=1  width=\"100%\">\n  <tr><th></th><th>$Titles[AdminName]</th><th>$Titles[City]</th><th>$Titles[Link]</th><th>$Titles[Email]</th><th>$Titles[AdminMessage]</th><th>$Titles[Response]</th><th>$Titles[AdminDate]</th><th></th></tr>\n";
 | |
|                 $Entries=array_reverse($AdminEntries);
 | |
|                 foreach($Entries as $e=>$Entry) echo "  <tr><td>",($Entry[7]),"<input type=checkbox name=\"cb",($Entry[7]-1),"\" value=\"checked\"></td><td>$Entry[0]</td><td>$Entry[1]</td><td>$Entry[2]</td><td>$Entry[3]</td><td>",nl2br($Entry[4]),"</td><td>",nl2br($Entry[6]),"</td><td>",date("j.m.Y, H:i",$Entry[5]),"</td><td><input type=submit name=\"submit",($Entry[7]-1),"\" value=\"$Titles[AdminEdit]\"></td></tr>\n";
 | |
|             }
 | |
|             echo "</table>\n";
 | |
|             echo "  <input type=submit name=\"submitdelete\" value=\"$Titles[AdminDeleteChecked]\">\n";
 | |
|             echo "</form>\n";
 | |
|         } else {
 | |
|             if (($_POST["login"])&&(!$_SESSION["SessionStatus"])) echo "$Titles[WrongLogin]<br>\n";
 | |
|             echo "<form action=administration.php method=post>\n";
 | |
|             echo "  $Titles[Login] <input type=text name=\"adminlogin\" maxlength=255><br>\n";
 | |
|             echo "  $Titles[Password] <input type=password name=\"adminpass\" maxlength=255><br>\n";
 | |
|             echo "  <input type=submit name=\"login\" value=\"$Titles[Enter]\">\n";
 | |
|             echo "</form>\n";
 | |
|         }
 | |
| }
 | |
| 
 | |
| if ((($_POST["adminlogin"])==$GBadmin)&&(($_POST["adminpass"])==$GBpassword)) $_SESSION["SessionStatus"]=(md5($GBadmin.$GBpassword));
 | |
| if ($_POST["exit"]) $_SESSION["SessionStatus"]="";
 | |
| if ($_POST["canceldelete"]) {
 | |
|     $_SESSION["DeleteStatus"]="";
 | |
|     Unset($_SESSION["DeleteEntries"]);
 | |
|     }
 | |
| if ($_POST["canceledit"]) Unset($_SESSION["EditStatus"]);
 | |
| if ($_SESSION["SessionStatus"]==(md5($GBadmin.$GBpassword))) {
 | |
|     $AdminEntries=ReadEntries();
 | |
|     if ($_POST["submitdelete"]) {
 | |
|         $_SESSION["DeleteStatus"]="deletion";
 | |
|         foreach($AdminEntries as $e=>$Entry) if ($_POST["cb$e"]) $_SESSION["DeleteEntries"][]=$e;
 | |
|         if (!count($_SESSION["DeleteEntries"])) $_SESSION["DeleteStatus"]="";
 | |
|     } if (($_POST["submiteedit"])&&($_SESSION["EditStatus"])) {
 | |
|         $AdminEntries[($_SESSION["EditStatus"]-1)][0]=$_POST["editname"];
 | |
|         $AdminEntries[($_SESSION["EditStatus"]-1)][1]=$_POST["editfrom"];
 | |
|         $AdminEntries[($_SESSION["EditStatus"]-1)][2]=$_POST["editlink"];
 | |
|         $AdminEntries[($_SESSION["EditStatus"]-1)][3]=$_POST["editmail"];
 | |
|         $AdminEntries[($_SESSION["EditStatus"]-1)][4]=$_POST["edittext"];
 | |
|         $AdminEntries[($_SESSION["EditStatus"]-1)][6]=$_POST["editresp"];
 | |
|         SaveEntries();
 | |
|         Unset($_SESSION["EditStatus"]);
 | |
|         $AdminEntries=ReadEntries();
 | |
|     } if ($_POST["applydelete"]) {
 | |
|         if ($_SESSION["EditStatus"]) {
 | |
|             Unset($AdminEntries[($_SESSION["EditStatus"]-1)]);
 | |
|             SaveEntries();
 | |
|             Unset($_SESSION["EditStatus"]);
 | |
|             $AdminEntries=ReadEntries();
 | |
|         } if ($_SESSION["DeleteStatus"]) {
 | |
|             foreach($_SESSION["DeleteEntries"] as $e=>$DelEnt) Unset($AdminEntries[$DelEnt]);
 | |
|             SaveEntries();
 | |
|             Unset($_SESSION["DeleteEntries"]);
 | |
|             $_SESSION["DeleteStatus"]="";
 | |
|             $AdminEntries=ReadEntries();
 | |
|         }
 | |
|     } if (!$_SESSION["EditStatus"]) for ($e=0;$e<count($AdminEntries);$e++) if ($_POST["submit$e"]) $_SESSION["EditStatus"]=($e+1);
 | |
| }
 | |
| ?><html>
 | |
| <head>
 | |
|   <title><?php echo $Titles[HeadTitle];?></title>
 | |
|   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | |
|   <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Ubuntu:regular&subset=Latin,Cyrillic">
 | |
|   <link rel="stylesheet" type="text/css" href="anthrstlsht.css">
 | |
| </head>
 | |
| <body>
 | |
| <div class="container">
 | |
| <?php AdminHeaderView();?>
 | |
| <hr>
 | |
| <?php AdminEntriesView();?>
 | |
| </div>
 | |
| </body>
 | |
| </html>
 |