Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
在我的服务器上创建一个local.php页面_Php_Apache - Fatal编程技术网

在我的服务器上创建一个local.php页面

在我的服务器上创建一个local.php页面,php,apache,Php,Apache,我正在运行一些PHP web应用程序,它们基本上是管理MySQL数据库内容(添加、删除和更新)的表单。现在我希望能够以编程方式插入数据,但我已经将所有逻辑都放在PHP中(数据库端没有验证),我希望重用我拥有的PHP逻辑 我曾考虑使用一个新的URI来接收查询字符串中的产品参数,但我只希望在从服务器内部调用端点时该端点可用(以避免外部用户调用它) 我在Ubuntu 12.04中运行Apache服务器。我希望我解释得很好您可以看看$\u SERVER['REMOTE\u ADDR'],它是连接到php

我正在运行一些PHP web应用程序,它们基本上是管理MySQL数据库内容(添加、删除和更新)的表单。现在我希望能够以编程方式插入数据,但我已经将所有逻辑都放在PHP中(数据库端没有验证),我希望重用我拥有的PHP逻辑

我曾考虑使用一个新的URI来接收查询字符串中的产品参数,但我只希望在从服务器内部调用端点时该端点可用(以避免外部用户调用它)


我在Ubuntu 12.04中运行Apache服务器。我希望我解释得很好

您可以看看
$\u SERVER['REMOTE\u ADDR']
,它是连接到php脚本的客户端的地址

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
  // connection from localhost, proceed
} else {
  // connection from the outside, deny
  header('403 Forbidden');
  echo "You are not allowed to be here.";
  die();
}
考虑到如果您在同一台机器中有一个反向代理,那么到脚本的所有连接都将来自该代理,并且您将无法知道它们是来自本地主机还是来自另一台主机

来自@x4rf41的注释也很好,可以从Web服务器层管理注释(尽管反向代理也有同样的问题)

另一个选项是命令行脚本,而不是网页,您可以将数据作为参数传递给脚本:

#!/usr/bin/env php
<?php
// total number of params is in $argc (minus 1, for the script name)
// param 1 in $argv[1]
// param 2 in $argv[2]...
// argv[0] is reserved for the name of the script

if ($argc != 5) {
  fprintf("STDERR: %s param1 param2 param3 param4\n", $argv[0]);
  exit(1);
}

// do your logic here
#/usr/bin/env-php

您可以查看
$\u SERVER['REMOTE\u ADDR']
,它是连接到php脚本的客户端的地址

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
  // connection from localhost, proceed
} else {
  // connection from the outside, deny
  header('403 Forbidden');
  echo "You are not allowed to be here.";
  die();
}
考虑到如果您在同一台机器中有一个反向代理,那么到脚本的所有连接都将来自该代理,并且您将无法知道它们是来自本地主机还是来自另一台主机

来自@x4rf41的注释也很好,可以从Web服务器层管理注释(尽管反向代理也有同样的问题)

另一个选项是命令行脚本,而不是网页,您可以将数据作为参数传递给脚本:

#!/usr/bin/env php
<?php
// total number of params is in $argc (minus 1, for the script name)
// param 1 in $argv[1]
// param 2 in $argv[2]...
// argv[0] is reserved for the name of the script

if ($argc != 5) {
  fprintf("STDERR: %s param1 param2 param3 param4\n", $argv[0]);
  exit(1);
}

// do your logic here
#/usr/bin/env-php

不要对自己的服务器执行完整的HTTP请求。这是对资源的毫无意义的浪费,同时也引发了一系列安全问题

重写代码,使其能够作为函数正确调用,然后只需执行以下操作:

functions.php:

<?php
function do_whatever_it_is_you_want() {
    echo 'yo';
}

不要对自己的服务器执行完整的HTTP请求。这是对资源的毫无意义的浪费,同时也引发了一系列安全问题

重写代码,使其能够作为函数正确调用,然后只需执行以下操作:

functions.php:

<?php
function do_whatever_it_is_you_want() {
    echo 'yo';
}

您可以使用htaccess限制对某些文件或目录的访问。首先看看这个:您还可以选中
$\u SERVER['REMOTE\u ADDR']
您可以从命令行运行PHP,或者您可以创建一个只在localhost上侦听的虚拟主机,以阻止外部任何人访问它。您可以使用htaccess限制对某些文件或目录的访问。首先看一下这个:您还可以检查
$\u SERVER['REMOTE\u ADDR']
您可以从命令行运行PHP,或者您可以创建一个只在本地主机上侦听的虚拟主机,以阻止外部任何人访问它。因此,我可以使用一个与服务器本身完全解耦的.PHP脚本,“include”add操作所需的server.php文件,并像通常的脚本一样调用它(传递参数ovr命令行,在脚本中解析它们并调用要添加到数据库的方法)?@rnunes是的,这就是我可以将.php脚本与服务器本身完全解耦的想法,“include”add操作所需的server.php文件,并像通常的脚本一样调用它(传递参数ovr命令行,在脚本中解析它们并调用要添加到数据库的方法)?@rnunes是的,这就是想法