php-windows Digest 25 Oct 2007 17:03:52 -0000 Issue 3360

Topics (messages 28582 through 28584):

Re: fopen on windows shared, error: failed to open stream
        28582 by: Louie Miranda
        28583 by: Mazzu
        28584 by: Niel Archer

Administrivia:

To subscribe to the digest, e-mail:
        [EMAIL PROTECTED]

To unsubscribe from the digest, e-mail:
        [EMAIL PROTECTED]

To post to the list, e-mail:
        [EMAIL PROTECTED]


----------------------------------------------------------------------
--- Begin Message ---
After seeing this:
http://bugs.php.net/bug.php?id=25805

I think i know what the problem is.

Louie

On 10/25/07, Louie Miranda <[EMAIL PROTECTED]> wrote:
>
> Tried both..
>
> Use forward slashes for paths inside double quotes,
>   fopen("////192.168.10.2/businesscard/XML/" . $xml_uniq_session . ".xml",
> "w");
> escape the backslashes themselves
>
> fopen("\\\\\\\\192.168.10.2\\businesscard\\XML\\".$xml_uniq_session.".xml",
> "w");
> or single quotes
>   fopen('\\\\192.168.10.2\businesscard\XML\' . $xml_uniq_session . '.xml',
> "w");
>
> But, PHP is still giving me
> [function.fopen]: failed to open stream: Invalid argument in
>
> This might be a bug? It looks simple, but what is the exact point when it
> says "failed to open stream?"
>
> Louie
>
> On 10/24/07, Niel Archer <[EMAIL PROTECTED]> wrote:
> >
> > > I have this error when ever i try to save an xml file over a windows
> > shared
> > > folder
> > >
> > > *Warning*:
> > >
> > fopen(\\192.168.10.2\businesscard\XML\afbf7d1fb318054a5ba3e9d4cca0af.xml) [
> > > function.fopen]: failed to open stream: Invalid argument in *
> > > E:\\businesscard\create.php* on line *663*
> > >
> > > my code:
> > > $createXML =
> > > fopen("\\\\192.168.10.2\businesscard\XML\".$xml_uniq_session.".xml",
> > "w");
> > > $_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\"
> > standalone=\"yes\"?>\r\n";
> > > ....
> > > fwrite($createXML, $_xml, strlen($createXML));
> > > fclose($createXML);
> > >
> > > What could be the problem?
> >
> > Your path is probably invalid as backslashes are escapes inside double
> > quotes.  So the single backslashes act as escapes on the following
> > character, which results in no separation between directories.
> > Workarounds include:
> > Use forward slashes for paths inside double quotes,
> >    fopen("////192.168.10.2/businesscard/XML/" . $xml_uniq_session .
> > ".xml", "w");
> > escape the backslashes themselves
> >
> > fopen("\\\\\\\\192.168.10.2\\businesscard\\XML\\".$xml_uniq_session.".xml",
> > "w");
> > or single quotes
> >    fopen('\\\\192.168.10.2\businesscard\XML\' . $xml_uniq_session .
> > '.xml', "w");
> >
> > --
> > Niel Archer
> >
> > --
> > PHP Windows Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
>
> --
> Louie Miranda ([EMAIL PROTECTED])
> http://www.axishift.com
>
> Security Is A Series Of Well-Defined Steps
> chmod -R 0 / ; and smile :)
>



-- 
Louie Miranda ([EMAIL PROTECTED])
http://www.axishift.com

Security Is A Series Of Well-Defined Steps
chmod -R 0 / ; and smile :)

--- End Message ---
--- Begin Message ---
Have you try to test whether the file is available or not ?

Maybe you should try somehting like this :

$xml_file = '\\\\192.168.10.2\\businesscard\\XML\\'.$xml_uniq_session.'.xml';

if (!file_exists($xml_file)) {
        exit('File '.$xml_file.' does not exists or is unavailable');
} elseif (!is_file($xml_file)) {
        exit('File '.$xml_file.' is not a regular file');
} elseif (!is_writable($xml_file)) {
        exit('File '.$xml_file.' is not writable');
} else {
        fopen($xml_file,'w');
}



"Louie Miranda" <[EMAIL PROTECTED]> wrote:
> ------=_Part_1751_31891645.1193269490157
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
>
> Tried both..
>
> Use forward slashes for paths inside double quotes,
>   fopen("////192.168.10.2/businesscard/XML/" . $xml_uniq_session . ".xml",
> "w");
> escape the backslashes themselves
>
> fopen("\\\\\\\\192.168.10.2\\businesscard\\XML\\".$xml_uniq_session.".xml",
> "w");
> or single quotes
>   fopen('\\\\192.168.10.2\businesscard\XML\' . $xml_uniq_session . '.xml',
> "w");
>
> But, PHP is still giving me
> [function.fopen]: failed to open stream: Invalid argument in
>
> This might be a bug? It looks simple, but what is the exact point when it
> says "failed to open stream?"
>
> Louie
>
> On 10/24/07, Niel Archer <[EMAIL PROTECTED]> wrote:
>>
>> > I have this error when ever i try to save an xml file over a windows
>> shared
>> > folder
>> >
>> > *Warning*:
>> >
>> fopen(\\192.168.10.2\businesscard\XML\afbf7d1fb318054a5ba3e9d4cca0af.xml) [
>> > function.fopen]: failed to open stream: Invalid argument in *
>> > E:\\businesscard\create.php* on line *663*
>> >
>> > my code:
>> > $createXML =
>> > fopen("\\\\192.168.10.2\businesscard\XML\".$xml_uniq_session.".xml",
>> "w");
>> > $_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\"
>> standalone=\"yes\"?>\r\n";
>> > ....
>> > fwrite($createXML, $_xml, strlen($createXML));
>> > fclose($createXML);
>> >
>> > What could be the problem?
>>
>> Your path is probably invalid as backslashes are escapes inside double
>> quotes.  So the single backslashes act as escapes on the following
>> character, which results in no separation between directories.
>> Workarounds include:
>> Use forward slashes for paths inside double quotes,
>>    fopen("////192.168.10.2/businesscard/XML/" . $xml_uniq_session .
>> ".xml", "w");
>> escape the backslashes themselves
>>
>> fopen("\\\\\\\\192.168.10.2\\businesscard\\XML\\".$xml_uniq_session.".xml",
>> "w");
>> or single quotes
>>    fopen('\\\\192.168.10.2\businesscard\XML\' . $xml_uniq_session .
>> '.xml', "w");
>>
>> --
>> Niel Archer
>>
>> --
>> PHP Windows Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
>

--- End Message ---
--- Begin Message ---
Hi Louie

I've tried using both a mapped network drive and the UNC path syntax.
Both work perfectly for me, although I only tried reading, not writing.

Which version of PHP are you using. I'm not sure if versions before 5.0
handle shares at all.

I checked the bug entry you cited, did you read the final entry in it
which describes why it is a permission problem and not a bug? It also
gives advice on how to work around the problem.


--
Niel Archer

--- End Message ---

Reply via email to