2011-03-05 81 views
1

我有我的Mac上運行和Mamp運行的Wamp(服務器稱爲祖母綠)。人們在Mamp上註冊。祖母綠基本上是文件託管。PHP - 在不同的服務器上創建目錄

Emerald連接到Mamp的mysql數據庫,以登錄用戶。不過,我想使用PHP爲Emerald上的新註冊創建一個目錄。

我該怎麼做?我曾嘗試使用此代碼:

$thisdir = "192.168.1.71"; 
$name = "Ryan-Hart"; 

if(mkdir($thisdir ."/documents/$name" , 0777)) 
{ 
    echo "Directory has been created successfully..."; 
} 

但沒有運氣。它基本上需要連接另一臺服務器並以用戶的名義創建一個目錄。

我希望這很清楚。

+1

你可以從wamp安裝磁盤,你可以在監聽的wamp上運行一個進程創建文件夾請求(甚至是腳本),或者您可以連接到您的wamp(使用SSH,FTP,SAMBA ...)並創建文件夾...已經在wamp上運行了什麼?你可以掛載一個磁盤嗎?這將是最簡單的。 – Konerak 2011-03-05 14:17:13

+0

但是,您決定解決這個問題時,要非常小心,以確保黑客無法創建/修改/刪除任意文件! – 2011-03-05 14:21:34

+0

你可以檢查[這個答案](http://stackoverflow.com/questions/1688564/php-directory-list-from-remote-server) – vPJ 2011-03-05 14:18:49

回答

1

在另一個創建dir的服務器上創建腳本並遠程調用它。 請確保您有安全檢查(至少+一個簡單的密碼)

2

您無法通過http創建目錄。您需要到遠程位置的文件系統連接(例如本地硬盤或網絡共享)。

,不需要設置FTP,SSH或網絡共享將是把對翡翠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" 
1

沒有通用的方法來訪問遠程服務器文件系統。您必須使用文件傳輸協議和服務器軟件才能這樣做。一種選擇是SSH,然而這需要一些設置。

$thisdir = "ssh2.sftp://user:[email protected]/directory/"; 

在Windows上,您可能更容易使FTP工作,因此使用ftp:// url作爲目錄可能會起作用。

作爲最後一種選擇,您可以在WAMP網絡服務器上啓用WebDAV(PUT方法僅用於文件傳輸,不會創建目錄)。 (但是你可能不能使用原始的PHP文件函數,可能需要一個包裝類或curl來利用它)。

相關問題