upload script

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

upload script

trebuie sa fac un script care sa uploadeze doar fisierele .txt . daca procedura s-a efectuat cu succes, sa se vizualizeze continutul fisierului .txt. Insa imi da eroare. si nu inteleg unde e greseala

Cod: Selectaţi tot

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

if ($_FILES['foto']['tmp_name'])
  {
   if (file_exists($foto))
     {
      unlink($foto);
     }
   move_uploaded_file($_FILES['foto']['tmp_name'], "$foto");
   $allowedExtensions = array("txt","htm","html","xml");
  foreach ($_FILES as $file) {
    if ($file['tmp_name'] > '') { 
      if (!in_array(end(explode(".", 
            strtolower($file['name']))), 
            $allowedExtensions)) { 
       die($file['name'].' is an invalid file type!<br/>'.);
      } 
    } 
  }

   if ( $type! = "txt")
     {
       $_SESSION['error']='<p>Eroare. Incercati din nou.</p>';
       unlink($foto);
       redir('index.php');
     }
   else
     {
      redir('index.php?rs=ok');
     }
  }
else
  {
   redir('index.php');
  }
?>
RADIO Club http://radio-klub.info" target="_blank

MarPlo Mesaje:4343
Multe greseli de sintaxa, de ex, e adaugat '... <br/>'.); , punctul e in plus.
E if ( $type! = "txt"), ar trebui fara spatiu intre '!' si '='
Functia redir() nu e in php.
Plus greseli de logica a rularii instructiunilor.

Trebuie refacut, si eventual posteaza ce erori apar, dupa ce incerci sa le rezolvi. Erorile care sunt afisate indica linia de cod si posibila cauza.

GarryOne Mesaje:27
nu functioneaza codul si vreau ca voi sa-mi spuneti unde e greseala, si ce sa fac ca sa repar codul sa functioneze.
imi apare Parse error: syntax error, unexpected T_ELSE in /home/a9540258/public_html/www/upload.php on line 31.
ideea era, sa fac un script care sa accepta doar extensiile .txt .xml. .html .htm , daca fisierul uploadat nu respecta aceasta conditie sa se afeseze die($file['name'].' is an invalid file type!<br/>'); , daca uploadul se efectueaza cu succes sa-mi arata continutul fisierul uploadat.


upload.php

Cod: Selectaţi tot

<?php
include('utilities.php');

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

if ($_FILES['foto']['tmp_name'])
  {
   move_uploaded_file($_FILES['foto']['tmp_name'], "$foto");
   $allowedExtensions = array("txt","htm","html","xml");

    if ($file['tmp_name'] > '') { 
      if (!in_array(end(explode(".", 
            strtolower($file['name']))), 
            $allowedExtensions)) { 
       die($file['name'].' is an invalid file type!<br/>');
      } 
    } 
  }

   if ( $type!= "txt")
     {
       $_SESSION['error']='<p>Eroare. Incercati din nou.</p>';
       unlink($foto);
       redir('index.php');
     }
   else
     {
      redir('index.php?rs=ok');
     }
else
  {
   redir('index.php');
  }
?>
home.php

Cod: Selectaţi tot

 <?php
     if(isset($_GET['rs']))
      {
       $result=$_GET['rs'];
      }
     if($result=='ok')
      {
        echo 'data/images/file.txt';
      }
     else
       {
        if(!empty($_SESSION['error']))
         {
          echo $_SESSION['error'];
          $_SESSION['error']="";
         }
        echo '<form action="upload.php" method="post" enctype="multipart/form-data" name="upload" >
              <input type="file" name="foto" />
              <br />
              <input type="submit" value="Uploadeaza" />
              </form>';
      }
     ?>
RADIO Club http://radio-klub.info" target="_blank

MarPlo Mesaje:4343
Parse error: syntax error, unexpected T_ELSE in /home/a9540258/public_html/www/upload.php on line 31 specifica o problema cu instructiuea else la acea linie.
Problema acestei erori e ca ai if(), else, apoi iar un else. Acesta din urma nefiind legat de un if(), iti returneaza acea eroare.
Rezolvarea la problema asta: acel "else" trebuie adaugat dupa un if() (sau "else if()").

GarryOne Mesaje:27
cand uploadez un fisier cu extensia in afara de acele propuse, imi da eroare, cum ar trebui, insa problema este ca cand uploadez un fisier text, nu se uploadeaza cu succes si nu-mi arata continutul insa imi da eroare la fel ca si cu ma as uploada alt tip de extensie.
m-am uitat in folderul respectiv unde trebuia sa se uploadeze fisierul si nu este nimic

Cod: Selectaţi tot

<?php 
include('utilities.php'); 

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

if ($_FILES['foto']['tmp_name']) 
  { 
   move_uploaded_file($_FILES['foto']['tmp_name'], "$foto"); 
   $allowedExtensions = array("txt","htm","html","xml"); 

	if ($file['tmp_name'] > '') { 
	  if (!in_array(end(explode(".", 
			strtolower($file['name']))), 
			$allowedExtensions)) { 
	   die($file['name'].' is an invalid file type!<br/>'); 
	  } 
	} 
  } 

   if ( $type!= "txt") 
	 { 
	   $_SESSION['error']='<p>Eroare. Incercati din nou.</p>'; 
	   unlink($foto); 
	   redir('index.php'); 
	 } 


?>
RADIO Club http://radio-klub.info" target="_blank

MarPlo Mesaje:4343
Incearca sa testezi si sa adaptezi la ce upload vrei scriptul urmator:

Cod: Selectaţi tot

<?php
// - marplo.net
ini_set('display_errors',1);
error_reporting(E_ALL);

$folder = 'lucru/';

if (isset($_FILES['thefile']))
{
 $type = end(explode(".", strtolower($_FILES['thefile']['name'])));
 $allowtype = array('txt', 'htm', 'html', 'xml');
 $thefile = $folder. $_FILES['thefile']['name'];

 if (in_array($type, $allowtype)) {
  if ($_FILES['thefile']['error']==0) {
   if (move_uploaded_file ($_FILES['thefile']['tmp_name'], $thefile)) {
    header('Location: '. $thefile);
   }
   else echo 'Fisierul nu poate fi copiat';
  }
 }
 else echo 'Tip fisier nepermis';
}
?>
<form id="uploadform" action="" method="post" enctype="multipart/form-data">
  <input type="file" name="thefile" />
  <input type="submit" value="UPLOAD" id="sub" />
</form>

Subiecte similare