2017-12-24 23 views
1

編集:明確にするために、ファイルを開いてテキストを変更したいだけです。HTMLポストアクションをPHPに置き換える

私はフォームを持つ基本的なHTMLページを持っており、POSTアクションをPHPでプログラム的に変更したいと思います。

<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); 
?> 

..andこの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

関連する問題