2017-12-24 14 views
1

편집 : 명확히하기 위해 파일을 열고 일부 텍스트 만 변경하려고합니다.HTML 포스트 액션을 PHP로 바꾸기

양식이있는 기본 HTML 페이지가 있으며 PHP로 프로그래밍 방식으로 POST 작업을 변경하려고합니다.

<html> 

    <form method="POST" action="https://www.example.com/"> 

    <input type="text" name="email"> 
    <input type="password" name="password"> 
    <input type="submit" name="button"> 

    </form> 

</html> 

이 phpfile.php으로 example.com을 대체 않지만 제거합니다

<?php 

    $file = file_get_contents($argv[1]); 
    $startPoint='action="'; 
    $endPoint='"'; 
    $newText='phpfile.php'; 
    $newFile = fopen($argv[1], "w"); 
    fwrite(
     $newFile, 
     preg_replace(
      '#('.preg_quote($startPoint).')(.*)('.preg_quote($endPoint).')#si', 
      '$1'.$newText.'$3', 
      $file 
     ) 
    ); 
    fclose($newFile); 
?> 

.. 그리고이 HTML 파일 :

는 내가 다른 게시물에서 가지고이 PHP 스크립트를 HTML의 다른 줄. 이것은 PHP 스크립트를 실행 한 후에 남긴 것입니다 :

<html> 

    <form method="POST" action="phpfile.php"> 

    </form> 

</html> 

저는 오랫동안 PHP로 프로그래밍하지 않았으므로 도움이 될 것입니다.

+0

아마도 로그인 양식에 대한 최악의 아이디어가 될 것입니다. 그러나 나는 당신이 그것을 알고 있다고 생각합니다. : 트릭은 서버의 코드를 처음부터 얻고 있습니다. –

+0

PHP에 대해 더 많이 연구하고, 로그인 후에 변경하려는 파일을 다시 작성하거나 구현하려는 모든 인증 흐름이 잘못되었습니다. – Gntem

+0

URL을 형식으로 다시 써야하는 이유는 무엇입니까? – halojoy

답변

1

처음으로

파일에서 문자열을 바꾸는 것에 대한 잘못된 생각. 이것에 접근하는 좋은 방법은 PHP 파일에 게시 할 작업 파일로 프로그램 적으로 정의 할 수있는 변수가있는 것입니다. 그 어쨌든

내가 그 #이 의미하기로했다 모르는 질문은 아니었지만 PCRE (PHP 정규식 파서)에서, 여기에 고정 코드 :

preg_replace(
    '/('.preg_quote($startPoint).')(.*)('.preg_quote($endPoint).')/i', 
    '$1'.$newText.'$3', 
    $file 
) 

+0

감사합니다. 문제가 해결 된 것 같습니다. – henrekt