Handbooks

The methods which have been evaluated by collaborative tests and accepted as CIPAC Methods are published in regular intervals in CIPAC Handbooks. These Books are named with Roman letters, with Handbook P, being the last published in 2021 and the next planned to appear in the year 2024.

A searchable Cumulative Index is presented underneath, containing the compound (ISO) common name or the name of the physical test designated as MT not allocated to a specific compound and the Handbook with page number where it was published (e.g. a method for determination of cycloxydim, CIPAC Code 510, on page 25 ff of Handbook K).

For your convenience, we have added an "Outline of the Method" on Methods published recently (in Handbooks E to P), giving you a first impression how the method is carried out.


Downloads/Webshop

Printed editions

* This handbooks are out of print and only available as CIPAC CD-ROM Handbooks A to D.

Electronic editions


CIPAC CD-ROM Handbooks E to P (update version)


CIPAC CD-ROM Handbooks E to Q (update version)

1 PC license
10 PC license

1 PC license
10 PC license

Please note! The update versions contains only the pdf-files from CIPAC Handbook P respectively Handbook Q.
To have full access to all methods you need the old CD-ROM E to O repsectively E to P too!

CIPAC CD-ROM Handbooks E to Q

1 PC license
10 PC license


CIPAC CD-ROM Handbooks 1A to D

1 PC license
10 PC license


Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377. (500 Whoops, looks like something went wrong.)

RuntimeException RuntimeException

HTTP 500 Whoops, looks like something went wrong.

Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377.

Exceptions 2

RuntimeException

  1. if ($this->isActive()) {
  2. throw new \RuntimeException('Failed to start the session: already started by PHP.');
  3. }
  4. if (ini_get('session.use_cookies') && headers_sent($file, $line)) {
  5. throw new \RuntimeException(
  6. sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line)
  7. );
  8. }
  9. if (!session_start()) {
  1. $this->setId($session_clean);
  2. $cookie->set($session_name, '', ['expires' => time() - 3600 ]);
  3. }
  4. }
  5. parent::start();
  6. // Try loading data from the session
  7. if (!empty($_SESSION['joomla'])) {
  8. $this->data = unserialize(base64_decode($_SESSION['joomla']));
  9. }
  1. {
  2. if ($this->isStarted()) {
  3. return;
  4. }
  5. $this->store->start();
  6. $this->setState(SessionState::ACTIVE);
  7. // Initialise the session
  8. $this->setCounter();
  1. * @since 1.0
  2. */
  3. public function has($name)
  4. {
  5. if (!$this->isActive()) {
  6. $this->start();
  7. }
  8. return $this->store->has($name);
  9. }
  1. $name = $args[2] . '.' . $name;
  2. }
  3. }
  4. if (parent::has($name)) {
  5. // Parent is used because of b/c, can be changed in Joomla 6
  6. return parent::get($name, $default);
  7. }
  8. /*
Session->get() in D:\www\www83\libraries\src\Factory.php (line 372)
  1. __CLASS__
  2. ),
  3. E_USER_DEPRECATED
  4. );
  5. $instance = self::getApplication()->getSession()->get('user');
  6. if (\is_null($id)) {
  7. if (!($instance instanceof User)) {
  8. $instance = User::getInstance();
  9. }
  1. {
  2. $renderer = $this->_doc->loadRenderer('module');
  3. $buffer = '';
  4. $app = Factory::getApplication();
  5. $user = Factory::getUser();
  6. $frontediting = ($app->isClient('site') && $app->get('frontediting', 1) && !$user->guest);
  7. $menusEditing = ($app->get('frontediting', 1) == 2) && $user->authorise('core.edit', 'com_menus');
  8. foreach (ModuleHelper::getModules($position) as $mod) {
  9. $moduleHtml = $renderer->render($mod, $params, $content);
ModulesRenderer->render() in D:\www\www83\libraries\src\Document\HtmlDocument.php (line 578)
  1. $cbuffer[$hash] = $tmpdata;
  2. $cache->store($cbuffer, 'cbuffer_' . $type);
  3. } else {
  4. $this->setBuffer($renderer->render($name, $attribs, null), $type, $name, $title);
  5. }
  6. return parent::$_buffer[$type][$name][$title];
  7. }
HtmlDocument->getBuffer() in D:\www\www83\libraries\src\Document\HtmlDocument.php (line 897)
  1. $replace = [];
  2. $with = [];
  3. foreach ($this->_template_tags as $jdoc => $args) {
  4. $replace[] = $jdoc;
  5. $with[] = $this->getBuffer($args['type'], $args['name'], $args['attribs']);
  6. }
  7. return str_replace($replace, $with, $this->_template);
  8. }
  9. }
HtmlDocument->_renderTemplate() in D:\www\www83\libraries\src\Document\HtmlDocument.php (line 650)
  1. if (\array_key_exists('csp_nonce', $params) && $params['csp_nonce'] !== null) {
  2. $this->cspNonce = $params['csp_nonce'];
  3. }
  4. $data = $this->_renderTemplate();
  5. parent::render($caching, $params);
  6. return $data;
  7. }
HtmlDocument->render() in D:\www\www83\libraries\src\Document\ErrorDocument.php (line 139)
  1. $this->debug = $params['debug'] ?? false;
  2. $this->error = $this->_error;
  3. $params['file'] = 'error.php';
  4. return parent::render($cache, $params);
  5. }
  6. /**
  7. * Render the backtrace
  8. *
  1. ob_end_clean();
  2. }
  3. $this->getDocument()->setTitle(Text::_('Error') . ': ' . $error->getCode());
  4. return $this->getDocument()->render(
  5. false,
  6. [
  7. 'template' => $template->template,
  8. 'directory' => JPATH_THEMES,
  9. 'debug' => JDEBUG,
  1. 'subject' => $app,
  2. 'document' => $renderer->getDocument(),
  3. ])
  4. );
  5. $data = $renderer->render($error);
  6. // If nothing was rendered, just use the message from the Exception
  7. if (empty($data)) {
  8. $data = $error->getMessage();
  9. }
ExceptionHandler::render() in D:\www\www83\libraries\src\Exception\ExceptionHandler.php (line 76)
  1. * @since 3.10.0
  2. */
  3. public static function handleException(\Throwable $error)
  4. {
  5. static::logException($error);
  6. static::render($error);
  7. }
  8. /**
  9. * Render the error page based on an exception.
  10. *
ExceptionHandler::handleException() in D:\www\www83\libraries\src\Application\CMSApplication.php (line 334)
  1. );
  2. // Trigger the onError event.
  3. $this->dispatchEvent('onError', $event);
  4. ExceptionHandler::handleException($event->getError());
  5. }
  6. // Trigger the onBeforeRespond event.
  7. $this->dispatchEvent(
  8. 'onBeforeRespond',
CMSApplication->execute() in D:\www\www83\index.php (line 35)
  1. // Run the application - All executable code should be triggered through this file
  2. require_once dirname(__FILE__) . '/includes/app.php';
  3. $app = JFactory::getApplication('site');
  4. $app->execute();

RuntimeException

Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377.

  1. if ($this->isActive()) {
  2. throw new \RuntimeException('Failed to start the session: already started by PHP.');
  3. }
  4. if (ini_get('session.use_cookies') && headers_sent($file, $line)) {
  5. throw new \RuntimeException(
  6. sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line)
  7. );
  8. }
  9. if (!session_start()) {
  1. $this->setId($session_clean);
  2. $cookie->set($session_name, '', ['expires' => time() - 3600 ]);
  3. }
  4. }
  5. parent::start();
  6. // Try loading data from the session
  7. if (!empty($_SESSION['joomla'])) {
  8. $this->data = unserialize(base64_decode($_SESSION['joomla']));
  9. }
  1. {
  2. if ($this->isStarted()) {
  3. return;
  4. }
  5. $this->store->start();
  6. $this->setState(SessionState::ACTIVE);
  7. // Initialise the session
  8. $this->setCounter();
  1. * @since 1.0
  2. */
  3. public function has($name)
  4. {
  5. if (!$this->isActive()) {
  6. $this->start();
  7. }
  8. return $this->store->has($name);
  9. }
  1. $name = $args[2] . '.' . $name;
  2. }
  3. }
  4. if (parent::has($name)) {
  5. // Parent is used because of b/c, can be changed in Joomla 6
  6. return parent::get($name, $default);
  7. }
  8. /*
Session->get() in D:\www\www83\libraries\src\Factory.php (line 372)
  1. __CLASS__
  2. ),
  3. E_USER_DEPRECATED
  4. );
  5. $instance = self::getApplication()->getSession()->get('user');
  6. if (\is_null($id)) {
  7. if (!($instance instanceof User)) {
  8. $instance = User::getInstance();
  9. }
  1. *
  2. * @since 3.2
  3. */
  4. protected function initialiseApp($options = [])
  5. {
  6. $user = Factory::getUser();
  7. // If the user is a guest we populate it with the guest user group.
  8. if ($user->guest) {
  9. $guestUsergroup = ComponentHelper::getParams('com_users')->get('guest_usergroup', 1);
  10. $user->groups = [$guestUsergroup];
SiteApplication->initialiseApp() in D:\www\www83\libraries\src\Application\SiteApplication.php (line 237)
  1. * @since 3.2
  2. */
  3. protected function doExecute()
  4. {
  5. // Initialise the application
  6. $this->initialiseApp();
  7. // Mark afterInitialise in the profiler.
  8. JDEBUG ? $this->profiler->mark('afterInitialise') : null;
  9. // Route the application
SiteApplication->doExecute() in D:\www\www83\libraries\src\Application\CMSApplication.php (line 304)
  1. $this->sanityCheckSystemVariables();
  2. $this->setupLogging();
  3. $this->createExtensionNamespaceMap();
  4. // Perform application routines.
  5. $this->doExecute();
  6. // If we have an application document object, render it.
  7. if ($this->document instanceof \Joomla\CMS\Document\Document) {
  8. // Render the application output.
  9. $this->render();
CMSApplication->execute() in D:\www\www83\index.php (line 35)
  1. // Run the application - All executable code should be triggered through this file
  2. require_once dirname(__FILE__) . '/includes/app.php';
  3. $app = JFactory::getApplication('site');
  4. $app->execute();

Stack Traces 2

[2/2] RuntimeException
RuntimeException:
Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377.

  at D:\www\www83\libraries\vendor\joomla\session\src\Storage\NativeStorage.php:454
  at Joomla\Session\Storage\NativeStorage->start()
     (D:\www\www83\libraries\src\Session\Storage\JoomlaStorage.php:313)
  at Joomla\CMS\Session\Storage\JoomlaStorage->start()
     (D:\www\www83\libraries\vendor\joomla\session\src\Session.php:396)
  at Joomla\Session\Session->start()
     (D:\www\www83\libraries\vendor\joomla\session\src\Session.php:327)
  at Joomla\Session\Session->has()
     (D:\www\www83\libraries\src\Session\Session.php:194)
  at Joomla\CMS\Session\Session->get()
     (D:\www\www83\libraries\src\Factory.php:372)
  at Joomla\CMS\Factory::getUser()
     (D:\www\www83\libraries\src\Document\Renderer\Html\ModulesRenderer.php:46)
  at Joomla\CMS\Document\Renderer\Html\ModulesRenderer->render()
     (D:\www\www83\libraries\src\Document\HtmlDocument.php:578)
  at Joomla\CMS\Document\HtmlDocument->getBuffer()
     (D:\www\www83\libraries\src\Document\HtmlDocument.php:897)
  at Joomla\CMS\Document\HtmlDocument->_renderTemplate()
     (D:\www\www83\libraries\src\Document\HtmlDocument.php:650)
  at Joomla\CMS\Document\HtmlDocument->render()
     (D:\www\www83\libraries\src\Document\ErrorDocument.php:139)
  at Joomla\CMS\Document\ErrorDocument->render()
     (D:\www\www83\libraries\src\Error\Renderer\HtmlRenderer.php:70)
  at Joomla\CMS\Error\Renderer\HtmlRenderer->render()
     (D:\www\www83\libraries\src\Exception\ExceptionHandler.php:142)
  at Joomla\CMS\Exception\ExceptionHandler::render()
     (D:\www\www83\libraries\src\Exception\ExceptionHandler.php:76)
  at Joomla\CMS\Exception\ExceptionHandler::handleException()
     (D:\www\www83\libraries\src\Application\CMSApplication.php:334)
  at Joomla\CMS\Application\CMSApplication->execute()
     (D:\www\www83\index.php:35)                
[1/2] RuntimeException
RuntimeException:
Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377.

  at D:\www\www83\libraries\vendor\joomla\session\src\Storage\NativeStorage.php:454
  at Joomla\Session\Storage\NativeStorage->start()
     (D:\www\www83\libraries\src\Session\Storage\JoomlaStorage.php:313)
  at Joomla\CMS\Session\Storage\JoomlaStorage->start()
     (D:\www\www83\libraries\vendor\joomla\session\src\Session.php:396)
  at Joomla\Session\Session->start()
     (D:\www\www83\libraries\vendor\joomla\session\src\Session.php:327)
  at Joomla\Session\Session->has()
     (D:\www\www83\libraries\src\Session\Session.php:194)
  at Joomla\CMS\Session\Session->get()
     (D:\www\www83\libraries\src\Factory.php:372)
  at Joomla\CMS\Factory::getUser()
     (D:\www\www83\libraries\src\Application\SiteApplication.php:565)
  at Joomla\CMS\Application\SiteApplication->initialiseApp()
     (D:\www\www83\libraries\src\Application\SiteApplication.php:237)
  at Joomla\CMS\Application\SiteApplication->doExecute()
     (D:\www\www83\libraries\src\Application\CMSApplication.php:304)
  at Joomla\CMS\Application\CMSApplication->execute()
     (D:\www\www83\index.php:35)