Как да забраня качването на други файлове ?

taneca

Registered
Искам да попитам, как да забраня да се качват други файлове, освен тези с разширението .swf ?
Ето ми заявката:
Код:
<?php
$chars="set character set latin1";
mysql_query($chars);
if($_POST['games'])
{

$name = $_POST['name'];
$swf = $_FILES['swf']['name'];
$swf_size1 = ($_FILES['swf']['size']/11124)/11124;
$swf_size1 = round($swf_size1,15);
$swf_type = strtolower(end(explode('.' , $swf)));
$jpg = $_FILES['jpg']['name'];
$jpg_size1 = ($_FILES['jpg']['size']/1124)/1124;
$jpg_size1 = round($jpg_size1,15);
$jpg_type = strtolower(end(explode('.' , $jpg)));
$author = $_SESSION['username'];
$cat = $_POST['cat'];
$opisanie = $_POST['opisanie'];

   if ($name == NULL || $swf == NULL || $opisanie == NULL || $jpg == NULL || $cat == NULL) {
   echo '<br><font color="red"><b>Попълнете всички полета !</b></font>';
   } else {

// save
$query = mysql_query("INSERT INTO `games` (name, link, pic, author, cat, ok, opisanie) VALUES ('$name', 'games/$swf', 'games/pic/$jpg', '$author', '$cat', '0', '$opisanie')")or die (mysql_error());
{
$sql2 = mysql_query("SELECT * FROM games ORDER BY id DESC LIMIT 1");
while ($row = mysql_fetch_array($sql2))
{
   if ($query)
   {
   copy ($_FILES['swf']['tmp_name'], "games/$swf");
   copy ($_FILES['jpg']['tmp_name'], "games/pic/$jpg");
   echo '<br><b>Вие качихте играта, сега чакаме админите да я одобрят !</b>';
   }
   }
}
}
}
?>
 
PHP:
<?php
$chars="set character set latin1";
mysql_query($chars);
if($_POST['games'])
{

$name = $_POST['name'];
$swf = $_FILES['swf']['name'];
$swf_size1 = ($_FILES['swf']['size']/11124)/11124;
$swf_size1 = round($swf_size1,15);
$swf_type = strtolower(end(explode('.' , $swf)));
$jpg = $_FILES['jpg']['name'];
$jpg_size1 = ($_FILES['jpg']['size']/1124)/1124;
$jpg_size1 = round($jpg_size1,15);
$jpg_type = strtolower(end(explode('.' , $jpg)));
$author = $_SESSION['username'];
$cat = $_POST['cat'];
$opisanie = $_POST['opisanie'];

   if ($name == NULL || $swf == NULL || $opisanie == NULL || $jpg == NULL || $cat == NULL || !$swf_type) {
   echo '<br><font color="red"><b>Попълнете всички полета !</b></font>';
   } else {

// save
$query = mysql_query("INSERT INTO `games` (name, link, pic, author, cat, ok, opisanie) VALUES ('$name', 'games/$swf', 'games/pic/$jpg', '$author', '$cat', '0', '$opisanie')")or die (mysql_error());
{
$sql2 = mysql_query("SELECT * FROM games ORDER BY id DESC LIMIT 1");
while ($row = mysql_fetch_array($sql2))
{
   if ($query)
   {
   copy ($_FILES['swf']['tmp_name'], "games/$swf");
   copy ($_FILES['jpg']['tmp_name'], "games/pic/$jpg");
   echo '<br><b>Вие качихте играта, сега чакаме админите да я одобрят !</b>';
   }
   }
}
}
}
?>
 
Еми ето ти една примерна проверка:
PHP:
if( $swf_type != swf ) {
echo "greshen format";
}

Ето още един вариант:
PHP:
$extensions = array("jpg","mp3","txt","zip");//позволени типове
$extension_file = end(explode(".",$file));
$extension_file = strtolower($extension_file);
if(!in_array($extension_file,$extensions)){
echo "Непозволен тип файл";
exit;
}
 
С игрите се получава, но с картинките със запетая ли да ги отделям файловете по горния начин ?
Или ако може още при добавянето на input полетата да проверява файловете...
 
Ако работиш с първия код, който ти дадох ги разделяш с and и слагаш другото условие. При добавянето няма как да стане. Проверката е вече като се изпратят данните.
 
Стана :) мерси много +1
Код:
   if( $swf_type != jpg and jpeg and png and gif ) {
   echo '<br><font color="red"><b>Не позволен формат на картинката !</b></font>';
   } else { останалия код... }
 

Back
Горе