diff --git a/index.php b/index.php index 1d4df2c..965bd65 100644 --- a/index.php +++ b/index.php @@ -43,9 +43,11 @@ function ReadEntries() { } function SaveFile() { - $filename = substr(md5(uniqid()), 0, 13).'.'.pathinfo($_FILES["uploadedfile"]["name"], PATHINFO_EXTENSION); - $uploaddir = "upload/"; - $uploadfile = $uploaddir.$filename; + $postuploaddir = substr(md5(uniqid()), 0, 13); + $preuploaddir = "upload/"; + $filename = $_FILES["uploadedfile"]["name"]; + $uploadfile = $preuploaddir.$postuploaddir."/".$filename; + mkdir($preuploaddir.$postuploaddir, 0755, true); if (move_uploaded_file($_FILES["uploadedfile"]["tmp_name"], $uploadfile)) { return $uploadfile; } else { @@ -54,11 +56,18 @@ function SaveFile() { } function CheckFile() { - global $GBimagesize; - if (getimagesize($_FILES["uploadedfile"]["tmp_name"])) { - if ((filesize($_FILES["uploadedfile"]["tmp_name"]))<($GBimagesize)) return SaveFile(); - else return false; + global $Titles; + global $GBfilesize; + global $GBupload; + if ($GBfilesize>$_FILES["uploadedfile"]["size"] && $_FILES["uploadedfile"]["size"]>0) { + if (in_array("images",$GBupload)) if (getimagesize($_FILES["uploadedfile"]["tmp_name"])) + return "
"; + if ($GBupload===true) + return "
"."πŸ“Ž ".$Titles["AttachedFile"].""; + if (in_array(mb_strtolower(pathinfo($_FILES["uploadedfile"]["name"], PATHINFO_EXTENSION)),$GBupload)) + return "
"."πŸ“Ž ".$Titles["AttachedFile"].""; } else return false; + return false; } function AddHttp($Link) { @@ -91,7 +100,7 @@ function AddEntry() { $NewEntry["email"]=$_POST["email"]; if (!$GBstriptags) $NewEntry["text"]=$_POST["text"]; else $NewEntry["text"]=strip_tags($_POST["text"]); - if ($UploadedFile) $NewEntry["text"]=$NewEntry["text"]."
"; + if ($UploadedFile) $NewEntry["text"]=$NewEntry["text"].$UploadedFile; $NewEntry["datetime"]=time(); $NewEntry["response"]=""; if ($GBsubjectfield) { @@ -125,6 +134,7 @@ function AddEntryView() { global $GBlinkfield; global $GBsubjectfield; global $GBcategoryfield; + global $GBfilesize; echo "

",$Titles["Page"],"


\n"; if ($PageStatus=="added") echo $Titles["Added"]."
\n"; $captchanumber11=rand(1, 4); @@ -150,6 +160,7 @@ function AddEntryView() { echo " ",$Titles["Text"],":
\n
\n"; if ($GBupload) { echo " \n"; + echo " \n"; echo "
\n"; } if ($GBcaptcha) echo " ",$Titles["Captcha"],": $captchanumber11$captchanumber11$captchanumber12 ",$Titles["CaptchaPlus"]," $captchanumber21$captchanumber22$captchanumber21 = ?
\n"; @@ -157,7 +168,7 @@ function AddEntryView() { echo "\n"; if ($PageStatus=="emptyname") echo $Titles["EmptyName"],"
\n"; if ($PageStatus=="emptytext") echo $Titles["EmptyText"],"
\n"; - if ($PageStatus=="wrongimage") echo $Titles["WrongImage"],"
\n"; + if ($PageStatus=="wrongfile") echo $Titles["WrongFile"],"
\n"; if ($PageStatus=="wrongcaptcha") echo $Titles["WrongCaptcha"],"
\n"; } @@ -364,21 +375,21 @@ if(isset($_POST["submit"])) { if (!$_POST["text"]) $PageStatus="emptytext"; if (!$_POST["name"]) $PageStatus="emptyname"; if ($GBupload) { - if ($_FILES["uploadedfile"]["tmp_name"]) { + if ($_FILES["uploadedfile"]["name"]) { $UploadedFile=CheckFile(); - if (!$UploadedFile) { - $PageStatus="wrongimage"; + if ($UploadedFile==false) { + $PageStatus="wrongfile"; } } } if (($_POST["name"])&&($_POST["text"])) if (isset($_POST["captcha"])&&(md5(base64_encode($_POST["captcha"]))==$_SESSION["captcha"])) { - if (!isset($PageStatus)=="wrongimage") { + if (!isset($PageStatus)=="wrongfile") { AddEntry(); if ($GBnotificationmailto) SendMail(); } } else if (!$GBcaptcha) { - if (!isset($PageStatus)=="wrongimage") { + if (!isset($PageStatus)=="wrongfile") { AddEntry(); if ($GBnotificationmailto) SendMail(); } diff --git a/settings.php b/settings.php index a0e0f23..7abb8ef 100644 --- a/settings.php +++ b/settings.php @@ -13,9 +13,20 @@ $GBpassword="password"; $GBpagination=10; // pagination for entries, 0 - disabled $GBreadmore=255; // number of symbols for 'Read More' feature, 0 - shows full entries $GBsearch=true; // enable or disable search bar -$GBcaptcha=false; // enable or disable captcha -$GBupload=true; // enable or disable upload image feature -$GBimagesize=1048576; // maximum image size +$GBcaptcha=true; // enable or disable captcha +$GBupload=array( // enable or disable upload feature + 0=>"images", // $GBupload=false; - disabled + 1=>"pdf", // $GBupload=true; - enabled for all files + 2=>"odt", // $GBupload=array(); - enabled for file types from this array + 3=>"odx", + 4=>"doc", + 5=>"docx", + 6=>"xls", + 7=>"xlsx", + 8=>"txt", + 9=>"zip", + 10=>"rar"); +$GBfilesize=1048576; // maximum file size $GBnotificationmailto=""; // leave empty if you don't want send notification $GBnotificationmailfrom=""; $GBtextlenght=7168; // maximum size of entry text @@ -79,8 +90,8 @@ $Titles["Next"]=">>"; $Titles["Search"]="Search"; $Titles["NoResult"]="No search result"; $Titles["ReadMore"]="Read more"; -$Titles["FileUpload"]="Upload image:"; -$Titles["WrongImage"]="Can't upload image."; +$Titles["FileUpload"]="Upload file:"; +$Titles["WrongFile"]="Can't upload file."; $Titles["Subject"]="Subject"; $Titles["Category"]="Category"; $Titles["About"]="about"; @@ -89,4 +100,5 @@ $Titles["Replied"]="replied"; $Titles["Replying"]="Replying to this message:"; $Titles["Locked"]="Locked"; $Titles["Sticky"]="Sticky"; +$Titles["AttachedFile"]="Attached file"; ?> diff --git a/settings_ru.php b/settings_ru.php index 1d06fd5..3f1e1e4 100644 --- a/settings_ru.php +++ b/settings_ru.php @@ -15,8 +15,19 @@ $GBpagination=10; // количСство записСй Π½Π° страницС, $GBreadmore=0; // количСство символов для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 'Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅', 0 - ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ записи ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ $GBsearch=true; // Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ строки поиска $GBcaptcha=true; // Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ -$GBupload=true; // Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π½ΠΈΠ΅ возмоТности Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ -$GBimagesize=1048576; // ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния +$GBupload=array( // Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² + 0=>"images", // $GBupload=false; - ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ + 1=>"pdf", // $GBupload=true; - Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ для всСх Ρ„Π°ΠΉΠ»ΠΎΠ² + 2=>"odt", // $GBupload=array(); - Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ для Ρ‚ΠΈΠΏΠΎΠ² пСрСчислСнных Π² этом массивС + 3=>"odx", + 4=>"doc", + 5=>"docx", + 6=>"xls", + 7=>"xlsx", + 8=>"txt", + 9=>"zip", + 10=>"rar"); +$GBfilesize=1048576; // ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° $GBnotificationmailto=""; // ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»Π΅ пустым, Ссли Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… записях $GBnotificationmailfrom=""; $GBtextlenght=7168; // максимальноС количСство символов для тСкста записи @@ -80,8 +91,8 @@ $Titles["Next"]="Π’ΠΏΠ΅Ρ€Π΅Π΄"; $Titles["Search"]="Поиск"; $Titles["NoResult"]="НичСго Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"; $Titles["ReadMore"]="Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅"; -$Titles["FileUpload"]="Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:"; -$Titles["WrongImage"]="НС ΠΌΠΎΠ³Ρƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅."; +$Titles["FileUpload"]="Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»:"; +$Titles["WrongFile"]="НС ΠΌΠΎΠ³Ρƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»."; $Titles["Subject"]="Π’Π΅ΠΌΠ°"; $Titles["Category"]="ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ"; $Titles["About"]="ΠΎ"; @@ -90,4 +101,5 @@ $Titles["Replied"]="ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»"; $Titles["Replying"]="ΠžΡ‚Π²Π΅Ρ‚ Π½Π° это сообщСниС:"; $Titles["Locked"]="НСльзя ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ"; $Titles["Sticky"]="Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½ΠΎΠ΅ свСрху"; +$Titles["AttachedFile"]="ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»"; ?>