Frage

Ich habe Probleme, ein PHP -Formular zu erhalten, um in eine Datei zu schreiben, die mit dem Apache HTTPSDOCS -Ordner gehostet wird. Das Formular funktioniert gut, wenn alle Teile davon das HTTP -Protokoll verwenden, aber wenn ich das Formular, die Formulare und die Datei, in die die Ergebnisse geschrieben werden, geschrieben werden, schlägt es fehl.

Kann jemand helfen?

Dies ist der PHP -Code:

$myFile = "files/data.txt";
$fh = fopen($myFile, 'a') or die ("Could not read file");
$stringData = "Data in pipe format\n";
fwrite($fh, $stringData);
fclose($fh);
header( 'Location: http://www.example.com/thankyou');

Und die verschiedenen Orte sind:

  • /var/www/vhosts/example.com/httpdocs/files
  • /var/www/vhosts/example.com/httpsdocs/files

Zusätzlich ist meine Formseite https://example.com/form.php, und das Formfeld leitet zu action = "processForm.php" um. Warum sucht es also nach ProcessForm.php in httpdocs anstelle von httpsdocs? Sicherlich sollte es im selben Protokoll/Verzeichnis bleiben, wie es genannt wurde!

Danke für jede Hilfe :)

War es hilfreich?

Lösung

Sie verwechseln Dinge. Die URLs sind keine URLs, sie sind Verzeichnisse. Meine erste Idee ist es, die Rechte des sicheren Verzeichnisses ( # /var/www/vhosts/mysite.co.uk/httpsdocs/files) zu überprüfen, um festzustellen, ob Ihr Webserver -Benutzer dort schreiben kann.

Andere Tipps

Ich zweite Maarten, dies ist definitiv eine Berechtigungseinstellung in der Datei. Haben Sie die Datei chmodiert? Dies sollte Ihr einziges Problem sein, aber diese Art der Einreichung ist sehr unsicher, selbst wenn Sie dies über HTTPS tun. Ich würde die Datei so etwas wie "Data.Secured" bezeichnen, dann können Sie die Berechtigungseinstellungen von Apache verwenden, um die Datei von externem Zugriff/Lesen abzusperrten.

<files "*.secured">
order allow,deny
deny from all
</files>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top