Navegador tenta fazer o download ao invés de exibir o PHP interpretado

Enviada por Dione Carlos 
Dione Carlos
Navegador tenta fazer o download ao invés de exibir o PHP interpretado
24 de August de 2010 às 06:18PM
Olá pessoal.

Este é meu primeiro post no fórum e infelizmente já é pedindo ajuda, ja peço desculpas se essa não for uma boa maneira de estrear no fórum, mas estou tentando a dias resolver o problema.

Estou querendo aprender PHP e estou tentando instalar primeiramente o Apache 2.2 e o PHP e fazê-los funcionar adequadamente.

Instalei com sucesso o Apache 2.2 em meu computador, pois quando abro o navegador e entro em http://localhost/ a mensagem de confirmação aparece: http://img838.imageshack.us/img838/7083/apacheok.png

Logo depois instalei o PHP e o configurei com o Apache, de maneira que consegui sucesso, dado que fiz uma pagina em php chamada info.php e a acessei através do link http://localhost/info.php obtendo esse resultado: http://img839.imageshack.us/img839/5773/phpok.png


Arquivos usados na instalação:

Apache: httpd-2.2.16-win32-x86-no_ssl.msi
PHP: php-5.2.14-Win32.zip
PECL: pecl-5.2.6-Win32.zip

O meu problema: Seguindo um livro (PHP & MYSQL Desenvolvimento Web - Luke Welling e Laura Thomson) eu tento fazer funcionar o seguinte:

Há uma página em HTML, chamada orderform.html com o seguinte conteúdo:
<html>
<body>
<form action="processorder.php" method="post">
<table border="0">
<tr bgcolor="#cccccc">
<td width="150">Item</td>
<td width="15">Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align="center"><input type="text" name="tireqty" size="3"
maxlength="3"></td>
</tr>
<tr>
<td>Oil</td>
<td align="center"><input type="text" name="oilqty" size="3" maxlength="3"></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align="center"><input type="text" name="sparkqty" size="3"
maxlength="3"></td>
</tr>
<tr>
<td>How did you find Bob's?</td>
<td><select name="find">
<option value = "a">I'm a regular customer</option>
<option value = "b">TV advertising</option>
<option value = "c">Phone directory</option>
<option value = "d">Word of mouth</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Submit Order"></td>
</tr>
</table>
</form>
</body>
</html>

Essa página exibe o seguinte : http://img251.imageshack.us/img251/148/orderformd.png

Quando clico no botão " Submit Order " era para o navegador abrir o "processorder.php" , que tem a estrutura abaixo:

<?php
// create short variable names
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
$find = $_POST['find'];
?>
<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?php

echo '<p>Order processed at ';
echo date('H:i, jS F');
echo '</p>';

echo '<p>Your order is as follows: </p>';

$totalqty = 0;
$totalqty = $tireqty + $oilqty + $sparkqty;
echo 'Items ordered: '.$totalqty.'<br />';

if( $totalqty == 0)
{
echo 'You did not order anything on the previous page!<br />';
}
else
{
if ( $tireqty>0 )
echo $tireqty.' tires<br />';
if ( $oilqty>0 )
echo $oilqty.' bottles of oil<br />';
if ( $sparkqty>0 )
echo $sparkqty.' spark plugs<br />';
}

$totalamount = 0.00;

define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4);

$totalamount = $tireqty * TIREPRICE
+ $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;

echo 'Subtotal: $'.number_format($totalamount,2).'<br />';

$taxrate = 0.10; // local sales tax is 10%
$totalamount = $totalamount * (1 + $taxrate);
echo 'Total including tax: $'.number_format($totalamount,2).'<br />';


if($find == 'a')
echo '<p>Regular customer.</p>';
elseif($find == 'b')
echo '<p>Customer referred by TV advert.</p>';
elseif($find == 'c')
echo '<p>Customer referred by phone directory.</p>';
elseif($find == 'd')
echo '<p>Customer referred by word of mouth.</p>';
else
echo '<p>We do not know how this customer found us.</p>';


?>
</body>
</html>

Mas ao invés de interpretar o processorder.php , o navegador tenta abrir/fazer download : http://img641.imageshack.us/img641/5480/erronavegador.png


Mesmo colocando tanto orderform.html e processorder.php dentro da pasta "htdocs" do Apache, o problema persiste. Mas se eu tento acessar elas separadamente, por exemplo, abrindo o navegador e digitando "http://localhost/processorder.php" , essa pagina php funciona, mas isso não resolve meu problema, uma vez que quando tento usar da maneira que preciso (clicando no botao) o navegador ainda insiste em tentar fazer o download como mostrado acima.
Não sei mais o que tentar para resolver o problema , já instalei outras versões do PHP , inclusive a mais recente até o momento(5.3.3), mas não obtive sucesso. Apenas com os arquivos que citei no início e instalando tudo manualmente consegui chegar nesse ponto mas este último problema persiste.


Se alguém puder me ajudar já agradeço antecipadamente.

Att. Dione Carlos
Internet Explorer? Já eliminou o cache?
Uso o firefox, a última versão.

Tipo , a única maneira que funciona é se eu antecipadamente abrir o navegador e digitar "http://localhost/processorder.php", mas dessa maneira, como eu havia mencionado antes no post inicial, ainda não resolve meu problema porque sempre que uma página em html tenta interagir com uma em php ou eu tento ver o resultado da página php por outro método (clicando 2x em cima ou em 'abrir com' ...) o navegador sempre tenta fazer o download ao invés de exibir o que eu esperava.
Opa , limpando o cache resolveu quase que totalmente o que eu queria ! Obrigado!!

A única coisa agora que falta é o seguinte:

Ao invés de abrir o navegador e digitar "http://localhost/orderform.php" e depois clicando no "Submit Order" para abrir "http://localhost/processorder.php", se eu quiser acessar direto da pasta , clicando antes em "orderform.html" (ela abre normalmente) e depois , a partir do que foi aberto acessar a "processorder.php" seria possível ? Se sim , como (tento aqui e o navegador nesse caso específico tenta download)?
Consegui resolver a última dúvida com a observação de uma pessoa de outro fórum, trocando em "orderform.html" a parte <form action="processorder.php" method="post"> por <form action="http://localhost/processorder.php" method="post"> e assim também consiguindo abrir a partir da pasta sem antes ter que abrir o navegador.
Jefrey Sobreira Santos
Re: Navegador tenta fazer o download ao invés de exibir o PHP interpretado
05 de October de 2010 às 09:31PM
É, mas esse erro não é comum. Possivelmente é de compatibilidade.
Eu, particulamente, prefiro usar o WampServer, pois ele já vem com o PHP, o MySQL e o Apache instalados, num só instalador.
Pasta do servidor: C:\wamp\www
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.