« 1 2 »
Autor Zpráva
H(I)V
Profil *
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
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
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 *
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
Místo $page zkus dát $_GET['page']. A nejspíš také potřebuješ fyzickou adresu na serveru, ne http adresu.
H(I)V
Profil *
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 *
$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 *
Wertik

Tohle byla pravní varianta.
Kajman_
Profil *
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 *
Kajman_
No myslím, že když je soubor jen v jiné složce, tak to není nijak moc vzdálené :)
Kajman_
Profil *
ale nepřistupuješ přes filesystém
Rob
Profil
H(I)V
Musíš relativně, ne absolutně.
iru
Profil *
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
iru

Problém může být v tom, že ten soubor tam je, ale ty ho nevidíš (špatně nastavená práva).
iru
Profil *
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 *
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">&nbsp;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">&nbsp;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">&nbsp;</td>
<td width="372" height="1">
<p align="right"></td>
</tr>
<tr>
<td width="105" height="13">&nbsp;</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 *
Podle všeho je proměnná $soubor_name prázdná, takže testuješ, zda existuje adresář soubory.
Rob
Profil
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 *
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
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
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
Zase jsem byl předběhnut.
Hugo
Profil
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
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 *
Tady je moje adresa: irumlerova@seznam.cz . Budu vděčná za každou pomoc.
Předem díky.
jozob
Profil
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
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
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 *
omlovám se, jsem asi lama, já netuším, jak se to dělá (nastavení práva 0777)
Hugo
Profil
Zkus třeba google. Podívej se co to je stream.
« 1 2 »
Toto téma je uzamčeno. Odpověď nelze zaslat.

0