表单操作url


Form action url

嗨,我目前正在使用动态生成的url来生成表单操作。PHP的输出看起来与/home2/fortehom/public_html/richmindonline/testenvironment/process.php完全一样。

问题是,当我将这个动态url插入action=""时,url被解释为http://www.richmindonline.com/home2/fortehom/public_html/richmindonline/testenvironment/process.php,这是不正确的。我确信这是因为路径开头的/。我不想为了解决这个问题而改变我已经有的结构。有没有办法将主页从添加到url的前面删除?

如果有帮助的话,下面是我用来生成动态url的代码:

function pluginpath() 
{ 
$base = dirname(__FILE__); 
$path = false; 
if (@file_exists $base)."/wp-content/plugins/malware finder/process.php")) 
{ 
    $path = $base."/wp-content/plugins/malware finder/process.php"; 
} 
else 
if (@file_exists $base."/wp-content/plugins/malware finder/process.php")) 
{ 
    $path = $base."/wp-content/plugins/malware finder/process.php"; 
} 
else 
$path = false; 
if ($path != false) 
{ 
    $path = str_replace("''", "/", $path); 
} 
return $path; 
} 

不确定我是否理解您实际想要做什么,但域添加到action=""的行为对我来说似乎是正确的,因此不是路径开头的/的结果。

很可能你有一个问题,/home2/fortehom/public_html/richmindonline/testenvironment/process.php显然在服务器上你的网站目录之外。您应该从路径中删除/home2/fortehom/public_html/richmindonline/。这样,您将收到action="http://www.richmindonline.com/testenvironment/process.php",它应该是正确的。。。

你可以通过添加一行新的代码来做到这一点,例如:

if ($path != false) 
{ 
   $path = str_replace("/home2/fortehom/public_html/richmindonline/", "", $path); 
   $path = str_replace("''", "/", $path); 
} 

好吧,我猜你在行动路径上犯了错误。基本上,您试图设置process.php的完整路径,但您需要设置url。

例如Form.php

<form action="action.php" method="post">
<input type="text" name="name" id="name">
<input type="submit" value="submit" name="submit">
</form>

和操作.php

<?php
    if(isset($_REQUEST['submit']))
    {
        echo $_REQUEST['name'];
        exit;
    }
?>

在这里,您可以在表单action中设置action.php,也可以设置http://localhost/action.php

我建议你检索完整的url而不是完整的路径。使用$_SERVER["HTTP_HOST"]。

问题是您的路径"/home2/fortehom/public_html/rechmindonline/testenvironment/process.php"是本地文件系统上文件的绝对路径。你的浏览器不知道该怎么办。您需要链接到与您的webroot相关的文件。像这样的东西应该起作用:

function pluginpath() 
{ 
  $base = dirname(__FILE__); 
  $_base = str_replace($_SERVER['DOCUMENT_ROOT'],"",$base);
  $path = false; 
  if (@file_exists($base."/wp-content/plugins/malware finder/process.php")) 
  { 
      $path = $_base."/wp-content/plugins/malware finder/process.php"; 
  } 
  else 
  if (@file_exists($base."/wp-content/plugins/malware finder/process.php")) 
  { 
      $path = $_base."/wp-content/plugins/malware finder/process.php"; 
  } 
  else 
    $path = false; 
  if ($path != false) 
  { 
      $path = str_replace("''", "/", $path); 
  } 
  return $path; 
}