Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in **************** on line 11这个是个购物车,当我第一次进来的时候会报个错。查了一下是是数组元素重复定义了。
但是我又知道该怎么改,麻烦大家看一下。<?php
include_once('public.inc.php');
include_once('checkuser.php');
if(isset($_POST['submitCheck']) && $_POST['submitCheck']=='ok'){
$productClassId = $db->GetClassId(PRODUCTS);
$_amout = $_totalprice = 0;
if (is_array($_POST['amounts'])) {
$_SESSION['orderlines'] = $_orderlines = array();
foreach ($_POST['amounts'] as $cp_id => $amount) {
if (0 == $amount) continue;
$cp = $db->GetOne("SELECT * FROM #@__act WHERE PID IN($productClassId) AND #@__act.id='$cp_id'");
if ($cp) {
$totalprice = $cp['price'] * $amount;
$_SESSION['orderlines'][$cp['id']] = array(
'cp_id' => $cp['id'],
'cpname' => $cp['title'],
'cpimg' => $cp['img'],
'price' => $cp['price'],
'amount' => $amount
);
$_orderlines[$cp['id']] = array(
'cp_id' => $cp['id'],
'cpname' => $cp['title'],
'cpimg' => $cp['img'],
'price' => $cp['price'],
'amount' => $amount,
'totalprice' => $totalprice
);
$_totalprice += $totalprice;
$_amout += $amount;
}
}
} else {
header('Location: shoppingCart.php');
exit();
}
if($_SESSION['dd_ckstr'] == $_POST['checkCode']){
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
foreach(array('name', 'telephone', 'address', 'email', 'content') as $key){
$_POST[$key] = htmlentities($_POST[$key], ENT_QUOTES, 'utf-8');
}
$result = $db->ExecuteNoneQuery("INSERT INTO #@__order (`NAME`,`TEL`,`ADD`,`EMAIL`,`NOTES`,`TIME`, `totalprice`,`huiyuan`) values ('$_POST[name]','$_POST[telephone]','$_POST[address]','$_POST[email]','$_POST[content]',NOW(), '$_totalprice', '$_SESSION[account]')");
if($result){
$oid = $db->GetLastID();
foreach ($_orderlines as $cp_id => $ol) {
$db->ExecuteNoneQuery("INSERT INTO #@__orderline (`orderid`,`cp_id`,`price`,`amount`,`totalprice`,`time`) values ('$oid','$cp_id','$ol[price]','$ol[amount]','$ol[totalprice]',NOW())");
}
$_SESSION['orderlines'] = array();
echo "<script>alert('订单提交成功!感谢您的我们产品的信赖!');location.href='order.php';</script>";
}else{
echo "<script>alert('对不起,订单提交失败!请联系管理人员!');location.href='order.php';</script>";
}
}else{
echo "<script>alert('对不起,验证码错误');window.location='order.php';</script>";
}
}
//print_r($_SESSION['account']);
$qf->assign('orderlines', $_SESSION['orderlines']);
$qf->display('order.htm');
?>
但是我又知道该怎么改,麻烦大家看一下。<?php
include_once('public.inc.php');
include_once('checkuser.php');
if(isset($_POST['submitCheck']) && $_POST['submitCheck']=='ok'){
$productClassId = $db->GetClassId(PRODUCTS);
$_amout = $_totalprice = 0;
if (is_array($_POST['amounts'])) {
$_SESSION['orderlines'] = $_orderlines = array();
foreach ($_POST['amounts'] as $cp_id => $amount) {
if (0 == $amount) continue;
$cp = $db->GetOne("SELECT * FROM #@__act WHERE PID IN($productClassId) AND #@__act.id='$cp_id'");
if ($cp) {
$totalprice = $cp['price'] * $amount;
$_SESSION['orderlines'][$cp['id']] = array(
'cp_id' => $cp['id'],
'cpname' => $cp['title'],
'cpimg' => $cp['img'],
'price' => $cp['price'],
'amount' => $amount
);
$_orderlines[$cp['id']] = array(
'cp_id' => $cp['id'],
'cpname' => $cp['title'],
'cpimg' => $cp['img'],
'price' => $cp['price'],
'amount' => $amount,
'totalprice' => $totalprice
);
$_totalprice += $totalprice;
$_amout += $amount;
}
}
} else {
header('Location: shoppingCart.php');
exit();
}
if($_SESSION['dd_ckstr'] == $_POST['checkCode']){
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
foreach(array('name', 'telephone', 'address', 'email', 'content') as $key){
$_POST[$key] = htmlentities($_POST[$key], ENT_QUOTES, 'utf-8');
}
$result = $db->ExecuteNoneQuery("INSERT INTO #@__order (`NAME`,`TEL`,`ADD`,`EMAIL`,`NOTES`,`TIME`, `totalprice`,`huiyuan`) values ('$_POST[name]','$_POST[telephone]','$_POST[address]','$_POST[email]','$_POST[content]',NOW(), '$_totalprice', '$_SESSION[account]')");
if($result){
$oid = $db->GetLastID();
foreach ($_orderlines as $cp_id => $ol) {
$db->ExecuteNoneQuery("INSERT INTO #@__orderline (`orderid`,`cp_id`,`price`,`amount`,`totalprice`,`time`) values ('$oid','$cp_id','$ol[price]','$ol[amount]','$ol[totalprice]',NOW())");
}
$_SESSION['orderlines'] = array();
echo "<script>alert('订单提交成功!感谢您的我们产品的信赖!');location.href='order.php';</script>";
}else{
echo "<script>alert('对不起,订单提交失败!请联系管理人员!');location.href='order.php';</script>";
}
}else{
echo "<script>alert('对不起,验证码错误');window.location='order.php';</script>";
}
}
//print_r($_SESSION['account']);
$qf->assign('orderlines', $_SESSION['orderlines']);
$qf->display('order.htm');
?>
解决方案 »
- 正则过滤全角空格
- 如何从url中获取一个网址,然后跳转到这个网址去
- php 读取一个csv数据 再查看另一个csv中是否存在此商品编号,不存在插入 2个csv中列名不一样 应该怎么处理?
- php在设置cookies时怎么才能设置多个值
- 哪位能够详解一下获得客户端ip地址的经典办法?
- 急!apache与php关联配置!查过百度大神 但无用
- 一个不太好意思问的问题。。。
- 求用PHP写的手机号码地区查询程序的代码!
- 苦恼:如何实现不新开浏览器而向服务器提交一段脚本去执行一段代码?
- 今天我在北京找了一个php工作,800,为公司做一商业程序……。
- 请教
- (留言板问题)面试要我用PHP写个留言板,下面写的无法运行,最后一行错误,有谁帮我改下或帮我写个可以运行的留言板,谢谢。
include_once('public.inc.php');
include_once('checkuser.php');
$action = isset($_GET['action']) ? strtolower($_GET['action']) : '';
$productClassId = $db->GetClassId(PRODUCTS);
if ('add' == $action) {
$cp_id = isset($_GET['cpid']) ? (int)$_GET['cpid'] : NULL;
if ($cp_id) {
if (array_key_exists($cp_id, $_SESSION['orderlines'])) {
$_SESSION['orderlines'][$cp_id]['amount'] += 1;
} else {
$cp = $db->GetOne("SELECT * FROM #@__act WHERE PID IN($productClassId) AND #@__act.id='$cp_id'");
if ($cp) {
$_SESSION['orderlines'][$cp['id']] = array(
'cp_id' => $cp['id'],
'cpname' => $cp['title'],
'cpimg' => $cp['img'],
'price' => $cp['price'],
'amount' => 1
);
}
}
}
} else if ('del' == $action) {
$cp_id = isset($_GET['cpid']) ? (int)$_GET['cpid'] : NULL;
if ($cp_id && array_key_exists($cp_id, $_SESSION['orderlines'])) {
unset($_SESSION['orderlines'][$cp_id]);
}
} else if ('empty' == $action) {
$_SESSION['orderlines'] = array();
}
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (is_array($_POST['amounts'])) {
$_SESSION['orderlines'] = array();
foreach ($_POST['amounts'] as $cp_id => $amount) {
if (0 == $amount) continue;
$cp = $db->GetOne("SELECT * FROM #@__act WHERE PID IN($productClassId) AND #@__act.id='$cp_id'");
if ($cp) {
$_SESSION['orderlines'][$cp['id']] = array(
'cp_id' => $cp['id'],
'cpname' => $cp['title'],
'cpimg' => $cp['img'],
'price' => $cp['price'],
'amount' => $amount
);
}
}
}
if ('ajaxupdate' == $action) {
@header("content-Type: text/plain; charset=UTF-8");
@header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
@header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
echo 'SUCCESS';
exit();
}
if ('Checkout' == $_POST['submit']) {
header("Location: order.php");
} else {
header("Location: shoppingCart.php");
}
exit();
}
$qf->assign('orderlines', $_SESSION['orderlines']);
$qf->display('shoppingCart.htm');
?>
虽然已经解决了,就是唠叨说的,$_SESSION['orderlines'] 不是数组。膜拜,唠叨大神果然不是盖得!!!