Проблем с ъплод в система за новини

pro12

Registered
Защо ъплолда не качва снимка?
Код:
<?php 
if(isset($_POST['izprati'])){ 
$data = date("j/n/Y G:i:s"); 
$ime = $_POST['ime']; 
$ime = htmlspecialchars($ime); 
$ime = strip_tags($ime);  
$novina = $_POST['novina']; 
$snimka = $_POST['snimka']; 
$snimka = htmlspecialchars($snimka); 
$snimka = strip_tags($snimka);    
$iztochnik = $_POST['iztochnik']; 
$iztochnik = htmlspecialchars($iztochnik); 
$iztochnik = strip_tags($iztochnik); 
$author = $_POST['author']; 
$author = htmlspecialchars($author); 
$author = strip_tags($author); 
$type = $_POST['type']; 
$type = htmlspecialchars($type); 
$type = strip_tags($type);
$files = $_FILES['avatar']['tmp_name'];
$names = $_FILES['avatar']['name'];
$link = $names;
$shirenie = end(explode('.',$names));
$maxwidth = "15000"; // максимална ширина
$maxheight = "15000"; // максималната височина
if($ime== NULL){  
echo "Попълнете име"; 
exit; 
} 
elseif($novina==NULL){ 
echo "Попълнете новина"; 
exit; 
} 
elseif($author==NULL){ 
echo "Попълнете автор"; 
exit; 
} 
elseif($type==NULL){ 
echo "Попълнете категория"; 
exit; 
} 
else { 
$img = $_FILES['file']['name'];
     $path = move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
$zapis = mysql_query("INSERT INTO news(ime, nowina, snimka, iztochnik, awtor, type, data) VALUES('$ime','$novina','$img','$iztochnik','$author','$type','$data' )") or die(mysql_error()); 
echo "Новината е добавена!";
}
}
?> 

    <title>Добавяне на новини</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<link rel="stylesheet" href="file/font.css" type="text/css">
 
	 <script language="javascript" type="text/javascript">
function bbcode(open_tag, close_tag, id) {
   var obj = document.getElementById(id);
   var spacer;
   if(obj.value.length > 0) {
      spacer = " ";
   } else {
      spacer = "";
   }
   var begining_text = obj.value.substr(0, obj.selectionStart);
   var selected_text = obj.value.substr(obj.selectionStart, obj.selectionEnd);
   var end_text = obj.value.substr(obj.selectionEnd, obj.value.length);

   var caret_position = obj.selectionStart;
   var text_to_caret = obj.value.substr(0, caret_position);
   var text_after_caret = obj.value.substr(caret_position, obj.value.length);

   // If there is a selection
   if(obj.selectionStart != obj.selectionEnd) {
      obj.value = begining_text + open_tag + selected_text + close_tag + end_text
   } else {
   // If there is not a selection
      obj.value = text_to_caret + open_tag + close_tag + text_after_caret
   }
   //obj.value = obj.value + spacer + text;

}
function bbcode(stag,etag) {
var text = window.prompt('Напишете Вашият текст');
document.getElementById('area').value += stag + text + etag;
}

</script>
	<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
	
	<script src="BBbutons.js"  type="text/javascript"></script> 	


</head>
<body>	  
	  <form method="post">
	  <script>
	  $(function() {
		$('#area').bbcodetoolbar();
	  }); 
	  </script> 
<table border="0"> 
<center>
<form action="" enctype="multipart/form-data" method="POST"> 
Име на новина*:<br><input type="text" class="textbox" name="ime" size="80"> 
<br><br> 
Снимка:<br> <input type='file' name='file' id='file' />
<br><br> 

<input name="button1" type="button" id="button1" onclick="javascript: bbcode('[b]', '[/b]', 'text');" value="B">
<input name="button2" type="button" id="button2" onclick="javascript: bbcode('[i]', '[/i]', 'text');" value="I">
<input name="button3" type="button" id="button3" onclick="javascript: bbcode('[u]', '[/u]', 'text');" value="U"> 
<input name="button4" type="button" id="button4" onclick="javascript: bbcode('[code]', '
', 'text');" value="Код">
<input name="button5" type="button" id="button5" onClick="javascript: bbcode('
', 'text');" value="Цитат">
<input name="button7" type="button" id="button7" onclick="javascript: bbcode('
', 'text');" value="Снимка">
<input name="button8" type="button" onClick="javascript: bbcode('', '', 'text');" value="Линк"><br>
<input name="button9" type="button" id="button1" onclick="javascript: bbcode('[vbox7]', '[/vbox7]', 'text');" value="vbox7.com">
Новина*:<br><textarea name="novina" class="ckeditor" name="editor1"id="area"class="textbox" cols="95" rows="20" id="text"></textarea>
<br><br>
Източник:<br><input type="text" class="textbox" name="iztochnik">
<br><br>
Автор*:<br><select name="author">
<option value="">Избери автор</option>
<option value="Админ">Админ</option>
<option value="it ">it</option>
<option value="CS CZ">CS CZ</option>
<option value="CS Source">CS Source</option>
</select>
<br />
Категория*:<br><select name="type">
<option value="">Избери категория</option>
<option value="1">sport</option>
<option value="2 ">it</option>
<option value="CS CZ">CS CZ</option>
<option value="CS Source">CS Source</option>
</select>
<br />



<input type="submit" name="izprati" value="Изпрати!">
<form>[/code]
 
Като цяло инпута ти за снимка не е свързан по нищо с променливите за снимка. Трябва да му смениш името. И кода ти за добавяне на снимка не е добре и вобще не е защитен.
 
Кълцал си парчета код от други системи... но както и да е. Има много лоши практики, слаби места в сигурността, никакви валидации на операциите.

За снимката - имаш следната конструкция:

АКО ( ИМАМ ПОСТНАТИ ДАННИ ) {
серия от безсмислени присвоявания;
серия от безсмислени и НИКОГА изпълними проверки;

опит за обработка на ъплоаднития файл. Без проверка на статус и с безсмислени действия;
запис в БД. За снимка - подаваш оригиналното име на снимката;
}

- Пусни си съобщенията за грешки и виж дали ти дава някаква грешка.
- Погледни дали имаш папка "upload" и какви са правата за достъп. Ако системата ти е Windows, то има голяма вероятност функцията move_uploaded_file да няма правомощия заради омазвациите UAC (User Account Control). В този случай използвай алтернативната функция copy http://php.net/manual/en/function.copy.php;
- Задължително направи проверка за статуса на грешка в $_FILES["file"]["error"];
 

Back
Горе