gpt4 book ai didi

javascript - 为演示目的创建站点的副本/ session

转载 作者:行者123 更新时间:2023-11-29 02:40:39 25 4
gpt4 key购买 nike

我编写了一个 PHP 电子商务网站,我将向潜在客户/买家展示。他们将能够创建和删除类别、产品、上传图像并随心所欲地使用网站和数据库,甚至像某些人一样删除所有内容。

这是产品的完整演示,用户可以使用演示管理员帐户访问,作为产品组合或说服小企业购买。

基本上我希望他们可以自由使用该网站,但我不想每次有人破坏它时都手动恢复它。

所以我的想法是在每次访问者单击 url 时创建站点和 MySQL 数据库的副本/ session ,并在他们关闭浏览器时将其删除。新用户会得到一个新的、原始的网站副本。

陪同的访客每人都可以使用一份自己的副本。

Google 搜索/Binging 实现这样的事情让我失败了。也许我措辞不当,但我没有找到任何接近我需要的东西。

所以我寻求有关如何编写代码的帮助。提前致谢。

最佳答案

选项 1:

您可以使用以下代码制作一个 php 文件:

$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' "
. "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";

$output = shell_exec($command . '/backup.sql');

恢复数据库并清理数据库(在 SQL 文件中需要再次删除并创建所有表)。

要删除上传的文件,请执行以下操作:

//The name of the folder.
$folder = 'temporary_files';

//Get a list of all of the file names in the folder.
$files = glob($folder . '/*');

//Loop through the file list.
foreach($files as $file){
//Make sure that this is a file and not a directory.
if(is_file($file)){
//Use the unlink function to delete the file.
unlink($file);
}
}

在一个文件(如 cron.php)中使用它们,然后在您的网站上添加一个按钮以供您的用户手动清除,您也可以将其添加到您的服务器 cronjob 中以每小时/每天/每周/每月清除。

选项 2:

如果使用 CPanel - 你需要阅读 cPanel API 2 Functions .像这样的代码(API1 示例)为使用 PHP 的用户创建一个子域:

$xmlapi->api1_query($cpanelusr, 'SubDomain', 'addsubdomain', array('user123','bodoamat.com',0,0, '/public_html/NewUserDirectory')

然后复制您的 package.zip,然后将其解压缩到 /public_html/NewUserDirectory

然后用cPanel API 2 Functions创建数据库和账户.

并使用此代码在用户配置文件中添加数据库用户名/密码/名称:

$file_path= 'public_html/NewUserDirectory/config.php';
// Open the file to get existing content
$current = file_get_contents($file_path);

$data_to_write = str_replace("DATABASE_USERNAME",$newdb_user,$current);
$data_to_write = str_replace("DATABASE_PASSWORD",$newdb_pass,$data_to_write);
$data_to_write = str_replace("DATABASE_NAME",$newdb_name,$data_to_write);

file_put_contents($file_path, $data_to_write);

每个用户都有一个子域供测试/使用。

选项 3:

您可以在域的 DNS 服务器中添加此子域(*.domain.ir 到您的 /public_html 目录)。

在您的 PHP 代码中,您必须读取域 ($_SERVER['REQUEST_URI']),然后为每个用户使用前缀表或另一个数据库。 (例如,如果他们打开 user1.domain.ir,则使用 user_TABLENAME(如果存在)。)并为每个用户创建一个上传目录。

关于javascript - 为演示目的创建站点的副本/ session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52910458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com