Autor | Zpráva | ||
---|---|---|---|
iru Profil |
#1 · Zasláno: 24. 1. 2007, 20:16:05
Zdravím,
potřebuji vytvořit adresář a do něho dva podadresáře: $adresar_hlavni="katalog/".$obsah_katalog; if (!is_dir($adresar_hlavni)) { mkdir($adresar_hlavni, 0777); } $adresar_velke="katalog/".$obsah_katalog."/velke"; if (!is_dir($adresar_velke)) { mkdir($adresar_velke, 0777); } $adresar_male="katalog/".$obsah_katalog."/male"; if (!is_dir($adresar_male)) { mkdir($adresar_male, 0777); } jenže dojde jen k vytvoření prvního, práva se nenastaví na 0777 a nejdou už vytvořit ty podadresáře. Kdybych se teoreticky uskromnila a vystačila s tím prvním adresářem, bude problém stejně, protože se do něho budou uplouadovat soubory, takže stejně potřebuji mít u něj práva 0777. Díky za každou radu. |
||
DJ Miky Profil |
#2 · Zasláno: 24. 1. 2007, 21:21:06
Možná by to šlo přes FTP fce.
|
||
Acci Profil |
#3 · Zasláno: 24. 1. 2007, 21:34:02 · Upravil/a: Acci
To je náhoda, zrovna o tom píše R.H.: http://radekhulan.cz/item/jak-funguje-mkdir-chmod-v-php
|
||
Rellik Profil |
#4 · Zasláno: 24. 1. 2007, 21:44:41
Já tořeším tak že po každé vytvořené složce jí nastavím práva... Takhle:
mkdir('../galery/'.$slozka, 0777 ); chmod('../galery/'.$slozka, 0777 ); mkdir('../galery/'.$slozka.'/nahledy', 0777 ); chmod('../galery/'.$slozka.'/nahledy', 0777 ); A funguje to. :) |
||
iru Profil |
#5 · Zasláno: 24. 1. 2007, 21:50:54
mezitím jsem to udělala jako Rellik, ale nejde mně tam uploadovat soubor:
move_uploaded_file($TMPjmeno, "katalog/$obsah_katalog/$foto") or die ('Při ukládání souboru nastala chyba.'); Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 2314 is not allowed to access tak nevím... dala jsem to do jednoho adresáře. Podadresáře mně nešly ani takhle vytvořit |
||
Rellik Profil |
#6 · Zasláno: 24. 1. 2007, 22:05:30
Já si sice jěště ukládám názvy do databáze ale třeba ti to pomůže. Tady je můj script na vytváření těch složek. (Bez formuláře).
<?php if(isset($_POST['send'])){ $nazev = trim($_POST['nazev']); $text = strtolower(substr($_POST['nazev'], 0, 4)); $slozka = strtr($text,"áčďéěíňóřšťúůýž ÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ","acdeeinorstuuyz_acdeeinorstuuyz"); if(($nazev) != true){ echo "<span class='red'>Nebyl vyplněn název galerie!</span> "; } else{ $spojeni = mysql_connect($dbserver,$dblogin,$dbheslo ) or die ('<b>Critical error!</b><br>Nepodařilo se připojit k databázi!'); mysql_select_db($dbnazev, $spojeni) or die (); $PocetStejnych=mysql_result(mysql_query("SELECT COUNT(*) FROM `galerie` WHERE `nazev`='$nazev' LIMIT 5;"),0); if($PocetStejnych!=0){ echo "<span class='red'>Zadaná galerie už v systému existuje!!</span>! "; } else { $vloz ="insert into galerie set nazev='$nazev', slozka='$slozka';"; $result=mysql_query($vloz) or die("Chyba! Galerii se nepodařilo vytvořit! ".mysql_error()); mkdir('../galery/'.$slozka, 0777 );//vytvorení složky chmod('../galery/'.$slozka, 0777 ); mkdir('../galery/'.$slozka.'/nahledy', 0777 ); chmod('../galery/'.$slozka.'/nahledy', 0777 ); echo "<span class='red'>Galerie byla vytvořena. Můžete do ní přidat fotografie.</span>"; } } } ?> Třeba ti to pomůže... :) |
||
iru Profil |
#7 · Zasláno: 24. 1. 2007, 22:28:54
Rellik nejde to, mám to vytváření adresáře stejně, ale podaří se mně vytvořit jen ten jeden adresář, má už dokonce práva 0777, ale jakmile chci podadresáře, tak na mě křičí zase SAFE MODE. Dokonce se dívám, že ty složky vytváříš o úroveň výš, to jsem původně také chtěla, ale to už vůbec nešla ani jedna vytvořit.
Dobře, dejme tomu, že jsem skromná a spokojím se s jedním adresářem, co se mě daří vytvořit, ale zůstává tu otázka, proč do něj nejde uploadnout soubor, když má práva 0777. Ve skriptu mám sled činností takhle: napřed testuju, zda adresář existuje, nebo ne. Když ne, tak se vytvoří a potom se uploadovaný soubor pomocí fce move_uploaded_file přesune do toho adresáře. (Měl by se přesunout, ale nepřesune) |
||
Rellik Profil |
#8 · Zasláno: 24. 1. 2007, 22:35:43 · Upravil/a: Rellik
Upload mám takto:
if($vlozit) { if ($soubor == "") { echo '<span class="red">Nebyla zvolena žádná fotografie!</span> '; } if (chmod($soubor , 0777 )) if ($soubor_type=='image/jpeg') { if (is_uploaded_file($soubor)) { $cesta= '../galery/'.$slozka.'/'; //slozka je v korenovem adresari(pripadne zmenit cestu) $velikost=getimagesize($soubor); $sirka=$velikost[0]; $vyska=$velikost[1]; if ($soubor_size < 921600) //omezení velikosti obbrázku na 900Kb { if ($sirka <= 600) { if (move_uploaded_file ($soubor, $cesta.$soubor_name)) { echo '<script type="text/javascript" for="window" event="onLoad()">'; echo '<!-- window.location.href="add_galery.php?upload=ok"'; echo '// --> </script>'; } else echo "<span class='red'>Při nahrávání souboru došlo k neočekávané chybě! Zkuste to znovu prosím.</span><br><br> "; //oznameni neocekavane chyby } else echo "<span class='red'>Velikost obrázku (".$sirka."x".$vyska.") překračuje povolenou mez! Zmenšete ho prosím pomocí nějakého editoru.</span><br><br> "; //oznameni chyby při velkých rozměrech obrázku } else echo "<span class='red'>Fotografie je datově příliš velká!</span><br><br> "; //vypis chyby pri obrazku vetsim jak 900Kb } } else echo "<span class='red'>Soubor není podporován!</span><br><br> "; //vypis chyby pokud se uploaduje soubor ktery neni jpg } if ($upload == "ok") { echo "<span class='red'>Fotografie byla úspěšně nahrána na server.</span><br><br> "; // oznameni o uspesnosti } Opět je to bez formuláře... Je tam pár omezení navíc... Jinak pokračování příště... :) Teď du spát... ráno vstávám zase do práce... :( |
||
iru Profil |
#9 · Zasláno: 24. 1. 2007, 23:13:11
Tak jsem zkusila ještě jednu věc: vytvořila jsem adresář ručně v Total Commanderu a spustila skript. Vše proběhlo v pořádku.
Potom jsem nechala adresář vytvořit skriptem, ten se vytvořil, ale soubor už se do něj nepřesunul: Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 2314 is not allowed to access www/psi_kocky/katalog/voditka owned by uid 600 takže si myslím, že část pro upload bude v pořádku, ale problém bude v tom adresáři. Když se kouknu v Total Commanderu na práva, tak má 0777. Tak nevím, co se tomu nelíbí... |
||
Augard Profil |
#10 · Zasláno: 24. 1. 2007, 23:19:17
Myslim ,ze se zaplim SAFE MODem to nejde, kdyz php vytvori adresar tak se u nej nastavi jine id aplikace(The script whose uid is 2314 is not allowed to access ) nez ke kteremu ma php pravo pristupovat, takze jedine funkcni reseni je asi vytvaret adresare pres ftp.
|
||
koudi Profil |
#11 · Zasláno: 24. 1. 2007, 23:56:41
Ono je jedná o 'chybu', kterou se rozhodli (bohužel) neopravovat. Příkaz mkdir totiž (jak píše Augard) sice vytvoří adresář, ale j jiným uid, než normálně php používá, takže když je zaplý safe_mode, tak to logicky řve. Jak řikám, je to logická chyba, ale někde jsem četl, že 'After long discussion we've deciced not to change this behavior.'
|
||
karel Profil * |
#12 · Zasláno: 25. 1. 2007, 11:31:05
Pokud je zapnutý safe mode, musíš použít pro vytvoření adresáře FTP funkce
|
||
Rellik Profil |
#13 · Zasláno: 25. 1. 2007, 14:48:38
No s tim Safe_modem nevim... Ja mám stránky na WZ kde je zapnutý a normálně se mi adresáře tvoří (tím samým scriptem, který sem psal o pár příspěvků výš).
|
||
koudi Profil |
#14 · Zasláno: 25. 1. 2007, 14:56:02
normálně se mi adresáře tvoří
Však oni se v pohodě vytvoří ... ale už se s nimi nedá pořádně pracovat. |
||
Rellik Profil |
#15 · Zasláno: 25. 1. 2007, 15:12:38
koudi
Co myslíš tím "pořádně pracovat"? |
||
Časová prodleva: 4 měsíce
|
|||
danoha Profil * |
#16 · Zasláno: 1. 6. 2007, 16:21:54
Já vytvářím složky na WZ a jde to chyby to neháže
dělám to takhle: mkdir("slozka", "0777"); normalně to maká. |
||
Časová prodleva: 9 dní
|
|||
nofate Profil |
#17 · Zasláno: 10. 6. 2007, 14:58:09
Ten problem nebude v tom ze je zapnuty Safe Mode. Wz ho ma zapnuty a skusal sam tam spustit skript, ktory vytvori folder cez mkdir() s pravami 0777 a hned do neho presune uploadovany subor. Vsetko v poriadku, ziaden problem. A to je Safe Mode zapnuty!!!
Tak odbornici, cim to je ze sa objavuje hlaska: "Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 2314 is not allowed to access..." |
||
nofate Profil |
#18 · Zasláno: 10. 6. 2007, 15:36:47
Ten problem nebude v tom ze je zapnuty Safe Mode. Wz ho ma zapnuty a skusal sam tam spustit skript, ktory vytvori folder cez mkdir() s pravami 0777 a hned do neho presune uploadovany subor. Vsetko v poriadku, ziaden problem. A to je Safe Mode zapnuty!!! tu je dokaz!!
Tak odbornici, cim to je ze sa objavuje hlaska: "Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 2314 is not allowed to access..." |
||
Augard Profil |
#19 · Zasláno: 10. 6. 2007, 17:43:23
Ten problem je v zaplem safe mode, sm kontroluje vlastnika adresare, to nema nic spolecneho z pravama pristupu, problem je ve vytvoreni adresare u nej se natavi jiny vlastnik adresare nez na pri kterem bezi script, jedine reseni jak obejit omezeni je vytvaret adresar pres ftp.
|
||
nofate Profil |
#20 · Zasláno: 10. 6. 2007, 17:49:53
a nevite nejakej navod jak vytvorit adresar pres FTP funkci (aby se dalo pak do vytvoreneho adresare uploadovad php scriptem). Divam ze v manualnu pro ftp funkce neni funkce pro vytvoreni adresare (kerou by sem tam ocekaval) ftp_mkdir() ... jenom ftp_rmdir pro smazani. Diky...
|
||
bukaj Profil |
#21 · Zasláno: 10. 6. 2007, 17:56:11
|
||
nofate Profil |
#22 · Zasláno: 10. 6. 2007, 17:57:26
sorry, je tam
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0