2012-02-27 3 views
0

안녕하세요, 저는 현재 양식 작업을 생성하는 동적으로 생성 된 URL을 사용하고 있습니다. PHP 출력은 /home2/fortehom/public_html/richmindonline/testenvironment/process.php과 똑같습니다.양식 작업 url

문제는이 동적 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; 
} 

답변

0

나는 당신이 실제로 수행 할 작업을 이해한다면 모르겠지만, 도메인이 action=""에 추가하는 동작하지 않음 내게 맞는 것 같습니다. 경로 시작 부분에 /의 결과가 없습니다.

적절하게 /home2/fortehom/public_html/richmindonline/testenvironment/process.php이 서버의 웹 사이트 디렉토리 외부에있는 것이 문제입니다. 경로에서 /home2/fortehom/public_html/richmindonline/을 제거해야합니다.

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

답장을 보내 주셔서 감사합니다. Michal,하지만이 문제를 실제로 이해하고 있습니다. 답장에서 언급 한대로 경로를 제거 할 수 있습니까? –

+0

답변을 편집했습니다. @Rob. 매우 기본적인 접근 방법입니다. 서버 환경 변수를 사용하여보다 강력한 버전을 고려해야합니다. 그러나 이것은 지금 당신을 위해 작동해야합니다 ... – Michal

0

문제는 그 경로 "/ :이 방법으로 정확해야 action="http://www.richmindonline.com/testenvironment/process.php"을 ...

당신은 예를 들어 다음과 같은 코드의 새로운 라인을 추가하여이 작업을 수행 할 수 있습니다

받을 home2/fortehom/public_html/richmindonline/testenvironment/process.php "는 로컬 파일 시스템의 파일에 대한 절대 경로입니다. 귀하의 브라우저는 이것을 어떻게 처리해야할지 모릅니다. 웹 루트를 기준으로 파일에 링크해야합니다. 이 같은 것이 작동해야합니다 :

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; 
} 
+0

안녕하세요 jasonlfunk, 나는이 기능을 울리고 아무 것도 출력되고 있지 않습니다. 내가 놓친 게 있니? –

+0

방금 ​​코드를 복사하고 테스트하지 않고 약간 변경했습니다. 내가 알지 못했던 구문 오류가 있음이 밝혀졌습니다. 내 코드를 업데이트했습니다. – jasonlfunk

0

글쎄, 당신은 당신의 행동 경로에서 실수하고있는 것 같아요. 기본적으로 process.php의 전체 경로를 설정하려고하지만 URL을 설정해야합니다.

예 :

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

및 action.php Form.php

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

당신은 형태의 행동에 action.php 설정할 수 있습니다 또는 당신은 내가 대신의 전체 URL을 검색하는 것이 좋습니다해야 http://localhost/action.php

설정할 수 있습니다 전체 경로. $ _SERVER [ 'HTTP_HOST']를 사용하십시오.