Added upload image feature
This commit is contained in:
parent
7b1bfc0dd3
commit
cebfaca5e5
4
README
4
README
|
@ -1,4 +1,4 @@
|
||||||
PHPCSV Guestbook version 0.96
|
PHPCSV Guestbook version 0.97
|
||||||
|
|
||||||
Simple php guestbook with csv file data storage.
|
Simple php guestbook with csv file data storage.
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Archive: https://github.com/zlaxy/phpcsvguestbook/archive/master.zip
|
||||||
|
|
||||||
2. Edit settings.php: change $GBadmin and $GBpassword (and other variables if necessary)
|
2. Edit settings.php: change $GBadmin and $GBpassword (and other variables if necessary)
|
||||||
|
|
||||||
3. Check privileges for access to files: data storage (default: gbdb.csv) must have write permissions. Other files need only read rights.
|
3. Check privileges for access to files: data storage (default: gbdb.csv) must have write permissions. If you enabled upload feature, 'upload' directory must have rwx permissions. Other files need only read rights.
|
||||||
|
|
||||||
Using:
|
Using:
|
||||||
|
|
||||||
|
|
55
index.php
55
index.php
|
@ -33,15 +33,36 @@ function ReadEntries() {
|
||||||
return $Entries;
|
return $Entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function SaveFile() {
|
||||||
|
$filename = substr(md5(uniqid()), 0, 13).'.'.pathinfo($_FILES['uploadedfile']['name'], PATHINFO_EXTENSION);
|
||||||
|
$uploaddir = 'upload/';
|
||||||
|
$uploadfile = $uploaddir.$filename;
|
||||||
|
if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $uploadfile)) {
|
||||||
|
return $uploadfile;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function CheckFile() {
|
||||||
|
global $GBimagesize;
|
||||||
|
if (getimagesize($_FILES['uploadedfile']['tmp_name'])) {
|
||||||
|
if ((filesize($_FILES['uploadedfile']['tmp_name']))<($GBimagesize)) return SaveFile();
|
||||||
|
else return false;
|
||||||
|
} else return false;
|
||||||
|
}
|
||||||
|
|
||||||
function AddEntry() {
|
function AddEntry() {
|
||||||
global $GBdata;
|
global $GBdata;
|
||||||
global $Titles;
|
global $Titles;
|
||||||
global $PageStatus;
|
global $PageStatus;
|
||||||
|
global $UploadedFile;
|
||||||
$NewEntry[name]=$_POST['name'];
|
$NewEntry[name]=$_POST['name'];
|
||||||
$NewEntry[from]=$_POST['from'];
|
$NewEntry[from]=$_POST['from'];
|
||||||
$NewEntry[link]=$_POST['link'];
|
$NewEntry[link]=$_POST['link'];
|
||||||
$NewEntry[email]=$_POST['email'];
|
$NewEntry[email]=$_POST['email'];
|
||||||
$NewEntry[text]=$_POST['text'];
|
if ($UploadedFile) $NewEntry[text]=$_POST['text']." <br><img src=\"$UploadedFile\">";
|
||||||
|
else $NewEntry[text]=$_POST['text'];
|
||||||
$NewEntry[datetime]=time();
|
$NewEntry[datetime]=time();
|
||||||
$NewEntry[response]="";
|
$NewEntry[response]="";
|
||||||
$fhandle=fopen($GBdata,"a");
|
$fhandle=fopen($GBdata,"a");
|
||||||
|
@ -57,6 +78,7 @@ function AddEntryView() {
|
||||||
global $PageStatus;
|
global $PageStatus;
|
||||||
global $GBcaptcha;
|
global $GBcaptcha;
|
||||||
global $GBtextlenght;
|
global $GBtextlenght;
|
||||||
|
global $GBupload;
|
||||||
echo "<h2>",$Titles[Page],"</h2><br>\n";
|
echo "<h2>",$Titles[Page],"</h2><br>\n";
|
||||||
if ($PageStatus=="added") echo "$Titles[Added]"; else {
|
if ($PageStatus=="added") echo "$Titles[Added]"; else {
|
||||||
$captchanumber11=rand(1, 4);
|
$captchanumber11=rand(1, 4);
|
||||||
|
@ -64,17 +86,22 @@ function AddEntryView() {
|
||||||
$captchanumber21=rand(1, 4);
|
$captchanumber21=rand(1, 4);
|
||||||
$captchanumber22=rand(0, 9);
|
$captchanumber22=rand(0, 9);
|
||||||
$_SESSION['captcha']=md5(base64_encode(($captchanumber11.$captchanumber12)+($captchanumber21.$captchanumber22)));
|
$_SESSION['captcha']=md5(base64_encode(($captchanumber11.$captchanumber12)+($captchanumber21.$captchanumber22)));
|
||||||
echo "<form action=index.php method=post>\n";
|
echo "<form action=index.php method=post enctype=\"multipart/form-data\">\n";
|
||||||
echo " $Titles[Name]: <input type=text name=\"name\" value=\"",$Values["name"],"\" maxlength=255> ($Titles[Required])<br>\n";
|
echo " $Titles[Name]: <input type=text name=\"name\" value=\"",$Values["name"],"\" maxlength=255> ($Titles[Required])<br>\n";
|
||||||
echo " $Titles[City]: <input type=text name=\"from\" value=\"",$Values["from"],"\" maxlength=255><br>\n";
|
echo " $Titles[City]: <input type=text name=\"from\" value=\"",$Values["from"],"\" maxlength=255><br>\n";
|
||||||
echo " $Titles[Link]: <input type=text name=\"link\" value=\"",$Values["link"],"\" maxlength=255><br>\n";
|
echo " $Titles[Link]: <input type=text name=\"link\" value=\"",$Values["link"],"\" maxlength=255><br>\n";
|
||||||
echo " $Titles[Email]: <input type=text name=\"email\" value=\"",$Values["email"],"\" maxlength=255> ($Titles[NotPublic])<br>\n";
|
echo " $Titles[Email]: <input type=text name=\"email\" value=\"",$Values["email"],"\" maxlength=255> ($Titles[NotPublic])<br>\n";
|
||||||
echo " $Titles[Text]:<br>\n <textarea name=\"text\" wrap=virtual cols=50 rows=5 maxlength=$GBtextlenght>",$Values["text"],"</textarea><br>\n";
|
echo " $Titles[Text]:<br>\n <textarea name=\"text\" wrap=virtual cols=50 rows=5 maxlength=$GBtextlenght>",$Values["text"],"</textarea><br>\n";
|
||||||
|
if ($GBupload) {
|
||||||
|
echo " <label for=\"file\">".$Titles[FileUpload]."</label>\n";
|
||||||
|
echo " <input type=\"file\" name=\"uploadedfile\"><br>\n";
|
||||||
|
}
|
||||||
if ($GBcaptcha) echo " $Titles[Captcha]: <font class=\"text\">$captchanumber11</font><font>$captchanumber11</font><font>$captchanumber12</font> $Titles[CaptchaPlus] <font>$captchanumber21</font><font>$captchanumber22</font><font class=\"text\">$captchanumber21</font> = <input type=text name=\"captcha\" size=2 maxlength=2> ?<br>\n";
|
if ($GBcaptcha) echo " $Titles[Captcha]: <font class=\"text\">$captchanumber11</font><font>$captchanumber11</font><font>$captchanumber12</font> $Titles[CaptchaPlus] <font>$captchanumber21</font><font>$captchanumber22</font><font class=\"text\">$captchanumber21</font> = <input type=text name=\"captcha\" size=2 maxlength=2> ?<br>\n";
|
||||||
echo " <input type=submit name=\"submit\" value=\"$Titles[Submit]\">\n";
|
echo " <input type=submit name=\"submit\" value=\"$Titles[Submit]\">\n";
|
||||||
echo "</form>\n";
|
echo "</form>\n";
|
||||||
if ($PageStatus=="emptyname") echo "$Titles[EmptyName]<br>\n";
|
if ($PageStatus=="emptyname") echo "$Titles[EmptyName]<br>\n";
|
||||||
if ($PageStatus=="emptytext") echo "$Titles[EmptyText]<br>\n";
|
if ($PageStatus=="emptytext") echo "$Titles[EmptyText]<br>\n";
|
||||||
|
if ($PageStatus=="wrongimage") echo "$Titles[WrongImage]<br>\n";
|
||||||
if ($PageStatus=="wrongcaptcha") echo "$Titles[WrongCaptcha]<br>\n";
|
if ($PageStatus=="wrongcaptcha") echo "$Titles[WrongCaptcha]<br>\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -213,15 +240,27 @@ function EntriesView() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if($_POST['submit']) {
|
if($_POST['submit']) {
|
||||||
if(!$_POST['text']) $PageStatus="emptytext";
|
if (!$_POST['text']) $PageStatus="emptytext";
|
||||||
if(!$_POST['name']) $PageStatus="emptyname";
|
if (!$_POST['name']) $PageStatus="emptyname";
|
||||||
if(($_POST['name'])&&($_POST['text']))
|
if ($GBupload) {
|
||||||
|
if ($_FILES['uploadedfile']['tmp_name']) {
|
||||||
|
$UploadedFile=CheckFile();
|
||||||
|
if (!$UploadedFile) {
|
||||||
|
$PageStatus="wrongimage";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (($_POST['name'])&&($_POST['text']))
|
||||||
if ($_POST["captcha"]&&(md5(base64_encode($_POST["captcha"]))==$_SESSION["captcha"])) {
|
if ($_POST["captcha"]&&(md5(base64_encode($_POST["captcha"]))==$_SESSION["captcha"])) {
|
||||||
AddEntry();
|
if (!$PageStatus=="wrongimage") {
|
||||||
if ($GBnotificationmailto) SendMail();
|
|
||||||
} else if (!$GBcaptcha) {
|
|
||||||
AddEntry();
|
AddEntry();
|
||||||
if ($GBnotificationmailto) SendMail();
|
if ($GBnotificationmailto) SendMail();
|
||||||
|
}
|
||||||
|
} else if (!$GBcaptcha) {
|
||||||
|
if (!$PageStatus=="wrongimage") {
|
||||||
|
AddEntry();
|
||||||
|
if ($GBnotificationmailto) SendMail();
|
||||||
|
}
|
||||||
} else $PageStatus="wrongcaptcha";
|
} else $PageStatus="wrongcaptcha";
|
||||||
if (($PageStatus)&&!($PageStatus=="added")) {
|
if (($PageStatus)&&!($PageStatus=="added")) {
|
||||||
$SESSION["value"]["name"]=$_POST['name'];
|
$SESSION["value"]["name"]=$_POST['name'];
|
||||||
|
|
|
@ -14,6 +14,8 @@ $GBpagination=10; // pagination for entries, 0 - disabled
|
||||||
$GBreadmore=255; // number of symbols for 'Read More' feature, 0 - shows full entries
|
$GBreadmore=255; // number of symbols for 'Read More' feature, 0 - shows full entries
|
||||||
$GBsearch=true; // enable or disable search bar
|
$GBsearch=true; // enable or disable search bar
|
||||||
$GBcaptcha=true; // enable or disable captcha
|
$GBcaptcha=true; // enable or disable captcha
|
||||||
|
$GBupload=true; // enable or disable upload image feature
|
||||||
|
$GBimagesize=1048576; // maximum image size
|
||||||
$GBnotificationmailto=""; // leave empty if you don't want send notification
|
$GBnotificationmailto=""; // leave empty if you don't want send notification
|
||||||
$GBnotificationmailfrom="";
|
$GBnotificationmailfrom="";
|
||||||
$GBtextlenght=7168; // maximum size of entry text
|
$GBtextlenght=7168; // maximum size of entry text
|
||||||
|
@ -63,4 +65,6 @@ $Titles[Next]=">>";
|
||||||
$Titles[Search]="Search";
|
$Titles[Search]="Search";
|
||||||
$Titles[NoResult]="No search result";
|
$Titles[NoResult]="No search result";
|
||||||
$Titles[ReadMore]="Read more";
|
$Titles[ReadMore]="Read more";
|
||||||
|
$Titles[FileUpload]="Upload image:";
|
||||||
|
$Titles[WrongImage]="Can't upload image.";
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -15,6 +15,8 @@ $GBpagination=10; // количество записей на странице,
|
||||||
$GBreadmore=0; // количество символов для функции 'Читать далее', 0 - показывать записи полностью
|
$GBreadmore=0; // количество символов для функции 'Читать далее', 0 - показывать записи полностью
|
||||||
$GBsearch=true; // включение или отключение строки поиска
|
$GBsearch=true; // включение или отключение строки поиска
|
||||||
$GBcaptcha=true; // включение или отключение капчи
|
$GBcaptcha=true; // включение или отключение капчи
|
||||||
|
$GBupload=true; // включение или отключние возможности загрузки картинок
|
||||||
|
$GBimagesize=1048576; // максимальный размер изображения
|
||||||
$GBnotificationmailto=""; // оставьте поле пустым, если не хотите отправки уведомлений о новых записях
|
$GBnotificationmailto=""; // оставьте поле пустым, если не хотите отправки уведомлений о новых записях
|
||||||
$GBnotificationmailfrom="";
|
$GBnotificationmailfrom="";
|
||||||
$GBtextlenght=7168; // максимальное количество символов для текста записи
|
$GBtextlenght=7168; // максимальное количество символов для текста записи
|
||||||
|
@ -64,4 +66,6 @@ $Titles[Next]="Вперед";
|
||||||
$Titles[Search]="Поиск";
|
$Titles[Search]="Поиск";
|
||||||
$Titles[NoResult]="Ничего не найдено";
|
$Titles[NoResult]="Ничего не найдено";
|
||||||
$Titles[ReadMore]="Читать далее";
|
$Titles[ReadMore]="Читать далее";
|
||||||
|
$Titles[FileUpload]="Загрузить изображение:";
|
||||||
|
$Titles[WrongImage]="Не могу загрузить изображение.";
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in New Issue