Problema script Upload - PHP

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
GarryOne
Mesaje:27

Problema script Upload - PHP

upload_file.php

Cod: Selectaţi tot

<?php

include('utilities.php');

$folder="data/images/";
$foto=$folder.'file.txt';
$tmp=$folder.'tmp.txt';


if ($_FILES['foto']['tmp_name'])
  {
   move_uploaded_file($_FILES['foto']['tmp_name'], $tmp);
   $ext=pathinfo($tmp, PATHINFO_EXTENSION);
   $need='txt';

   if ($ext == $need)
     {
      if (file_exists($foto))
      {
      unlink($foto);
      }
      copy($tmp,$foto);
      redir('page.php?rs=ok&pag=home');

      }
    else
     {
       $_SESSION['error']='<p>Eroare. Incercati din nou.</p>';
       unlink($foto);
       redir('page.php?pag=home');
     }
   }
else
{
$_SESSION['error']='<p>Uplodati fisierul</p>';
redir('page.php?pag=home');
}
?>
tin sa mentionez ca redirect e o functie creata de mine in fisieru utilities care e inclus la inceputul paginii, asa ca sa nu apara suspiciuni

si home.php

Cod: Selectaţi tot

<table cellspacing="0" cellpadding="0" border="0"  width="940">
  <tr>
    <td align="center">
     <?php
     if(isset($_GET['rs']))
      {
       $result=$_GET['rs'];
     if($result=='ok')
      {
        $result=$_GET['rs'];
        INCLUDE('data/images/file.txt');
      }
       }
     else
       {
        if(!empty($_SESSION['error']))
         {
          echo $_SESSION['error'];
          $_SESSION['error']="";
         }
        echo '<form action="upload_file.php" method="post" enctype="multipart/form-data" name="upload" >
              <input type="file" name="foto" />
              <br />
              <input type="submit" value="Uploadeaza" />
              </form>';
      }

     ?>
    </td>
  </tr>
</table>
Cand uploadez un fisier cu extensia .txt imi incarca fisieru cu succes si mi-l vizualizeaza, bun, pana aici totul e bine, insa cand incerc sa uploadez un fisier de exemplu cu extensia .jpg , nu imi apare mesajul de eroare pe care l-am indicat la else, ci imi da un mesaj de eroare de la server, care o fi problema de nu-mi apare mesajul de eroare?
RADIO Club http://radio-klub.info" target="_blank

MarPlo Mesaje:4343
Am testat scriptul si nu imi apare nici o eroare.
Dar e facut sa incarce cu acelasi nume si extensie (txt), chiar daca fisierul e JPG, ceea ce nu e cum trebuie pentru un script de upload.

GarryOne Mesaje:27
@rattrap, am incercat ceva din imaginatie insa nu merge
asta:

Cod: Selectaţi tot

$tmp=$folder.'tmp.txt'; 
am schimbat in asta

Cod: Selectaţi tot

$uploaded=$_FILES['foto']['tmp_name'];
$tmp=$folder.'$uploaded'; 
RADIO Club http://radio-klub.info" target="_blank

MarPlo Mesaje:4343
Variabila nu ar trebui adaugata intre ghilimele simple, fiindca asa nu mai e preluata valooarea ei, ci numele.
Incearca asa:

Cod: Selectaţi tot

$uploaded = $_FILES['foto']['tmp_name'];
$tmp = $folder. $uploaded; 
- Intre acoladele de la: if ($_FILES['foto']['tmp_name'])

GarryOne Mesaje:27
acum care mai este greseala?

Cod: Selectaţi tot

<?php

include('utilities.php');
$folder="data/images/";
$foto=$folder.'file.txt';
$need='txt';
if ($_FILES['foto']['tmp_name'])
  {
   $uploaded = $_FILES['foto']['tmp_name'];
   $tmp = $folder." ".$uploaded;
   $ext=pathinfo($tmp, PATHINFO_EXTENSION);
   

   if ($ext == $need)
     {
      
	  if (file_exists($foto))
      {
      unlink($foto);
      }
      
	  move_uploaded_file($_FILES['foto']['tmp_name'], $foto);
      redir('page.php?rs=ok&pag=home');

      }
    else
     {
       $_SESSION['error']='<p>Error. Try Again.</p>';
       
       redir('page.php?pag=home');
     }
   }
else
{
$_SESSION['error']='<p>Upload File</p>';
redir('page.php?pag=home');
}
?>
RADIO Club http://radio-klub.info" target="_blank

MarPlo Mesaje:4343
Poate ar trebui modficat cum e in randurile astea:

Cod: Selectaţi tot

// ...
$foto = $folder. $uploaded;
$ext = pathinfo($foto, PATHINFO_EXTENSION);
// ...  

Subiecte similare