IM no sé si esto está relacionado con el cambio de webhosts a PHP 5.3 demasiado pero hay una sola otra área de repente está causando un problema, aunque estaba bien durante 4 años hasta hace poco y no hacer con formato de fecha esta vez. Esto es...
El mensaje de error es...
Advertencia: extract() espera parámetro 1 a ser matriz booleana dada.../httpdocs/admin/product/modify.php on line 20
Notice: Undefined variable: cat_id en.../httpdocs/admin/product/modify.php en línea 52
y el código parece referirse en el archivo modify.php....
<?php
if (!defined('WEB_ROOT')) {
exit;
}
// make sure a product id exists
if (isset($_GET['productId']) && $_GET['productId'] > 0) {
$productId = $_GET['productId'];
} else {
// redirect to index.php if product id is not present
header('Location: index.php');
}
// get product info
$sql = "SELECT *
FROM tbl_product pd, tbl_category cat
WHERE pd.pd_id = $productId AND pd.cat_id = cat.cat_id";
$result = mysql_query($sql) or die('Cannot get product. ' . mysql_error());
$row = mysql_fetch_assoc($result);
extract($row);
// get category list
$sql = "SELECT cat_id, cat_parent_id, cat_name
FROM tbl_category
ORDER BY cat_id";
$result = dbQuery($sql) or die('Cannot get Product. ' . mysql_error());
$categories = array();
while($row = dbFetchArray($result)) {
list($id, $parentId, $name) = $row;
if ($parentId == 0) {
$categories[$id] = array('name' => $name, 'children' => array());
} else {
$categories[$parentId]['children'][] = array('id' => $id, 'name' => $name);
}
}
//echo '<pre>'; print_r($categories); echo '</pre>'; exit;
// build combo box options
$list = '';
foreach ($categories as $key => $value) {
$name = $value['name'];
$children = $value['children'];
$list .= "<optgroup label=\"$name\">";
foreach ($children as $child) {
$list .= "<option value=\"{$child['id']}\"";
if ($child['id'] == $cat_id) {
$list .= " selected";
}
$list .= ">{$child['name']}</option>";
}
$list .= "</optgroup>";
}
?>
<form action="processProduct.php?action=modifyProduct&productId=<?php echo $productId; ?>" method="post" enctype="multipart/form-data" name="frmAddProduct" id="frmAddProduct">
<p align="center" class="formTitle">Modify Product</p>
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="1" class="entryTable">
<tr>
<td width="150" class="label">Category</td>
<td class="content"> <select name="cboCategory" id="cboCategory" class="box">
<option value="" selected>-- Choose Category --</option>
<?php
echo $list;
?>
- <?php
- if (!defined('WEB_ROOT')) {
- exit;
- }
- // make sure a product id exists
- if (isset($_GET['productId']) && $_GET['productId'] > 0) {
- $productId = $_GET['productId'];
- } else {
- // redirect to index.php if product id is not present
- header('Location: index.php');
- }
- // get product info
- $sql = "SELECT *
- FROM tbl_product pd, tbl_category cat
- WHERE pd.pd_id = $productId AND pd.cat_id = cat.cat_id";
- $result = mysql_query($sql) or die('Cannot get product. ' . mysql_error());
- $row = mysql_fetch_assoc($result);
- extract($row);
- // get category list
- $sql = "SELECT cat_id, cat_parent_id, cat_name
- FROM tbl_category
- ORDER BY cat_id";
- $result = dbQuery($sql) or die('Cannot get Product. ' . mysql_error());
- $categories = array();
- while($row = dbFetchArray($result)) {
- list($id, $parentId, $name) = $row;
-
- if ($parentId == 0) {
- $categories[$id] = array('name' => $name, 'children' => array());
- } else {
- $categories[$parentId]['children'][] = array('id' => $id, 'name' => $name);
- }
- }
- //echo '<pre>'; print_r($categories); echo '</pre>'; exit;
- // build combo box options
- $list = '';
- foreach ($categories as $key => $value) {
- $name = $value['name'];
- $children = $value['children'];
-
- $list .= "<optgroup label=\"$name\">";
-
- foreach ($children as $child) {
- $list .= "<option value=\"{$child['id']}\"";
-
- if ($child['id'] == $cat_id) {
- $list .= " selected";
- }
- $list .= ">{$child['name']}</option>";
- }
-
- $list .= "</optgroup>";
- }
- ?>
- <form action="processProduct.php?action=modifyProduct&productId=<?php echo $productId; ?>" method="post" enctype="multipart/form-data" name="frmAddProduct" id="frmAddProduct">
- <p align="center" class="formTitle">Modify Product</p>
-
- <table width="100%" border="0" align="center" cellpadding="5" cellspacing="1" class="entryTable">
- <tr>
- <td width="150" class="label">Category</td>
- <td class="content"> <select name="cboCategory" id="cboCategory" class="box">
- <option value="" selected>-- Choose Category --</option>
- <?php
- echo $list;
- ?>
Hay un poco más código en la página, pero he copiado forma pasado línea 52, esperanza lo que hará.
Una vez más, no sé nada acerca de arreglos de discos o variables, Im miedo.
El efecto de ese problema es que si abre el administrador de sitios, habiendo dejado conectado, utilizado para mostrar la última página admin era, mostrando una lista de categorías o elementos etc., ahora da esto...

Todavía funciona, sólo tengo que elegir la sección en el menú, pero como digo, que no solía mostrar estos errores, muestra correctamente la última página en que estaba.
Si Ive cierre la sesión e inicie la sesión desde cero no tengo esa página revuelto ya que me lleva automáticamente a la página de inicio de administración cuando recién iniciado en su única cuando volver después de cerrar la página pero todavía conectado.
No es un problema enorme, su solo irritante y yo no sé por qué de repente cambió cuando estaba bien desde hace años y creo que no he cambiado nada en ese archivo en absoluto.
Atentamente,
Cerio