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
-
- Mesaje:80
Creare folder in mod automat cu PHP
MarPlo
Mesaje:4343
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.
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);
adrian_ady
Mesaje:80
Nu stiu sa iau valoarea inputului 'firma' de mai jos:
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="firma" type="text" class="inputcol" id="firma" value="<?=Member::inputvalue('firma')?>" placeholder=" *" maxlength="100" style="text-transform: uppercase;" />
Cod: Selectaţi tot
<input name="folder" type="hidden" class="inputcol" id="folder" value=" ??? " />
MarPlo
Mesaje:4343
Valoarea dintr-un camp de formular se preia in php cu $_POST['nume'].
La tine cred ca merge asa:
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'] : '';?>" />
adrian_ady
Mesaje:80
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']." ");
MarPlo
Mesaje:4343
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:
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.
Ceva gen:
Cod: Selectaţi tot
foreach($folder as $row) {
$cale_f = '../'. $row['folder'];
// ...
}
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/');
adrian_ady
Mesaje:80
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.
'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);
MarPlo
Mesaje:4343
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.
Depinde unde sunt acele directoare pe server in raport cu locatia fisierului php.
Subiecte similare
- Creare meniu in site cu php
Scripturi de pe site Primul mesaj
SalutUltimul mesaj
Am incercat sa pun icons pe primul nivel al meniului din tutorialu tau: Creare site de la zero si nu reusesc sa il adaug pe butonele care...
Multumes pt ajutor
Este ok acum.
Din exeplul dat de tine am mai vazut ceva intersant si anume acel meniu asa zis breadcrumb cu ce ma selectat deja....