2017-12-24 7 views
1

Bearbeiten: Nur um zu verdeutlichen, möchte ich nur eine Datei öffnen und etwas Text ändern.Ersetzen von HTML-Post-Aktion mit PHP

Ich habe eine einfache HTML-Seite mit einem Formular, und ich möchte die POST-Aktion programmatisch mit PHP ändern.

Ich habe diesen PHP-Skript, das ich von einem anderen Beitrag bekam:

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

..und diese HTML-Datei:

<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> 

diese example.com mit phpfile.php nicht ersetzt, sondern entfernt andere Zeilen des HTML. Das ist, was ich links mit nach dem PHP-Skript ausgeführt wird:

<html> 

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

    </form> 

</html> 

Ich habe nicht lange in PHP wurde Programmierung und einige Hilfe würde geschätzt.

+0

Wahrscheinlich die schlechteste Idee überhaupt für ein Login-Formular .. aber ich denke, dass Sie wissen, dass: p der Trick ist, diesen Code auf dem Server an erster Stelle zu bekommen. –

+0

Sie sollten wirklich mehr über PHP lernen, die Datei neu schreiben, um sie nach der Anmeldung zu ändern, oder was auch immer für Authentifizierungsablauf, den Sie zu implementieren versuchen, einfach schlecht ist. – Gntem

+0

Warum müssen Sie die URL in das Formular umschreiben? – halojoy

Antwort

1

Zuerst

Schlechte Idee beim Ersetzen von Zeichenfolgen in Dateien. Eine gute Möglichkeit, dies zu erreichen, ist eine PHP-Datei mit einer Variablen, die Sie programmatisch als Aktionsdatei definieren können.

Wie dem auch sei

Wie das war nicht die Frage, ich weiß nicht, was diese # sollten bedeuten, aber in PCRE (php regex Parser), hier ist der feste Code:

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

Danke, das scheint das Problem zu beheben! – henrekt