Pergunta

Estou tendo problemas para obter um formulário PHP para gravar em um arquivo hospedado com a pasta Apache HTTPSDOCS. O formulário funciona bem se todas as partes estiver usando o protocolo HTTP, mas quando protegeu o formulário, o envio do formulário e o arquivo nos quais os resultados são gravados, ele falha.

Alguém pode ajudar?

Este é o código PHP:

$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');

E os vários locais são:

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

Além disso, minha página de formulário é https://example.com/form.php, e o campo de formulário redireciona para Action = "ProcessForm.php", então por que ele procura processform.php em httpdocs em vez de httpsdocs? Certamente deve permanecer dentro do mesmo protocolo/diretório que foi chamado!

Obrigado por qualquer ajuda :)

Foi útil?

Solução

Você está confundindo coisas. Os URLs não são URLs, são diretórios. Minha primeira idéia é verificar os direitos do diretório seguro ( # /var/www/vhosts/mysite.co.uk/httpsdocs/files) para ver se o usuário do seu servidor da web pode gravar lá.

Outras dicas

Segundo Maarten, esta é definitivamente uma configuração de permissão no arquivo. Você já foi o arquivo? Esse deve ser o seu único problema, no entanto, esse tipo de envio é muito inseguro, mesmo se você o fizer sobre o HTTPS. Eu faria o arquivo chamado algo como 'data.segurado', então você pode usar as configurações de permissão do Apache para 'bloquear' o arquivo do acesso/leitura externa.

<files "*.secured">
order allow,deny
deny from all
</files>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top