我是跟着教程在学PHP, 现在刚开始就遇到问题了! 我是单机用APMSV建的环境.<?
echo '<p>order processed at ';echo date('H:i,jS F'); echo'<p>' ;$tireqty=$_POST['tireqty'] ;
$oilqty=$_POST['oilqty'];
$spqty=$_POST['spqty'];
$find=$_POST['find'];
$address=$_POST['address'];
$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
echo '<p>Your Order is as Follow:</p>';
echo $tireqty.'个 物品1<br/>';
echo $oilqty.'个 物品2<br/>';
echo $spqty.'个 物品3</br>'; $totalqty=0;
$totalamount=(float)$totalqty;define ('tireprice',100);
define ('oilprice',10);
define ('spprice',4);$totalqty=$tireqty+$oilqty+$spqty ;
$totalamount= $tireqty * tireprice + $oilqty * oilprice + $spqty * spprice ;echo '这一共有:'.$totalqty; echo ' 件被订购的物品<br/>';
echo '价格总计 $:'.number_format($totalamount,2).'<br/>' ;$texrate=0.10; //假设本地税率为10%
$totalamount=$totalamount * (1+$texrate);
echo '<h2>含税总计: $</h2>'.number_format($totalamount,2).'<br/>' ;
//echo 'isset($tireqty):'.isset($tireqty).'<br />';
//echo 'isset($nothere):'.isset($nothere).'<br />';
//echo 'empty($tireqty):'.empty($tireqty).'<br />';
//echo 'empty($nothere):'.empty($nothere).'<br />';if($find=='a')
echo '<p>客糊来源渠道: 直接访问的客户.</p>';
elseif ($find=='b')
echo '<p>客糊来源渠道: 通过电视广告访问的客户.</p>';
elseif ($find=='c')
echo '<p>客糊来源渠道: 通过网络广告访问的客户.</p>';
elseif ($find=='d')
echo '<p>客糊来源渠道: 通过百度搜索引擎访问的客户.</p>';
else
echo '<p>未统计的客户来源</p>';
switch ($find)
{
case 'a' :
echo '<p>客糊来源渠道: 直接访问的客户.</p>';
break ;case 'b':
echo '<p>客糊来源渠道: 通过电视广告访问的客户.</p>';
break ;case 'c':
echo '<p>客糊来源渠道: 通过网络广告访问的客户.</p>';
break;case 'd':
echo '<p>客糊来源渠道: 通过百度搜索引擎访问的客户.</p>';
break;default;
echo '<p>未统计的客户来源</p>';
break;
}echo '<p>该用户的收货地址为: '.$address.'</p>';$outputstring = $date."\t".$tireqty." tires \t".$oilqty. "oil\t"
.$spqty. "spark plugs\t\$" .$totalamount ."\t" .$address."\n";
$fp=fopen(" $DOCUMENT_ROOT/orders/orders.txt ",'ab');if (!fp) {echo '<p><strong>现在我们暂时无法处理您的定单,请稍后再试</strong></p></body></html>';exit;
}
fwrite ($fp,$outputstring,strlen($outputstring));
fclose ($fp);echo'<p> 提交定单成功 </p>';?>处理时 页面就会出错!错误为下:含税总计: $
349.80客糊来源渠道: 直接访问的客户.客糊来源渠道: 直接访问的客户.该用户的收货地址为: 到底是怎么搞的啊
Warning: fopen( E:/APMServ5.2.6/www/htdocs/orders/orders.txt ) [function.fopen]: failed to open stream: Invalid argument in E:\APMServ5.2.6\www\htdocs\chuli.php on line 77Warning: fwrite(): supplied argument is not a valid stream resource in E:\APMServ5.2.6\www\htdocs\chuli.php on line 87Warning: fclose(): supplied argument is not a valid stream resource in E:\APMServ5.2.6\www\htdocs\chuli.php on line 88提交定单成功
echo '<p>order processed at ';echo date('H:i,jS F'); echo'<p>' ;$tireqty=$_POST['tireqty'] ;
$oilqty=$_POST['oilqty'];
$spqty=$_POST['spqty'];
$find=$_POST['find'];
$address=$_POST['address'];
$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
echo '<p>Your Order is as Follow:</p>';
echo $tireqty.'个 物品1<br/>';
echo $oilqty.'个 物品2<br/>';
echo $spqty.'个 物品3</br>'; $totalqty=0;
$totalamount=(float)$totalqty;define ('tireprice',100);
define ('oilprice',10);
define ('spprice',4);$totalqty=$tireqty+$oilqty+$spqty ;
$totalamount= $tireqty * tireprice + $oilqty * oilprice + $spqty * spprice ;echo '这一共有:'.$totalqty; echo ' 件被订购的物品<br/>';
echo '价格总计 $:'.number_format($totalamount,2).'<br/>' ;$texrate=0.10; //假设本地税率为10%
$totalamount=$totalamount * (1+$texrate);
echo '<h2>含税总计: $</h2>'.number_format($totalamount,2).'<br/>' ;
//echo 'isset($tireqty):'.isset($tireqty).'<br />';
//echo 'isset($nothere):'.isset($nothere).'<br />';
//echo 'empty($tireqty):'.empty($tireqty).'<br />';
//echo 'empty($nothere):'.empty($nothere).'<br />';if($find=='a')
echo '<p>客糊来源渠道: 直接访问的客户.</p>';
elseif ($find=='b')
echo '<p>客糊来源渠道: 通过电视广告访问的客户.</p>';
elseif ($find=='c')
echo '<p>客糊来源渠道: 通过网络广告访问的客户.</p>';
elseif ($find=='d')
echo '<p>客糊来源渠道: 通过百度搜索引擎访问的客户.</p>';
else
echo '<p>未统计的客户来源</p>';
switch ($find)
{
case 'a' :
echo '<p>客糊来源渠道: 直接访问的客户.</p>';
break ;case 'b':
echo '<p>客糊来源渠道: 通过电视广告访问的客户.</p>';
break ;case 'c':
echo '<p>客糊来源渠道: 通过网络广告访问的客户.</p>';
break;case 'd':
echo '<p>客糊来源渠道: 通过百度搜索引擎访问的客户.</p>';
break;default;
echo '<p>未统计的客户来源</p>';
break;
}echo '<p>该用户的收货地址为: '.$address.'</p>';$outputstring = $date."\t".$tireqty." tires \t".$oilqty. "oil\t"
.$spqty. "spark plugs\t\$" .$totalamount ."\t" .$address."\n";
$fp=fopen(" $DOCUMENT_ROOT/orders/orders.txt ",'ab');if (!fp) {echo '<p><strong>现在我们暂时无法处理您的定单,请稍后再试</strong></p></body></html>';exit;
}
fwrite ($fp,$outputstring,strlen($outputstring));
fclose ($fp);echo'<p> 提交定单成功 </p>';?>处理时 页面就会出错!错误为下:含税总计: $
349.80客糊来源渠道: 直接访问的客户.客糊来源渠道: 直接访问的客户.该用户的收货地址为: 到底是怎么搞的啊
Warning: fopen( E:/APMServ5.2.6/www/htdocs/orders/orders.txt ) [function.fopen]: failed to open stream: Invalid argument in E:\APMServ5.2.6\www\htdocs\chuli.php on line 77Warning: fwrite(): supplied argument is not a valid stream resource in E:\APMServ5.2.6\www\htdocs\chuli.php on line 87Warning: fclose(): supplied argument is not a valid stream resource in E:\APMServ5.2.6\www\htdocs\chuli.php on line 88提交定单成功
var_dump(is_file('E:/APMServ5.2.6/www/htdocs/orders/orders.txt'));
先确定是否有此文件
注意引号里的文件名不要有空格
改成:
$fp=fopen("$DOCUMENT_ROOT/orders/orders.txt",'ab');
这个是没影响的. 我去掉了还是这个问题! 是没有ORDERS.TXT这文件. 可是我基本是按教程里的一步一步弄的, 为什么就不能写入文件!
echo '<p>order processed at ';echo date('H:i,jS F'); echo'<p>' ;
$tireqty=$_POST['tireqty'] ;
$oilqty=$_POST['oilqty'];
$spqty=$_POST['spqty'];
$find=$_POST['find'];
$address=$_POST['address'];
$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];
echo '<p>Your Order is as Follow:</p>';
echo $tireqty.'个 物品1<br/>';
echo $oilqty.'个 物品2<br/>';
echo $spqty.'个 物品3</br>';$totalqty=0;
$totalamount=(float)$totalqty;define ('tireprice',100);
define ('oilprice',10);
define ('spprice',4);$totalqty=$tireqty+$oilqty+$spqty ;
$totalamount= $tireqty * tireprice + $oilqty * oilprice + $spqty * spprice ;echo '这一共有:'.$totalqty; echo ' 件被订购的物品<br/>';
echo '价格总计 $:'.number_format($totalamount,2).'<br/>' ;$texrate=0.10; //假设本地税率为10%
$totalamount=$totalamount * (1+$texrate);
echo '<h2>含税总计: $</h2>'.number_format($totalamount,2).'<br/>' ;
//echo 'isset($tireqty):'.isset($tireqty).'<br />';
//echo 'isset($nothere):'.isset($nothere).'<br />';
//echo 'empty($tireqty):'.empty($tireqty).'<br />';
//echo 'empty($nothere):'.empty($nothere).'<br />';if($find=='a')
echo '<p>客糊来源渠道: 直接访问的客户.</p>';
elseif ($find=='b')
echo '<p>客糊来源渠道: 通过电视广告访问的客户.</p>';
elseif ($find=='c')
echo '<p>客糊来源渠道: 通过网络广告访问的客户.</p>';
elseif ($find=='d')
echo '<p>客糊来源渠道: 通过百度搜索引擎访问的客户.</p>';
else
echo '<p>未统计的客户来源</p>';switch ($find){
case 'a' :
echo '<p>客糊来源渠道: 直接访问的客户.</p>';
break ; case 'b':
echo '<p>客糊来源渠道: 通过电视广告访问的客户.</p>';
break ; case 'c':
echo '<p>客糊来源渠道: 通过网络广告访问的客户.</p>';
break; case 'd':
echo '<p>客糊来源渠道: 通过百度搜索引擎访问的客户.</p>';
break; default:
echo '<p>未统计的客户来源</p>';
break;
}
echo '<p>该用户的收货地址为: '.$address.'</p>';
$outputstring = $date."\t".$tireqty." tires \t".$oilqty. "oil\t"
.$spqty. "spark plugs\t\$" .$totalamount ."\t" .$address."\n";
//这句要改
$fp=fopen("$DOCUMENT_ROOT/orders/orders.txt","a");if (!fp){
echo '<p><strong>现在我们暂时无法处理您的定单,请稍后再试</strong></p></body></html>';
exit;
}
fwrite ($fp,$outputstring,strlen($outputstring));
fclose ($fp);echo'<p> 提交定单成功 </p>';
?>
会报楼主的错误,而
fopen('d:/abcdefasef.txt', 'ab');
却是没事的,楼主你再看看吧,就是这个空格的问题
错误变了!Warning: fopen(E:/APMServ5.2.6/www/htdocs/orders/orders.txt) [function.fopen]: failed to open stream: No such file or directory in E:\APMServ5.2.6\www\htdocs\chuli.php on line 77
加上后还是这样Warning: fopen(E:/APMServ5.2.6/www/htdocs/orders/orders.txt) [function.fopen]: failed to open stream: No such file or directory in E:\APMServ5.2.6\www\htdocs\chuli.php on line 76Warning: fwrite(): supplied argument is not a valid stream resource in E:\APMServ5.2.6\www\htdocs\chuli.php on line 86Warning: fclose(): supplied argument is not a valid stream resource in E:\APMServ5.2.6\www\htdocs\chuli.php on line 87提交定单成功
你的意思对的, 路径我换了下 已经好了! 谢谢你!
if(!is_dir('./orders')) mkdir('./orders', 0777, true);
这样目录有权限了, 文件也写入了!
楼主要从开始就抓代码规范与可读性问题,以避免过后的习惯不好:
echo '<p>order processed at ';
echo date('H:i,jS F');
echo'<p>';$tireqty = isset($_POST['tireqty'])? $_POST['tireqty']: '';
$oilqty = isset($_POST['oilqty'])? $_POST['oilqty']: '';
$spqty = isset($_POST['spqty'])? $_POST['spqty']: '';
$find = isset($_POST['find'])? $_POST['find']: '';
$address = isset($_POST['address'])? $_POST['address']: '';$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
echo '<p>Your Order is as Follow:</p>';
echo $tireqty.'个物品1<br/>';
echo $oilqty.'个物品2<br/>';
echo $spqty.'个物品3</br>'; $totalqty = 0;
$totalamount = floatval($totalqty);define ('tireprice', 100);
define ('oilprice', 10);
define ('spprice', 4);$totalqty = $tireqty + $oilqty + $spqty ;
$totalamount = $tireqty * tireprice + $oilqty * oilprice + $spqty * spprice;echo '这一共有:'.$totalqty;
echo ' 件被订购的物品<br/>';
echo '价格总计 $:'.number_format($totalamount, 2).'<br/>' ;$texrate = 0.10; //假设本地税率为10%
$totalamount = $totalamount * (1 + $texrate);
echo '<h2>含税总计: $</h2>'.number_format($totalamount, 2).'<br/>';
//echo 'isset($tireqty):'.isset($tireqty).'<br />';
//echo 'isset($nothere):'.isset($nothere).'<br />';
//echo 'empty($tireqty):'.empty($tireqty).'<br />';
//echo 'empty($nothere):'.empty($nothere).'<br />';if($find == 'a')
echo '<p>客糊来源渠道: 直接访问的客户.</p>';
elseif ($find == 'b')
echo '<p>客糊来源渠道: 通过电视广告访问的客户.</p>';
elseif ($find == 'c')
echo '<p>客糊来源渠道: 通过网络广告访问的客户.</p>';
elseif ($find == 'd')
echo '<p>客糊来源渠道: 通过百度搜索引擎访问的客户.</p>';
else
echo '<p>未统计的客户来源</p>';
switch ($find){ case 'a' :
echo '<p>客糊来源渠道: 直接访问的客户.</p>';
break ; case 'b':
echo '<p>客糊来源渠道: 通过电视广告访问的客户.</p>';
break ; case 'c':
echo '<p>客糊来源渠道: 通过网络广告访问的客户.</p>';
break; case 'd':
echo '<p>客糊来源渠道: 通过百度搜索引擎访问的客户.</p>';
break; default;
echo '<p>未统计的客户来源</p>';
break;
}echo '<p>该用户的收货地址为: '.$address.'</p>';
$date = date('Y-m-d H:i:s', time());
$outputstring = $date."\t".$tireqty." tires \t".$oilqty. "oil\t".$spqty. "spark plugs\t\$" .$totalamount ."\t" .$address."\n";
if(!is_dir("$DOCUMENT_ROOT/orders"))@mkdir("$DOCUMENT_ROOT/orders", 0777, true);
$fp = fopen("$DOCUMENT_ROOT/orders/orders.txt",'ab');if (!$fp){
echo '<p><strong>现在我们暂时无法处理您的定单,请稍后再试</strong></p></body></html>';exit;
}
fwrite($fp, $outputstring, strlen($outputstring));
fclose($fp);echo'<p> 提交定单成功 </p>';