Hola, buenos días
Tengo un problema, pero no sé si es algo de configuración en el archivo php.ini o algún error en mi código. Les explico:
Tengo un sistema, un cotizador, que permite agregar revistas de un catálogo previamente cargado. Las revistas se agregan a un cotizador (como un carrito de compras) y se guarda en dos tablas distintas (mod_cotizador, mod_items). La primera guarda el nombre del cotizador, la fecha, algunos parámetros de monedas y el cliente al que será dirigido. La segunda guarda todos los elementos (revistas) de este cotizador (id de la revista, costo y el id del cotizador padre).
Bueno, el sistema funciona muy bien.
El problema es el siguiente:
Cuando subí esté cotizador a nuestro servidor, con nuestro proveedor de servicios de hosting, el cotizador no registra los datos en la tabla mod_items, no me marca algún error, simplemente no llegan los datos.
Subí el mismo cotizador a otra cuenta que tenemos en ese servidor (es un servidor comprado donde tenemos todas nuestras cuentas) y ahí si funciona bien, como de manera local.
Entonces, se me hace muy raro que en una funcione y en otra no. Mi código es el siguiente:
Código PHP:
if(isset($_POST['cotizar'])){
$param01 = trim(mysqli_real_escape_string($connect, $_POST['nombre']));
$param02 = trim(mysqli_real_escape_string($connect, $_POST['descrip']));
$param05 = trim(mysqli_real_escape_string($connect, $_POST['existentes']));
$param06 = trim(mysqli_real_escape_string($connect, $_POST['tcdolar']));
$param07 = trim(mysqli_real_escape_string($connect, $_POST['tceuro']));
$param08 = trim(mysqli_real_escape_string($connect, $_POST['iva']));
$param09 = trim(mysqli_real_escape_string($connect, $_POST['descuento']));
$param10 = trim(mysqli_real_escape_string($connect, $_POST['dias']));
$param11 = $_POST['id'];
$param12 = count($param11) + 1;
$param13 = date("Y-m-d H:i:s");
$param14 = trim(mysqli_real_escape_string($connect, $_POST['user']));
$param15 = $_POST['costo'];
$cotizador = $param01;
$sqlInsertCotizador = mysqli_query($connect, "Insert into mod_cotizador(cot_nombre, cot_descripcion, cot_cliente, cot_tc_dolares, cot_tc_euros, cot_iva, cot_descuento, cot_vigencia, cot_fecha_creacion, cot_fecha_modificacion, cot_user) values('" . $cotizador . "', '" . $param02 . "', '" . $param05 . "', '" . $param06 . "', '" . $param07 . "', '" . $param08 . "', '" . $param09 . "', '" . $param10 . "', '" . $param13 . "', '" . $param13 . "', '" . $param14 . "')");
$sqlSelectCotizador = mysqli_query($connect, "Select id_cotizador from mod_cotizador Where cot_nombre ='" . $cotizador . "'");
$rowSelectCotizador = mysqli_fetch_assoc($sqlSelectCotizador);
$id = $rowSelectCotizador['id_cotizador'];
for($i=0; $i<=$param12; $i++){
if(!empty($param11[$i]) or $param11[$i] > 0){
$array = array( articulo => $param11[$i], costo => $param15[$i]);
$sqlInsertItems = mysqli_query($connect, "Insert into mod_items(item_id_cotizador, item_id_articulo, item_costo) values(" . $id . ", '" . $array['articulo'] . "', '" . $array['costo'] . "')");
}
}
}
Este es mi formulario:
Código HTML:
Ver original <form action="" method="post"> <div id="cotizador-left"> <input type="text" name="nombre" id="nombre" class="input-type-c" placeholder="Nombre del cotizador" value="<?php echo $row02; ?>" />
<label class="label-cotizador">Descripción del cotizador
</label> <textarea name="descrip" class="textarea-type-b"><?php echo $row03; ?></textarea> <select name="existentes" class="input-type-c"> <?php while($rowSelectClientes = mysqli_fetch_assoc($sqlSelectClientes)){ ?>
<option value="<?php echo $rowSelectClientes['id_cliente']; ?>">
<?php echo $rowSelectClientes['cli_cliente']; ?></option> <?php } ?>
<label class="label-cotizador">Tipos de cambio
</label> <input type="text" name="tcdolar" id="tcdolar" class="input-type-c" placeholder="En dólares" value="<?php echo $row05; ?>" />
<input type="text" name="tceuro" id="tceuro" class="input-type-c" placeholder="En euros" value="<?php echo $row06; ?>" />
<input type="text" name="descuento" id="descuento" class="input-type-c" placeholder="Descuento (%) " value="<?php echo $row08; ?>" />
<input type="checkbox" name="iva" id="iva" value="1.16" <?php if($row07 == 1){ echo "checked"; } else { echo ""; } ?> />
<label class="label-cotizador">¿Calcular con IVA?
</label> <input type="text" name="dias" id="dias" class="input-type-c" placeholder="Vigencia (No. de días)" value="<?php echo $row09; ?>" />
<input type="hidden" name="user" id="user" class="input-type-c" value="<?php echo $_SESSION['id']; ?>" >
<div id="cotizador-right"> <label class="foot-cotizar">Antes de cotizar por favor selecciona las revistas que se incluirán en la cotización.
</label> <input type="submit" name="cotizar" id="cotizar" class="submit-type-a" value="Cotizar"> Creado el: <?php echo $row10; ?>
Debo señalar, que cuando se agregan las revistas al cotizador es por medio de una instrucción de javascript al div <div id="items"></div>
Código Javascript
:
Ver original$(".check").click(function(e) {
var id = $(this).val();
var serie = $(this).attr("data-serie");
var item = $(this).attr("data-item");
var costo = $(this).attr("data-costo");
var total = 0;
$("#items").append('<input type="button" class="after after' + id + '" data-id="' + id + '" value="x" onClick="remover(' + id + ');"> <input type="hidden" name="id[' + serie + ']" value="' + id + '" class="idevent' + id + '"> <input type="text" name="art[' + serie + ']" value="' + item + '" class="hidden-box valevent' + id + '" data-id="' + id + '"> <input type="hidden" name="costo[' + serie + ']" value="' + costo + '" class="hidden-box cosevent' + id + '" data-id="' + id + '"><br />');
});
Como les comenté anteriormente, de manera local y en una cuenta del servidor funciona bien, pero en la cuenta donde va a residir no funciona.
No sé si les haya pasado algo similar, por ello mi pregunta aquí en el foro.
De antemano les agradezco por su tiempo.
Saludos!!