Autor | Zpráva | ||
---|---|---|---|
H(I)V Profil * |
#1 · Zasláno: 11. 12. 2005, 17:57:13
Může se stát, že by nějaká funkce v PHp fungovala špatně ? Protože já jsem si hodil na server stránku, několikrát jsem si ověřil jestli tam je, ale File_Exists () pořád tvrdí, že tam není.
|
||
printf Profil |
#2 · Zasláno: 11. 12. 2005, 18:12:16
Příčinou by mohla být malá a velká písmena v názvu. Např. hledáte index.html a na serveru je Index.html. Funkce taky nefunguje pro soubory na jiném serveru.
|
||
igamenir Profil |
#3 · Zasláno: 11. 12. 2005, 18:24:00
Výsledek file_exists je cachován, takže to může být příčinout, file_exists také nějak divně funguje v safe_modu a asi potřebuje absolutní adresu.
|
||
H(I)V Profil * |
#4 · Zasláno: 11. 12. 2005, 19:12:51
Mám script.
<? $filename = "http://stranka.wz.cz/$page.php"; if (File_Exists($filename)) { include $filename; } else { include "http://stranka.wz.cz/rozhrani/home.php"; } ?> Odkaz vypadá takto: <A href="?page=rozhrani/inset&inpage=rozhrani/forms/add_clanky">Přidat článek</A> To "inpage" je proměná pro vkládání stránky do té vložené stránky. |
||
igamenir Profil |
#5 · Zasláno: 11. 12. 2005, 19:45:31
Místo $page zkus dát $_GET['page']. A nejspíš také potřebuješ fyzickou adresu na serveru, ne http adresu.
|
||
H(I)V Profil * |
#6 · Zasláno: 12. 12. 2005, 16:12:32
No mě jde o to, že když mám odkaz s adresou http://stranka.wz.cz/rozhrani/mainmenu.php?page=rozhrani/inset&inpage =rozhrani/forms/add_clanky
Proměnné zpracuje již výše zmíněný script, jenže ten vyhodnotí, že stránka neexistuje. Zkoušl jsem všechno možné. Stránka při tom existuje. Vyřešil jsem to prostým include "http://stranka.wz.cz/" . $_GET['page'] . ".php"; Ale pořád nechápu jeký je rozdíl mezi tím, když se to vkládá do toho include co je nad tímto textem a tím co je od tímto textem. $filename = "http://stranka.wz.cz/" . $_GET['page'] . ".php"; if (File_Exists($filename)) { include $filename; } else { include "http://stranka.wz.cz/rozhrani/home.php"; } |
||
WertriK Profil * |
#7 · Zasláno: 12. 12. 2005, 16:24:55
$filename = "http://stranka.wz.cz/" . $_GET['page'] . ".php";
if (File_Exists($filename)) { include $filename; } else { include "http://stranka.wz.cz/rozhrani/home.php"; } zkus to takto $filename = $_GET['page'] . ".php"; if (File_Exists($filename)) { include $filename; } else { include "http://stranka.wz.cz/rozhrani/home.php"; } |
||
H(I)V Profil * |
#8 · Zasláno: 12. 12. 2005, 16:31:32
Wertik
Tohle byla pravní varianta. |
||
Kajman_ Profil * |
#9 · Zasláno: 12. 12. 2005, 16:36:28
http://mirrors.inway.cz/manual/cs/function.file-exists.php
říká file_exists() nefunguje na vzdálených souborech; soubor k ověření musí být přístupný prostřednictvím filesystému serveru. |
||
H(I)V Profil * |
#10 · Zasláno: 12. 12. 2005, 16:41:22
Kajman_
No myslím, že když je soubor jen v jiné složce, tak to není nijak moc vzdálené :) |
||
Kajman_ Profil * |
#11 · Zasláno: 12. 12. 2005, 16:54:56
ale nepřistupuješ přes filesystém
|
||
Rob Profil |
#12 · Zasláno: 13. 12. 2005, 21:21:11
H(I)V
Musíš relativně, ne absolutně. |
||
Časová prodleva: 1 měsíc
|
|||
iru Profil * |
#13 · Zasláno: 19. 1. 2006, 12:40:25
Mám podobný problém. Rozdíl je v tom, že na serveru soubor nemám a file_exists tvrdí, že tam je.
if (file_exists("soubory/$soubor_name")) { echo "Tento soubor je již uložen na disku"; } else {........ Nevíte někdo, co s tím? P.S. Pokouším se uploadovat soubor na server a zjišťuji, zda tam už náhodou není. |
||
Hugo Profil |
#14 · Zasláno: 19. 1. 2006, 13:44:38
iru
Problém může být v tom, že ten soubor tam je, ale ty ho nevidíš (špatně nastavená práva). |
||
iru Profil * |
#15 · Zasláno: 19. 1. 2006, 14:36:04
Vytvořila jsem si na webu adresář "soubory", který je prázdný. Kontrolovala jsem to přes FTP, je stále prázdný. Kromě toho při každém pokusu vyberu z disku jiný soubor.
|
||
iru Profil * |
#16 · Zasláno: 19. 1. 2006, 15:00:18
Toto je první soubor, kde mám formulář:
<form action="upload.php" method="post" enctype="multipart/form-data"> <b><font face="Arial" size="5">Upload souboru do databáze:</font></b><div align="left"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="483" height="27" id="AutoNumber1" bgcolor="#FFCC00"> <tr> <td width="105" height="23"><b><font face="Arial" size="2"> Soubor:</font></b></td> <td width="372" height="23"> <p align="left"><u> <input type="file" name="soubor" size="33" alt="soubor"></u></td> </tr> <tr> <td width="105" height="13"><b><font face="Arial" size="2"> Popis souboru:</font></b></td> <td width="372" height="13"><input type="text" name="popis" size="50"></td> </tr> <tr> <td width="105" height="1"> </td> <td width="372" height="1"> <p align="right"></td> </tr> <tr> <td width="105" height="13"> </td> <td width="372" height="13"> <input type="button" onclick="controlValue()" value="Upload" alt="upload" style="float: right"></td> </tr> </table> </div> </form> A tady je soubor upload.php: if (file_exists("soubory/$soubor_name")) { echo "Tento soubor je již uložen na disku"; } else {.... a pokračuje další kód, ke kterému již nedojde..... |
||
Kajman_ Profil * |
#17 · Zasláno: 19. 1. 2006, 17:24:39
Podle všeho je proměnná $soubor_name prázdná, takže testuješ, zda existuje adresář soubory.
|
||
Rob Profil |
#18 · Zasláno: 19. 1. 2006, 17:31:41
iru
tzn. udělej to tak, aby to přijalo proměnnou tak jak má a ne jako pro zaplé register_globals, protože tam kde se o to pokoušíš je mají asi vypnuté, tedy tak jak by to mělo být. |
||
iru Profil * |
#19 · Zasláno: 19. 1. 2006, 17:44:45
Máš pravdu, neměla jsem špatně definovanou proměnnou $soubor_name.
Díky Tímto jsem se tedy prokousala, ale mám ještě jednu potíž a to při uložení tohoto souboru: move_uploaded_file($TMPjmeno, "soubory/$soubor_name") or die ('Při ukládání souboru nastala chyba.'); Dostanu při testování v prohlížeči tuto hlášku: Warning: move_uploaded_file(soubory/kontakt.doc): failed to open stream: Permission denied in /httpd/.............................../upload.php on line 31 Warning: move_uploaded_file(): Unable to move '/httpd/html/ir_webdesigncom/tmp/phpahJ3qH' to 'soubory/kontakt.doc' in /httpd/........................................../upload.php on line 31 Pri ukládání souboru nastala chyba. vím, že už to do tohoto tématu nepatří, ale snad někdo budete vědět řešení... |
||
jozob Profil |
#20 · Zasláno: 19. 1. 2006, 17:53:51
Vyzerá to tak, akoby bolo zakázané čitať z tempového adresáru (dočasný priečinok, kam sa uploadujú súbory). Je to na Tvojom hostingu povolené? Poprípade, možno by sa dala nastaviť direktíva upload_tmp_dir v konfigurácii tak, aby sa súbori kopírovali do toho adresára, kam máš prístup.
|
||
Rob Profil |
#21 · Zasláno: 19. 1. 2006, 17:56:14
iru
nejsem si 100%-ně jist, ale mohlo by to znamenat, že to mají zakázané, protože jsem s tím radil jednomu známému a mám tušení, že mu to házelo podobnou hlášku. Poslal bych můj uploadovací skript na ozkoušení, ale nechci ho sem dát přímo. Pošlu mailem nebo tak nějak ( http://robweb.wz.cz - kontakty) |
||
Rob Profil |
#22 · Zasláno: 19. 1. 2006, 17:57:30
Zase jsem byl předběhnut.
|
||
Hugo Profil |
#23 · Zasláno: 19. 1. 2006, 18:04:27
Spíš bych řekl, že jsou špatně nastavená práva u adresáře do kterého ten soubor přesouvá. Je nutné aby tam mohl apache zapisovat.
|
||
jozob Profil |
#24 · Zasláno: 19. 1. 2006, 18:06:59
Hugo
> " ... špatně nastavená práva u adresáře do kterého ten soubor přesouvá ... " Ale chyba hovorí: "failed to OPEN stream: Permission denied", takže asi nie. |
||
iru Profil * |
#25 · Zasláno: 19. 1. 2006, 18:09:13
Tady je moje adresa: irumlerova@seznam.cz . Budu vděčná za každou pomoc.
Předem díky. |
||
jozob Profil |
#26 · Zasláno: 19. 1. 2006, 18:14:00
iru
Chcelo by to asi nový thread. Dostávam maily s titulkom "file exists nehlási pravdu a rieši sa tu upload. |
||
Hugo Profil |
#27 · Zasláno: 19. 1. 2006, 18:15:14
jozob
Obávám se, že se mýlíš. iru Nastav adresáři, do kterého ukládáš ten soubor práva 0777. |
||
jozob Profil |
#28 · Zasláno: 19. 1. 2006, 18:18:49 · Upravil/a: jozob
Hugo
> "Obávám se, že se mýlíš." No je to možné. Ale ako si mám vysvetliť hlášku "failed to OPEN stream: Permission denied"? |
||
iru Profil * |
#29 · Zasláno: 19. 1. 2006, 18:20:10
omlovám se, jsem asi lama, já netuším, jak se to dělá (nastavení práva 0777)
|
||
Hugo Profil |
#30 · Zasláno: 19. 1. 2006, 18:22:47
Zkus třeba google. Podívej se co to je stream.
|
||
Téma pokračuje na další straně.
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0