Este problema viene de antiguo ya qque antes tenia instalado el Virtuemart 2-0-4 y no me dejaba hacer pedidos con más de 11 lineas, ahora despues de la actualizacion a Virtuemart 2.0.6 las lineas máximas de los pedidos permitidos son unos 16/15 , depende.
El problema es que sin avisar validas y te desaparece todo el pedido , no da ningun error y no queda guardado.
Necesitaria una solcuion urgente dado que como la web tiene productos de poco valor los pedidos muchas veces son de muchas lineas.
Por cierto esta web esta pensada para que solo los clientes que el cliente quiere y da de alta el , son los que pueden hacer pedidos , en realidad esta pensada para recoger pedidos de clientes, por eso el usuario normal no podra entrar.
URL del sitio: http://factoryc-cp52.webjoomla.es/index.php/es/
Hola Tina, he estado revisando y no veo que haya ningún límite en el número de líneas de pedido, suena a que hay un error de PHP que hace que se vacíe el carrito...
Mírate este vídeo y obten los errores de tu web:
https://www.webempresa.com/blog/que-es-un-error-500-y-como-localizarlo-en-nuestra-web.html
Envíanoslos si no sabes como solucionarlo y te ayudamos.
Hola David
He localizado como me dices dos ficheros error_log , uno en la carpeta de administrator el cual me repite estas lineas continuamente
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/session/session.php on line 96
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/session/session.php on line 99
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/session/session.php on line 742
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 777
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 796
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 777
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 796
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 777
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 796
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 777
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 796
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 777
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 796
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 777
[03-Jun-2012 10:14:36 UTC] PHP Warning: ini_set() has been disabled for security reasons in /home/factoryc/public_html/libraries/joomla/language/language.php on line 796
He localizado y abierto los archivos :
El primero sesion.php , en las lineas que indica error pone esto
(Linea 87) public function __construct($store = 'none', $options = array())
{
// Need to destroy any existing sessions started with session.auto_start
if (session_id()) {
session_unset();
session_destroy();
}
(Linea 95) // set default sessios save handler
ini_set('session.save_handler', 'files');
// disable transparent sid support
ini_set('session.use_trans_sid', '0');
// create handler
$this->_store = JSessionStorage::getInstance($store, $options);
// set options
$this->_setOptions($options);
$this->_setCookieParams();
// load the session
$this->_start();
// initialise the session
$this->_setCounter();
$this->_setTimers();
$this->_state = 'active';
// perform security checks
$this->_validate();
(Linea 120) }
Yo siceramente no se tanto de PHP , como para poder saber que esta mal , asiq ue me tendras que ayudar. Por cierto si neceitas los ficheros me lo dices y te los adjunto.
Archivo session.php
Error linea 742
Codigo :
( Linea 715 )protected function _setOptions(&$options)
{
// Set name
if (isset($options['name'])) {
session_name(md5($options['name']));
}
// Set id
if (isset($options['id'])) {
session_id($options['id']);
}
// Set expire time
if (isset($options['expire'])) {
$this->_expire = $options['expire'];
}
// Get security options
if (isset($options['security'])) {
$this->_security = explode(',', $options['security']);
}
if (isset($options['force_ssl'])) {
$this->_force_ssl = (bool) $options['force_ssl'];
}
// Sync the session maxlifetime
(Linea 742) ini_set('session.gc_maxlifetime', $this->_expire);
return true;
(Linea 745)}
Archivo Language.php
Errores en lineas 777 y 796
Linea 761/**
* Parses a language file.
*
* @param string $filename The name of the file.
*
* @return array The array of parsed strings.
*
* @since 11.1
*/
protected function parse($filename)
{
$version = phpversion();
// Capture hidden PHP errors from the parsing.
$php_errormsg = null;
$track_errors = ini_get('track_errors');
Linea777 ini_set('track_errors', true);
if ($version >= '5.3.1') {
$contents = file_get_contents($filename);
$contents = str_replace('_QQ_', '"""', $contents);
$strings = @parse_ini_string($contents);
}
else {
$strings = @parse_ini_file($filename);
if ($version == '5.3.0' && is_array($strings)) {
foreach($strings as $key => $string)
{
$strings[$key]=str_replace('_QQ_', '"', $string);
}
}
}
// Restore error tracking to what it was before.
Linea796 ini_set('track_errors', $track_errors);
if (!is_array($strings)) {
$strings = array();
}
if ($this->debug) {
// Initialise variables for manually parsing the file for common errors.
$blacklist = array('YES', 'NO', 'NULL', 'FALSE', 'ON', 'OFF', 'NONE', 'TRUE');
$regex = '/^(|([[^]]*])|([A-Z][A-Z0-9_-]*s*=(s*(("[^"]*")|(_QQ_)))+))s*(;.*)?$/';
$this->debug = false;
$errors = array();
$lineNumber = 0;
// Open the file as a stream.
$stream = new JStream;
$stream->open($filename);
while (!$stream->eof())
{
$line = $stream->gets();
$lineNumber++;
// Check that the key is not in the blacklist and that the line format passes the regex.
$key = strtoupper(trim(substr($line, 0, strpos($line, '='))));
if (!preg_match($regex, $line) || in_array($key, $blacklist)) {
$errors[] = $lineNumber;
}
}
$stream->close();
// Check if we encountered any errors.
if (count($errors)) {
if (basename($filename) != $this->lang.'.ini') {
$this->errorfiles[$filename] = $filename.JText::sprintf('JERROR_PARSING_LANGUAGE_FILE', implode(', ', $errors));
}
else {
$this->errorfiles[$filename] = $filename . ' : error(s) in line(s) ' . implode(', ', $errors);
}
}
elseif ($php_errormsg) {
// We didn't find any errors but there's probably a parse notice.
$this->errorfiles['PHP'.$filename] = 'PHP parser errors :'.$php_errormsg;
}
$this->debug = true;
}
return $strings;
}
Como veras en todos los casos te he copiado la funcion completa para que sepas que es.
Bien ya me diras que esta mal.
Hola,
Los errores que comentas no parece que guarden relación con el límite del número de productos que se pueden añadir a una compra. Lo que tendrías que hacer es hacer una prueba y, justo en el momento en el que se borran las líneas del pedido revisar el log de errores para ver si encuentras una información distinta.
Pues lo he vuelto ha hacer y como os decia no es que de un error es que de golpe cuando le doy a carro me salta a pagina incial de categorias y el carro se vacia. He abierto el error_log y solo sale el error del archivo language.php
Alguna idea mas?
Hola Tina
Envíanos algún usuario existente en la zona de clientes para probar lo que comentas
Saludos.
Contenido solo visible a usuarios registrados
Hola,
He realizado alguna prueba y en efecto, veo que cuando se añaden muchos productos al carro, este se termina vaciando. Parece que se trata de bug de Virtuemart. He mirado en el foro oficial y no veo que aporten soluciones, por lo que tendrás que esperar al a versión 2.0.8 para ver si se corrige el problema, o probar alguna de las versiones 2.0.7, aunque tienes que tener en cuenta que estas últimas son betas por lo que podrían dar problemas de estabilidad.
Si ya lo se, ya que ya lo havia comentado allí, sin tener tampoco contestación de ellos.
De todas formas no lo entiendo,¿ cuantas tiendas teneis hechas con virtuemart?¿A nadie le ha pasado?¿ Es solo en la versión 2.X,? La verdad es que no puedo rendirme y esperar lo que comentas sobretodo sin saber una fecha, la verdad es que me cambie a vuestro hosting por este motivo si tampoco vosotros me lo podeis solucionar no se si me merece la pena cambiar de servidor.
He vuelto a poner la consulta en el foro de virtuemart....... a ver si entre todos encontramos una solución..... se admiten sugerencias
Hola Tina,
Desde 2007, hemos realizado con distintos servicios unas 400 tiendas con virtuemart. Hemos usado desde las versiones iniciales que sacaron los responsables de Virtuemart, hasta las actuales 2.0.x
En todas las etapas han ido apareciendo nuevas versiones que añadían mejoras a nivel funcional, a nivel seguridad y corregían errores. No se han destacado por la velocidad en lanzar nuevas mejoras, pero hay que entender y considerar que el producto es gratuito.
Por otro lado es la primera vez que un cliente requiere de añadir tantos artículos en el carrito, así que podría ser un fallo de virtuemart 2.0 o bien ya existía en virtuemart 1.1
Nosotros te podemos resolver temas relacionados con problemas entre extensiones y el hosting o darte información sobre funcionamiento de las extensiones, pero las extensiones están realizadas por personas o empresas ajenas a webempresa y por lo tanto no llegamos a poder dar solución a problemas del código fuente realizado por otras personas o empresas.
Seguiremos también nosotros el tema en virtuemart a ver si conseguimos que esté resuelto en la siguiente versión 2.0
Gracias por tu comprensión,
Gerard
Hola nuevamente
Al final parece que he resuelto el problema actualizando el joomla a la nueva versión 2.5 y ahora cuando hago los pedidos puedo poner hasta 20 o 25 lineas. Bueno ahi queda por si a alguien le pasa.