Functie pentru script upload[Simplu]

Aici prezentati probleme, intrebari, sau orice subiecte legate de scripturi si tutoriale de pe site.
claUdiu
Mesaje: 313

Functie pentru script upload[Simplu]

Buna , oare scriptul de upload de pe site[cel simplu] poate avea o functie?? . De ex cand cineva uploadeaza sa scrie intrun fisier .txt ipul celui care a uploadat+fisierul care lo uploadat. Daca exista va rog spunetimi cum e :-?

thX
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje: 4343
Ii poti adauga o functie, trebuie sa o faci in script, la inceput. Cam asa:

Cod: Selectaţi tot

function add_ip() {
 $file = 'fisier.txt';
$ip=$_SERVER['REMOTE_ADDR'];
$date = file_get_contents($file);       // Preia continutul fisierului
$date .= "\r\n $ip";                 // Adauga si ip-ul curent

file_put_contents($file, $date);       // Adauga continutul din $date in $file
}
Apoi cand face upload, in acel loc apelezi functia add_ip()

claUdiu Mesaje: 313
Unde mai exact la inceput??

Eu am fkt asa:

Am creat fisierul fisier.txt

si am adaugat la inceputul codului asa:

Cod: Selectaţi tot

<?php 


// Script de la https://marplo.net/php-mysql/ (Transfera fisiere pe server)

// 1. Creati intai directorul cu numele 'upload' (in acelasi director cu pagina dv. de upload) in care se vor copia fisierele
// 2. Acordati directorului 'upload' permisiuni CHMOD 0777
// 3. introduceti tot acest cod intr-un fisier .php 

// Aici puteti modifica numele directorului de upload (daca ati pus alt nume)


function add_ip() {
$file = 'fisier.txt';
$ip=$_SERVER['REMOTE_ADDR'];
$date = = file_get_contents($file);       // Preia continutul fisierului
$date .= "\r\n $ip";                 // Adauga si ip-ul curent

file_put_contents($file, $date);       // Adauga continutul din $date in $file
}

$uploadpath = "upload/";

// Aici este setata marimea maxima, in KiloBytes, care este permisa (dar marime maxima depinde si de setarile serverului)
$max_size = 2000;

// Aici puteti schimba tipul, extensia fisierelor permise pt. upload
$allowtype = array('bmp', 'flv', 'gif', 'jpg', 'jpeg', 'mp3', 'pdf', 'png', 'rar', 'zip');

if(isset($_POST['submit'])) {
  if (isset ($_FILES['fisiere'])) {
    $uploadpath = $uploadpath . basename( $_FILES['fisiere']['name']);
	$type = end(explode(".", strtolower($_FILES['fisiere']['name'])));

    // Daca fisierul are extensia permisa
    if (in_array($type, $allowtype)) {
	  // Verifica daca fisierul are marimea permisa
	  if ($_FILES['fisiere']['size']<=$max_size*1000) {
        if(move_uploaded_file($_FILES['fisiere']['tmp_name'], $uploadpath)) { 
          echo "Fisierul:<b> ". basename( $_FILES['fisiere']['name']). "</b> a fost incarcat cu succes:"; 
          echo "<br />Tipul fisieului:<b> ". $_FILES['fisiere']['type'] ."</b>"; 
          echo "<br />Marime  (<i>in Bytes</i>): <b>". $_FILES['fisiere']['size'] ."</b><br /><br />";
		  echo 'Link catre fisierul incarcat: <b>http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$uploadpath.'</b>';
        }
        else { 
          echo "<b>A aparut o eroare la urcarea fisierului pe server, <br /> posibil ca marimea fisierului sa depaseasca permisiunile setate de server.</b>"; 
        }
	  }
	  else { echo 'Fisierul <b>'. $_FILES['fisiere']['name']. '</b> depaseste marimea permisa de maxim <i><b>'. $max_size. 'KB</b></i>'; }
    }
	else { echo 'Fisierul <b>'. $_FILES['fisiere']['name']. '</b> nu are tipul de extensie permis'; }
  }
}
?>  
Si cand uploadez imi da erroare urmatoare :

Cod: Selectaţi tot

Parse error: syntax error, unexpected '=' in /home/hosting/gamestim/functie_upload/rezultat.php on line 6
ce poate avea?:(
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje: 4343
Era o eroare de sintaxa.
Incearca script-ul asa (fisierull .txt trebuie sa aibe permisiuni CHMOD 0777):

Cod: Selectaţi tot

<?php
// Script de la https://marplo.net/php-mysql/ (Transfera fisiere pe server)

// 1. Creati intai directorul cu numele 'upload' (in acelasi director cu pagina dv. de upload) in care se vor copia fisierele
// 2. Acordati directorului 'upload' permisiuni CHMOD 0777
// 3. introduceti tot acest cod intr-un fisier .php

// Aici puteti modifica numele directorului de upload (daca ati pus alt nume)

$uploadpath = "upload/";


function add_ip() {
  $file = 'fisier.txt';
  $ip = $_SERVER['REMOTE_ADDR'];
  $date = file_get_contents($file);       // Preia continutul fisierului
  $date .= "\r\n $ip";                 // Adauga si ip-ul curent

  file_put_contents($file, $date);       // Adauga continutul din $date in $file
}

// Aici este setata marimea maxima, in KiloBytes, care este permisa (dar marime maxima depinde si de setarile serverului)
$max_size = 2000;

// Aici puteti schimba tipul, extensia fisierelor permise pt. upload
$allowtype = array('bmp', 'flv', 'gif', 'jpg', 'jpeg', 'mp3', 'pdf', 'png', 'rar', 'zip');

if(isset($_POST['submit'])) {
  if (isset ($_FILES['fisiere'])) {
	$uploadpath = $uploadpath . basename( $_FILES['fisiere']['name']);
   $type = end(explode(".", strtolower($_FILES['fisiere']['name'])));

	// Daca fisierul are extensia permisa
	if (in_array($type, $allowtype)) {
	 // Verifica daca fisierul are marimea permisa
	 if ($_FILES['fisiere']['size']<=$max_size*1000) {
		if(move_uploaded_file($_FILES['fisiere']['tmp_name'], $uploadpath)) {
		  add_ip();      // Apeleaza functia add_ip()

		  echo "Fisierul:<b> ". basename( $_FILES['fisiere']['name']). "</b> a fost incarcat cu succes:";
		  echo "<br />Tipul fisieului:<b> ". $_FILES['fisiere']['type'] ."</b>";
		  echo "<br />Marime  (<i>in Bytes</i>): <b>". $_FILES['fisiere']['size'] ."</b><br /><br />";
		echo 'Link catre fisierul incarcat: <b>http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$uploadpath.'</b>';
		}
		else {
		  echo "<b>A aparut o eroare la urcarea fisierului pe server, <br /> posibil ca marimea fisierului sa depaseasca permisiunile setate de server.</b>";
		}
	 }
	 else { echo 'Fisierul <b>'. $_FILES['fisiere']['name']. '</b> depaseste marimea permisa de maxim <i><b>'. $max_size. 'KB</b></i>'; }
	}
   else { echo 'Fisierul <b>'. $_FILES['fisiere']['name']. '</b> nu are tipul de extensie permis'; }
  }
}
?>

claUdiu Mesaje: 313
Acuma merge , dar cum pot fke sa scrie in fisier.txt si fisierul care o fost uploadat de ipul x .?? thX
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje: 4343
Transferi numele fisierului ca parametru la functie, si in ea adaugi sa-l preia.
Alte lucruri in legatura cu acest script incearca sa le gasesti si singur rezolvarea. Poate te ajuta si lectiile din cursuri, daca le studiezi.

Cod: Selectaţi tot

<?php
// Script de la https://marplo.net/php-mysql/ (Transfera fisiere pe server)

// 1. Creati intai directorul cu numele 'upload' (in acelasi director cu pagina dv. de upload) in care se vor copia fisierele
// 2. Acordati directorului 'upload' permisiuni CHMOD 0777
// 3. introduceti tot acest cod intr-un fisier .php

// Aici puteti modifica numele directorului de upload (daca ati pus alt nume)

$uploadpath = "upload/";


function add_ip($f_up) {
  $file = 'fisier.txt';
  $ip = $_SERVER['REMOTE_ADDR'];
  $date = file_get_contents($file);       // Preia continutul fisierului
  $date .= "\r\n". $ip. ' - '. $f_up;                 // Adauga si ip-ul curent cu numele fisierului

  file_put_contents($file, $date);       // Adauga continutul din $date in $file
}

// Aici este setata marimea maxima, in KiloBytes, care este permisa (dar marime maxima depinde si de setarile serverului)
$max_size = 2000;

// Aici puteti schimba tipul, extensia fisierelor permise pt. upload
$allowtype = array('bmp', 'flv', 'gif', 'jpg', 'jpeg', 'mp3', 'pdf', 'png', 'rar', 'zip');

if(isset($_POST['submit'])) {
  if (isset ($_FILES['fisiere'])) {
   $uploadpath = $uploadpath . basename( $_FILES['fisiere']['name']);
   $type = end(explode(".", strtolower($_FILES['fisiere']['name'])));

   // Daca fisierul are extensia permisa
   if (in_array($type, $allowtype)) {
	// Verifica daca fisierul are marimea permisa
	if ($_FILES['fisiere']['size']<=$max_size*1000) {
	  if(move_uploaded_file($_FILES['fisiere']['tmp_name'], $uploadpath)) {
		add_ip($_FILES['fisiere']['name']);      // Apeleaza functia add_ip()

		echo "Fisierul:<b> ". basename( $_FILES['fisiere']['name']). "</b> a fost incarcat cu succes:";
		echo "<br />Tipul fisieului:<b> ". $_FILES['fisiere']['type'] ."</b>";
		echo "<br />Marime  (<i>in Bytes</i>): <b>". $_FILES['fisiere']['size'] ."</b><br /><br />";
	  echo 'Link catre fisierul incarcat: <b>http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$uploadpath.'</b>';
	  }
	  else {
		echo "<b>A aparut o eroare la urcarea fisierului pe server, <br /> posibil ca marimea fisierului sa depaseasca permisiunile setate de server.</b>";
	  }
	}
	else { echo 'Fisierul <b>'. $_FILES['fisiere']['name']. '</b> depaseste marimea permisa de maxim <i><b>'. $max_size. 'KB</b></i>'; }
   }
   else { echo 'Fisierul <b>'. $_FILES['fisiere']['name']. '</b> nu are tipul de extensie permis'; }
  }
}
?>

Subiecte similare