2013-12-13 4 views
0

이 아직도 ... 내가 지금 여기에 전체 코드를 게시하도록하겠습니다, 여기PHP 기사 및 이미지 문제

<form id="contact-form" action="fileovi/dodaj_novost.php" method="post"> 
      <fieldset> 
      <div class="coll-1"> 
       <div class="txt-form">Naslov[hr]</div> 
       <label class="name"> 
       <input type="text" name="naslov_hr"> 
       <br> 
      </div> 
      <div class="clear"></div> 
      <div class="coll-1"> 
       <div class="txt-form">Naslov[en]</div> 
       <label class="name"> 
       <input type="text" name="naslov_en"> 
       <br> 
      </div> 
      <div class="clear"></div> 
      <div class="clear"></div> 
      <div class="coll-1"> 
       <div class="txt-form">Naslov[de]</div> 
       <label class="name"> 
       <input type="text" name="naslov_de"> 
       <br> 
      </div> 
      <div class="clear"></div> 
      <div class="clear"></div> 
      <div class="coll-1"> 
       <div class="txt-form">Link slike</div> 
       <label class="name"> 
       <input type="file" name="image[]" enctype="multipart/form-data"/><br /> 
       <input type="file" name="image[]" enctype="multipart/form-data"/><br /> 
       <br> 
      </div> 
      <div class="clear"></div> 
      <div class="clear"></div> 
      <div class="coll-big"> 
       <div class="txt-form"><center>Tekst[hr]</center></div> 
       <label class="name"> 
       <textarea id="tekst" name="tekst_hr"></textarea> 
       <br> 
      </div> 
      <div class="clear"></div> 
      <div class="coll-big"> 
       <div class="txt-form"><center>Tekst[en]</center></div> 
       <label class="name"> 
       <textarea id="tekst1" name="tekst_en"></textarea> 
       <br> 
      </div> 
      <div class="clear"></div> 
      <div class="coll-big"> 
       <div class="txt-form"><center>Tekst[de]</center></div> 
       <label class="name"> 
       <textarea id="tekst2" name="tekst_de"></textarea> 
       <br> 
      </div> 
      <div class="clear"></div> 

      <a href="javascript:;" onclick="javascript: document.getElementById('contact-form') .submit()" class="btn btn-2">Dodaj!</a> 

     </form> 

그리고 작동하지 않습니다 내가 만든 내 PHP 함수는 ...이다

function dodaj_novost() 
{ 
global $mysqli; 
$mysqli->query("SET NAMES utf8"); 
$mysqli->query("SET CHARACTER SET utf8"); 
$mysqli->query("SET COLLATION_CONNECTION='utf8_general_ci'"); 


//sanitize variables 

$naslovhr = $_POST['naslov_hr']; 
$naslovhr = $mysqli->real_escape_string($naslovhr); 

$nasloven = $_POST['naslov_en']; 
$nasloven = $mysqli->real_escape_string($nasloven); 

$naslovde = $_POST['naslov_de']; 
$naslovde = $mysqli->real_escape_string($naslovde); 

$teksthr = $_POST['tekst_hr']; 
$teksthr = $mysqli->real_escape_string($teksthr); 

$teksten = $_POST['tekst_en']; 
$teksten = $mysqli->real_escape_string($teksten); 

$tekstde = $_POST['tekst_de']; 
$tekstde = $mysqli->real_escape_string($tekstde); 


//sanitize variables END 

$dan = date('d'); 
$mjesec = date('M'); 
$godina = date('Y'); 

$sql="INSERT INTO novosti (naslovhr, nasloven, naslovde, teksthr, teksten, tekstde, dan, mjesec, godina) VALUES ($naslovhr,$nasloven, $naslovde,$teksthr,$teksten,$tekstde,$dan,$mjesec,$godina)"; 
$query = $mysqli->query("$sql"); 


//Add picture! 

    $valid_exts = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions 
    $max_size = 2048 * 1024; // max file size (200kb) 
    $path = 'uploads/'; // upload directory 

    if(isset($_FILES['image'])){ 
     for($i=0; $i<count($_FILES['image']['name']); $i++){ 
      if(@is_uploaded_file($_FILES['image']['tmp_name'][$i])) 
       { 
        // get uploaded file extension 
        $ext = strtolower(pathinfo($_FILES['image']['name'][$i], PATHINFO_EXTENSION)); 
        // looking for format and size validity 
        if (in_array($ext, $valid_exts) AND $_FILES['image']['size'][$i] < $max_size) 
        { 
         // unique file path 
         $filename = uniqid(). '.' .$ext; 
         // move uploaded file from temp to uploads directory 
         if (move_uploaded_file($_FILES['image']['tmp_name'][$i], $path.$filename)) 
         { 
          $status = $path.$filename; 
          $link = 'http://'.$domena.'/'.$path.'/'.$filename; 
          $upit = "INSERT INTO slike_novosti (link, id_posta) VALUES ($link, $id_posta)"; 
          $upit = $mysqli->query("$upit"); 
          if ($upit == 'true'){ 
           echo 'Successfull!'; 
          } else { 
           echo 'Not sucessfull!'; 
          } 
         } 
         else { 
          $status = 'Upload Fail: Unknown error occurred!'; 
         } 
        } 
        else { 
         $status = 'Upload Fail: Unsupported file format or It is too large to upload!'; 
        } 
       } 
       else{ 
         //image is not uploaded! 
         $status = ' '; 
        } 

       echo '<br>'.$status.'<br>'; 
     } 
    } else { 
     echo 'Nema slike!'; 
    } 

//Add picture END!! 

}

그리고 누군가가이 문제 .. 내가 김 드리겠습니다을 해결하는 방법에 대한 올바른 방향으로 날 지점 수 있다면이 코드는 여전히 작동하지 않는 몇 가지 이유

! :) 건배. 처음에는

+2

사랑스러운 [SQL 인젝션 공격 (http://bobby-tables.com) 취약점을 작동 줘야 참조하십시오. 멋진 cargo-cult 프로그래밍 (' "$ var"') ... –

답변

1

: 당신의 변수의

$sql1 = "INSERT INTO slike_novosti (slika, link_slike) VALUES ('$link_slike','$slika')"; 

확인하기 위해? 제 생각에는 다음과 같아야합니다 :

$sql1 = "INSERT INTO slike_novosti (slika, link_slike) VALUES ('$slika','$link_slike')"; 

초 : PDO 구성 요소를 사용하면 매우 나쁜 코드와 SQL 주입이 발생합니다.

+0

mysql_xxx는 더 이상 사용되지 않습니다 –

+0

그는 mysqli를 사용합니다. – BaBL86

+0

@ BaBL86 아직도 작동하지 않습니다 : S 내 전체 코드를 확인할 수 있습니까? 감사. – user3002173

0

$variables에서 단일 qoutes를 제거하십시오. PHP의 경우 '$ var'는 $ var 값을 갖는 변수입니다. 당신이 그들을 qouted 원한다면, "$ var"를 사용하십시오.

variables 그래서이

$sql="INSERT INTO novosti (naslovhr, nasloven, naslovde, teksthr, teksten, tekstde, 
     link_slike, dan, mjesec, godina) VALUES 
     $naslovhr,$nasloven,$naslovde,$teksthr, 
     $teksten,$tekstde,$link_slike,$dan,$mjesec,$godina)"; 
+0

@Michael 내 코드가 여전히 작동하지 않습니다 : S – user3002173

+0

mysqli_error ($ mysqli)는 무슨 뜻입니까? – Michel

+0

아마도 if (isset ($ _ FILES [ 'image'])))가 맞지 않기 때문에 아마 내 양식에 문제가있을 것입니다. – user3002173