Pagina 1 din 1

Creare folder in mod automat cu PHP

Scris: Mie Ian 14, 2015
de adrian_ady
Salutare,
am in site urmatorul cod pentru userul care introduce din contul sau o noua oferta. Ce trebuie sa adaug astfel incat sa se creeze in mod automat si un folder personal in care ulterior sa adauge cateva imagini(referitoare la oferta)?
Cumva trebuia facut la momentul inregistrarii in site?

Merci!
Am intrat in an nou, suntem inca aici deci e de bine!

Creare folder in mod automat cu PHP

Scris: Joi Ian 15, 2015
de MarPlo
Salut
Cred ca asa ar trebui, cand utilizatorul se inregistreaza tot atunci sa se creeze directorul pe server, cu numele lui.
Cu functia mkdir() se poate crea directoare pe server cu php.

Cod: Selectaţi tot

// if folder 'name' not exists, create it
if(!is_dir('/path_to/name')) mkdir('/path_to/name', 0755); 

Creare folder in mod automat cu PHP

Scris: Joi Ian 15, 2015
de adrian_ady
Nu stiu sa iau valoarea inputului 'firma' de mai jos:

Cod: Selectaţi tot

<input name="firma" type="text" class="inputcol" id="firma"  value="<?=Member::inputvalue('firma')?>" placeholder=" *" maxlength="100" style="text-transform: uppercase;" />
care face parte din form-ul de inscriere si sa o preiau in input-ul 'hidden' din acelasi formular ce contine denumirea viitorului folder personal.

Cod: Selectaţi tot

<input name="folder" type="hidden" class="inputcol" id="folder"  value=" ??? "  />

Creare folder in mod automat cu PHP

Scris: Joi Ian 15, 2015
de MarPlo
Valoarea dintr-un camp de formular se preia in php cu $_POST['nume'].
La tine cred ca merge asa:

Cod: Selectaţi tot

<input name="folder" type="hidden" class="inputcol" id="folder"  value="<?php echo isset($_POST['firma']) ? $_POST['firma'] : '';?>"  />

Creare folder in mod automat cu PHP

Scris: Joi Ian 15, 2015
de adrian_ady
Sunt ore, ore de cand tot incerc sa formulez cererea pentru a sterge si folderul atunci cand se sterge userul insa nu gasesc calea.

Cod: Selectaţi tot

       $folder =  $db->select("SELECT folder FROM membri WHERE id = ".$_GET['id']."  ")
        // in linia de mai sus ceva nu este bine cu toate ca pare totul corect sau poate ca mai trebuie ceva adaugat... 
        $cale_folder = '../'.$folder;
        if(is_dir($cale_folder)) rmdir($cale_folder);
        $db->delete("DELETE  FROM membri WHERE id = ".$_GET['sterge']." ");
	$db->delete("DELETE  FROM cereri WHERE id_membru = ".$_GET['sterge']." ");
	$db->delete("DELETE  FROM oferte WHERE id_membru = ".$_GET['sterge']." ");

Creare folder in mod automat cu PHP

Scris: Vin Ian 16, 2015
de MarPlo
In codul tau, variabila $folder contine rezultatul de la $db->select(), care probabil returneaza un array sau object cu randurile selectate, si trebuie parcurs acest rezultat cu o functie foreach() ca sa preiei datele din coloana "folder".
Ceva gen:

Cod: Selectaţi tot

foreach($folder as $row) {
  $cale_f = '../'. $row['folder'];
  // ...
} 
Functia rmdir() sterge un director daca e gol. Dar daca are fisiere in el, trebuie mai intai sterse toate fisierele, apoi aplicat rmdir().
Poti folosi functia din acest exemplu, sterge fisierele si directorul.

Cod: Selectaţi tot

function deleteDir($path) {
  if(is_dir($path) === true) {
    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
    foreach ($files as $file) {
      if(in_array($file->getBasename(), array('.', '..')) !== true) {
        if($file->isDir() === true) rmdir($file->getPathName());
        else if (($file->isFile() === true) || ($file->isLink() === true)) unlink($file->getPathname());
      }
    }

    return rmdir($path);
  }
  else if((is_file($path) === true) || (is_link($path) === true)) return unlink($path);

  return false;
}
deleteDir('dir/test/'); 

Creare folder in mod automat cu PHP

Scris: Vin Ian 16, 2015
de adrian_ady
Am incercat dar nu iese; vreau sa specific ceva important:
'folder' este o voce a grupului 'membri', este unic, se formeaza automat la crearea unui nou cont deci nu sunt mai multe randuri. Pana acum am facut probe numai cu foldere goale deci nici macar asa nu a mers. Aseara am luat-o babeste si am facut proba inlocuind
$folder = $db->select("SELECT folder FROM membri WHERE id = ".$_GET['id']." ")
cu valoarea absoluta a folderului de sters:
$folder = 'denumirea din campul folder'; si a functionat.
De aici am tras concluzia ca este o greseala in randul de mai sus.

Cod: Selectaţi tot

$cale_folder = '../'.$folder;
if(is_dir($cale_folder)) rmdir($cale_folder);

Creare folder in mod automat cu PHP

Scris: Vin Ian 16, 2015
de MarPlo
Modifica adresa catre acel director, poate ca nu trebuie (doar) "../", ci alta cale.
Depinde unde sunt acele directoare pe server in raport cu locatia fisierului php.