Joomla, include(), sesiones, PHP, AYUDA!!!

Diseño y Posicionamiento Web con Joomla Foros General Joomla en General Joomla, include(), sesiones, PHP, AYUDA!!!

  • Este debate tiene 1 respuesta, 1 mensaje y ha sido actualizado por última vez el hace 13 años, 10 meses por Anónimo.
Mostrando 1 respuesta al debate
  • Autor
    Entradas
    • #104532
      Anónimo
      Invitado

      Hola a todos, espero me puedan ayudar.

      Bien primero comienzo por explicar que estoy tratando de insertar información en la tabla y6z4i_content de joomla, con el siguiente script que se llama inserta.php

      [code type=php]// Le decimos que estamos en Joomla
      define(‘_JEXEC’, 1);

      // Definimos la constante de directorio actual y el separador de directorios (windows server: y linux server: /)
      define(‘JPATH_BASE’, dirname(__FILE__));
      define(‘DS’, DIRECTORY_SEPARATOR);

      // Cargamos los ficheros de framework de Joomla 1.5, y las definiciones de constantes (IMPORTANTE AMBAS LÍNEAS)
      require_once(JPATH_BASE . DS . ‘includes’ . DS . ‘defines.php’);
      require_once(JPATH_BASE . DS . ‘includes’ . DS . ‘framework.php’);

      // Iniciamos nuestra aplicación (site: frontend)
      $mainframe = &JFactory::getApplication(‘site’);

      $title = $titulo_noticia;
      $alias = $titulo_noticia;
      $introtext = $cuerpo_noticia;
      $fulltext = $cuerpo_noticia;
      $state = 1;
      $sectionid = 6;
      $catid = 36;
      $created = date(“Y-m-d h:i:s”);
      $created_by = 62;

      $object->title = $title;
      $object->alias = $alias;
      $object->introtext = $introtext;
      $object->fulltext = $fulltext ;
      $object->state = $state;
      $object->sectionid = $sectionid;
      $object->catid = $catid;
      $object->created = $created;
      $object->created_by = $created_by;

      $table = ‘#__content’;

      $db = &JFactory::getDBO();

      $db->insertObject($table, $object, ‘id’);

      echo $object->id;

      echo ” Se insertó noticia correctamente.
      “;[/code]

      esto funciona de maravillas.

      Ahora bien, en otro archivo tengo una función que me ejecuta según el valor de una variable varios include(), cada uno de estos include() me llama a un archivo de estos que me inserta los datos en la tabla de joomla.
      Pero como esta función esta dentro de un ciclo puede suceder que se ejecuten uno o todos los inlcude(), cada include() me inserta datos en un sitio web diferente.
      [code type=php]switch($myvariable)
      {
      case 1:
      include(“../sitioweb1/inserta.php”);
      break;
      case 2:
      include(“../sitioweb2/inserta.php”);
      break;
      case 3:
      include(“../sitioweb3/inserta.php”);
      break;
      }[/code]

      El problema esta dado que al pasar la primera vez por ejemplo: por el case1 el inserta bien los datos, pero cuando la variable toma el valor 2 al insertar me inserta en el primer sitio no en el segundo, asi sucede con el valor 3, se inserta 3 veces en el primer sitio, es como si se quedara alguna sesión abierta en cache del primero.
      Esto sucede solo con las rutas relativas.

      Si le pongo rutas absolutas funciona bien aquí lo muestro:
      [code type=php]switch($myvariable)
      {
      case 1:
      include(“http://misitioweb1.com/inserta.php”);
      break;
      case 2:
      include(“http://misitioweb2.com/inserta.php”);
      break;
      case 3:
      include(“http://misitioweb3.com/inserta.php”);
      break;
      }[/code]
      Pero esto es un problema porque hay que activar en el servidor la opción que permita que el include() ejecute direcciones absolutas y esto no es aconsejable.

      Mi pregunta es: ¿como puedo solucionar este problema?

      Aclarar que estos tres sitios se encuentran dentro de un mismo server, por eso puedo llamar desde dentro de uno la unit de inserta.php que se encuentra en otro.

    • #104562
      Anónimo
      Invitado

      Hola a todo de nuevo, he realizado varios cambios en el código, por ejemplo la ruta del include la puse así: include(“C:\xampphtdocssitiowebinserta.php”);

      es una ruta absoluta a nivel de directorios, le hice un echo a la variable del switch para ver cuando cambiaba de valor y si pasaba por la ruta y me devuelve el siguiente error:
      [b]
      Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at C:xampphtdocssitiowebinserta.php:65) in C:xampphtdocssitioweblibrariesjoomlasessionsession.php on line 423

      Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at C:xampphtdocssitiowebinserta.php:65) in C:xampphtdocssitioweblibrariesjoomlasessionsession.php on line 423

      Warning: Cannot modify header information – headers already sent by (output started at C:xampphtdocssitiowebinserta.php:65) in C:xampphtdocssitioweblibrariesjoomlasessionsession.php on line 426[/b]

      estuve buscando en la red y todos habalan de espaciosn y caracteres especiales y mis script no tienen nada de eso, el problema me parece a mi que esta en el header que tienen los archivos inserta.php que se envian 3 veces, alguien sabe como solucionar esto???

      este es el header que tiene cada archivo inserta.php
      define('_JEXEC', 1);
      define('JPATH_BASE', dirname(__FILE__));
      define('DS', DIRECTORY_SEPARATOR);
      require_once(JPATH_BASE . DS . 'includes' . DS . 'defines.php');
      require_once(JPATH_BASE . DS . 'includes' . DS . 'framework.php');
      $mainframe = &JFactory::getApplication('site');

Mostrando 1 respuesta al debate
  • Debes estar registrado para responder a este debate.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad