Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP脚本创建另一个PHP文件_Php - Fatal编程技术网

使用PHP脚本创建另一个PHP文件

使用PHP脚本创建另一个PHP文件,php,Php,我需要创建一个新的.php文件作为MySQL连接配置文件。 我有这样一个清单: $fileLocation = $_SERVER['DOCUMENT_ROOT'] . "/dbconnect.php"; file_put_contents($fileLocation,$content); $content = "<?php $koneksi = mysql_connect('.$host.', '.$username.', '.$password.'); //open connection

我需要创建一个新的.php文件作为MySQL连接配置文件。 我有这样一个清单:

$fileLocation = $_SERVER['DOCUMENT_ROOT'] . "/dbconnect.php";
file_put_contents($fileLocation,$content);
$content = "<?php $koneksi = mysql_connect('.$host.', '.$username.', '.$password.'); //open connection
if(! $koneksi ) //if fail
{
  die(\'Gagal Koneksi: \' . mysql_error());
}
echo \'Koneksi Berhasil\'; ?>";
$fileLocation=$\u服务器['DOCUMENT\u ROOT']。“/dbconnect.php”;
文件内容($fileLocation,$content);
$content=“”;
我使用post方法从另一个文件(包含主机、用户名和密码的表单)获取
$username
$host
$password

我想在根目录中创建文件,我做了那个代码,但它不起作用。我试着写,但不太管用。我用谷歌搜索它,但我不太明白我在读什么


我应该怎么做?

您需要将参数作为字符串传递:

mysql_connect("'.$host.'", "'.$username.'", "'.$password.'");
是的,这看起来像一个X-Y问题,需要解决,你的问题可以用更好的方法解决

注意:不要使用
mysql.*
函数,因为它们已被弃用和删除

我试着写,但不起作用

问题几乎肯定是目录权限。您的PHP脚本没有将文件写入您提到的根目录的权限

然而

我想在根目录中创建文件

您当前试图做的事情看起来像是在制造安全风险。您允许用户以某种形式输入值,然后将这些值注入到您的脚本中,而无需任何消毒。然后将该文件写入服务器。不清楚您指的是服务器的根目录还是网站的根目录

MySQL扩展警告

自PHP5.5以来,该扩展及其函数已被弃用。您至少应该使用改进的扩展

结论

根据您的代码判断,以及您自诩的缺乏理解,我建议您现在不要采取当前的解决方案。您可能会带来各种安全风险,更不用说几乎肯定有更好的方法来实现您的目标

我建议您在继续之前至少阅读以下内容:

如果您想继续,您可以在类似的问题中找到帮助:

您不应该在创建
$content
之前执行
文件\u放置内容($fileLocation,$content)
,因为
$content
在此之前不存在。。。这显然是不言自明的。您的代码应该如下所示:

$fileLocation = $_SERVER['DOCUMENT_ROOT'] . "/dbconnect.php";
file_put_contents($fileLocation,$content);
$content = "<?php $koneksi = mysql_connect('.$host.', '.$username.', '.$password.'); //open connection
if(! $koneksi ) //if fail
{
  die(\'Gagal Koneksi: \' . mysql_error());
}
echo \'Koneksi Berhasil\'; ?>";

你为什么在。。。等等什么?我很有信心,无论你想用这种方法解决什么问题,都有更好的方法来解决。我只学了2天php。你到底想做什么?为什么用户需要通过web表单在服务器上创建MySQL连接文件?可能有一种更简单、更安全的方法来实现你的目标。我的意思是,我的应用程序的根文件夹。因为创建新文件的文件位于/myapp/install/中。我想在/myapp/@kucing中找到新文件是的,我理解,如果文件未写入服务器,可能意味着
myapp/install
的目录权限未设置为允许web服务器写入文件。但请解释一下你想要达到的目标,因为它看起来不合理或不正确。
<?php

    $fileLocation   = __DIR__ . "/../dbconnect.php";
    $content        = "<?php\n\n\t\$koneksi = mysql_connect('{$host}', '{$username}', '{$password}');";
    if(!file_exists($fileLocation)){
        file_put_contents($fileLocation, $content);
    }

    require_once $fileLocation;

    if(! $koneksi ){
        die('Gagal Koneksi: ' . mysql_error());
    }
    echo 'Koneksi Berhasil';