On 5 November 2010 16:43, Richard Quadling <rquadling@xxxxxxxxx> wrote: > On 5 November 2010 16:30, Nathan Nobbe <quickshiftin@xxxxxxxxx> wrote: >> On Fri, Nov 5, 2010 at 10:18 AM, Steve Staples <sstaples@xxxxxxxx> wrote: >> >>> On Fri, 2010-11-05 at 10:06 -0600, Nathan Nobbe wrote: >>> > On Fri, Nov 5, 2010 at 9:48 AM, Steve Staples <sstaples@xxxxxxxx> wrote: >>> > >>> > > Hey guys (and gals) >>> > > >>> > > I am writing something that needs to connect to a SMB server... can >>> this >>> > > be done easliy? >>> > > >>> > > I copied a sample code from php.net that used the system() command and >>> > > mounted the SMB to a /mnt/tmp partion, and technically, it works.... >>> the >>> > > problem is, is that mount has to be run as root... >>> > > >>> > > is there a way to put the "mount/unmount" commands into an allowed >>> > > command? Â i supposed, the other problem is, is waht if this is on a >>> > > windows machine? >>> > > >>> > > i dont really want to mess with permissions too much, since this will >>> > > have to be portable from linux to windows... Â any help would be >>> > > appreciated... >>> > > >>> > >>> > is there any reason the php application code has to be responsible for >>> > mounting the network drive? >>> > >>> > typically this is an os-level responsibility. >>> > >>> > -nathan >>> >>> this is true, but i am looking at mounting it, reading the contents, >>> maybe moving a file to it, or renaming a file... and then closing the >>> smb share. >>> >>> i have thought abotu making it a requirement on the users end to have >>> the directory ready for the application... but thought also about maybe >>> giving them the option to connect to it and do what it has to do, then >>> close it... >>> >>> i've been doing it the second way, but was wondering if the first was a >>> viable option or not. >> >> >> hmm, yeah im not sure if theres a clean mounting interface between windows >> and linux. Âthe nomenclature is different for one, and im not even sure how >> to mount a network drive programmatically under windows. Âmaybe someone else >> on the list does. >> >> -nathan >> > > You don't need to "mount" the share. If the share is available, then > you can access using UNC ... > > \\server\share\directory\file.ext is fine. > Or > \\xxx.xxx.xxx.xxx\share\directory\file.ext > > But watch out ... in PHP, you'll need to either use / or \\ for each \ > in the UNC path ... > > \\\\server\\share\\directory\\file.ext is fine. > Or > //xxx.xxx.xxx.xxx/share/directory/file.ext > > > If you do really need to map it, then > > net use x: \\server\share > > and > > net use x: /d > > to drop the mapping. > > But you don't need to mount the share if the server with > > Is this not the same on unix? > If you need to supply credentials to access the share, then mapping it (I think) is the only way PHP could access it ... net use x: \\server\share /user:domain\username password If you don't supply the password, the user would need to enter it at the command line. A bit difficult via the web. The syntax of this command is: NET USE [devicename | *] [\\computername\sharename[\volume] [password | *]] [/USER:[domainname\]username] [/USER:[dotted domain name\]username] [/USER:[username@dotted domain name] [/SMARTCARD] [/SAVECRED] [[/DELETE] | [/PERSISTENT:{YES | NO}]] NET USE {devicename | *} [password | *] /HOME NET USE [/PERSISTENT:{YES | NO}] If the device and permissions are a fixed, then I'd use the /SAVECRED option and ask the user to do the job once. Thereafter you can just ... net use x: \\server\share and no need to enter permissions as this will use the stored ones. -- Richard Quadling Twitter : EE : Zend @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php