我在我的Mac上运行了Wamp (服务器名为emerald)和Mamp。人们在Mamp上注册。Emerald基本上是文件托管。
Emerald连接到Mamp的mysql数据库,以登录用户。然而,我想在Emerald上使用PHP创建一个新的注册目录。
我该怎么做呢?我试过使用下面的代码:
$thisdir = "192.168.1.71";
$name = "Ryan-Hart";
if(mkdir($thisdir ."/documents/$name" , 0777))
{
echo "Directory has been created successfully...";
}但没那么走运。它基本上需要连接另一台服务器并以用户的名义创建一个目录。
我希望这一点是清楚的。
发布于 2011-03-05 22:18:15
您不能通过http创建目录。您需要到远程位置的文件系统连接(例如,本地硬盘或网络共享)。
不需要设置FTP、SSH或网络共享的最简单方法是在Emerald上放置一个PHP脚本:
<?php
// Skipping sanitation because it's only going to be called
// from a friendly script. If "dir" is user input, you need to sanitize
$dirname = $_GET["dir"];
$secret_token = "10210343943202393403";
if ($_GET["token"] != $secret_token) die ("Access denied");
// Alternatively, you could restrict access to one IP
error_reporting(0); // Turn on to see mkdir's error messages
$success = mkdir("/home/www/htdocs/docs/".$dirname);
if ($success) echo "OK"; else echo "FAIL";并从另一台服务器调用它:
$success = file_get_contents("http://192.168.1.71/create_script.php?token=10210343943202393403&dir=HelloWorld");
echo $success; // "OK" or "FAIL"发布于 2011-03-05 22:16:21
在另一台创建目录的服务器上创建脚本,并远程调用它。确保你有安全检查(至少有一个简单的密码)
发布于 2011-03-05 22:19:42
没有访问远程服务器文件系统的通用方法。为此,您必须使用文件传输协议和服务器软件。一种选择是SSH,但是需要进行一些设置。
$thisdir = "ssh2.sftp://user:pass@192.168.1.71/directory/";在Windows上,您可能更容易让FTP工作,因此使用ftp:// url作为目录可能会起作用。
作为最后一种选择,您可以在您的WAMP not服务器上启用WebDAV ( PUT方法单独用于文件传输,而不是创建目录)。(但是,您可能无法使用原始的PHP文件函数,可能需要包装器类或curl来利用它。)
https://stackoverflow.com/questions/5204308
复制相似问题