Erro de path
Olá,
Estou iniciando meus estudos em PHP/MySQL com o livro PHP e MySQL - Desenvolvimento Web da Ed. Campus e seguindo o passo a passo do capítulo 2 onde é construido um formulário de pedido que após ter o botão Submit clicado chama o processorder.php que deve imprimir uma mensagem com o pedido e propositalmente uma mensagem de erro análoga a que segue:
Warning: fopen("../../orders/orders.txt", a) - Permission denied in /home/book/public_html/chapter2/processorder.php on line 54
Mas ao executar o orderform (http://localhost/chapter02/orderform.html), que chama o processorder.php obtenho outra mensagem de erro que não é a de permissão, mas sim que não encontrou o arquivo no caminho especificado:
Warning: fopen(d:/meus documentos/projetos/php/../orders/orders.txt) [function.fopen]: failed to open stream: No such file or directory in d:\meus documentos\Projetos\php\chapter02\processorder.php on line 63
Warning: flock() expects parameter 1 to be resource, boolean given in d:\meus documentos\Projetos\php\chapter02\processorder.php on line 65
Já criei uma pasta chamada orders dentro do d:\meus documentos\Projetos\php\chapter02\, mas ainda assim não obtive sucesso.
Tenho que mudar alguma coisa na configuração do PHP? Em caso positivo, onde?
Sei que a pergunta deve ser muito elementar, mas leve em consideração que estou dando meus primeiros passos na linguagem.
Desde já agradeço toda ajuda que receber aqui, assim não fico populando o fórum com mensagens de agradecimento, ok?
orderform.htm
>
<html>
<head>
<title>Bob's Auto Parts</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Form</h2>
<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=left><input type="text" name="tireqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>Oil</td>
<td align=left><input type="text" name="oilqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align=left><input type="text" name="sparkqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>Shipping Address</td>
<td align=center><input type="text" name="address" size=40 maxlength=40></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="Submit Order"></td>
</tr>
</table>
</form>
</body>
</html>
processorder.php
>
<?php
//create short variable names
$tireqty = $HTTP_POST_VARS['tireqty'];
$oilqty = $HTTP_POST_VARS['oilqty'];
$sparkqty = $HTTP_POST_VARS['sparkqty'];
$address = $HTTP_POST_VARS['address'];
$DOCUMENT_ROOT = $HTTP_SERVER_VARS['DOCUMENT_ROOT'];
?>
<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Order Results</h2>
<?php
$totalqty = 0;
$totalqty += $tireqty;
$totalqty += $oilqty;
$totalqty += $sparkqty;
$totalamount = 0.00;
define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4);
$date = date('H:i, jS F');
echo '<p>Order processed at ';
echo $date;
echo '<br />';
echo '<p>Your order is as follows:';
echo '<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 />';
}
$total = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;
$total=number_format($total, 2, '.', ' ');
echo '<P>Total of order is '.$total.'</p>';
echo '<P>Address to ship to is '.$address.'<br />';
$outputstring = $date."\t".$tireqty." tires \t".$oilqty." oil\t"
.$sparkqty." spark plugs\t\$".$total
."\t". $address."\n";
// open file for appending
$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", 'a');
flock($fp, LOCK_EX);
if (!$fp)
{
echo '<p><strong> Your order could not be processed at this time. '
.'Please try again later.</strong></p></body></html>';
exit;
}
fwrite($fp, $outputstring);
flock($fp, LOCK_UN);
fclose($fp);
echo '<p>Order written.</p>';
?>
</body>
</html>Discussão (2)
Carregando comentários...