Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

phpBB 3.0 hat sein "End of Life" erreicht. Eine Neu-Installation wird nicht mehr unterstützt.
Gesperrt
Latza
Gesperrt
Beiträge: 531
Registriert: 05.05.2009 17:57

Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Latza »

Hallo
Wenn ich im ACP auf Captcha-Modul-Einstellung klicke kommt folgende Fehlermeldung:

Code: Alles auswählen

Deprecated: Assigning the return value of new by reference is deprecated in /users/xxx/www/includes/captcha/plugins/phpbb_recaptcha_plugin.php on line 54

Deprecated: Assigning the return value of new by reference is deprecated in /users/xxx/www/includes/captcha/plugins/phpbb_captcha_nogd_plugin.php on line 45

Deprecated: Assigning the return value of new by reference is deprecated in /users/xxx/www/includes/captcha/plugins/phpbb_captcha_qa_plugin.php on line 104
[phpBB Debug] PHP Notice: in file /adm/index.php on line 150: Cannot modify header information - headers already sent by (output started at /includes/captcha/plugins/phpbb_recaptcha_plugin.php:54)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 152: Cannot modify header information - headers already sent by (output started at /includes/captcha/plugins/phpbb_recaptcha_plugin.php:54)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 153: Cannot modify header information - headers already sent by (output started at /includes/captcha/plugins/phpbb_recaptcha_plugin.php:54)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 154: Cannot modify header information - headers already sent by (output started at /includes/captcha/plugins/phpbb_recaptcha_plugin.php:54)
Ich hab mein Board vor kurzem erst upgedatet. Kann mir jemand helfen?
/includes/captcha/plugins/phpbb_recaptcha_plugin.php :

Code: Alles auswählen

<?php
/**
*
* @package VC
* @version $Id$
* @copyright (c) 2006, 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

if (!class_exists('phpbb_default_captcha'))
{
	// we need the classic captcha code for tracking solutions and attempts
	include($phpbb_root_path . 'includes/captcha/plugins/captcha_abstract.' . $phpEx);
}

/**
* @package VC
*/
class phpbb_recaptcha extends phpbb_default_captcha
{
	var $recaptcha_server = 'http://api.recaptcha.net';
	var $recaptcha_server_secure = 'https://api-secure.recaptcha.net'; // class constants :(
	var $recaptcha_verify_server = 'api-verify.recaptcha.net';
	var $challenge;
	var $response;

	// PHP4 Constructor
	function phpbb_recaptcha()
	{
		$this->recaptcha_server = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? $this->recaptcha_server_secure : $this->recaptcha_server;
	}

	function init($type)
	{
		global $config, $db, $user;

		$user->add_lang('captcha_recaptcha');
		parent::init($type);
		$this->challenge = request_var('recaptcha_challenge_field', '');
		$this->response = request_var('recaptcha_response_field', '');
	}

	function &get_instance()
	{
		$instance =& new phpbb_recaptcha();
		return $instance;
	}

	function is_available()
	{
		global $config, $user;
		$user->add_lang('captcha_recaptcha');
		return (isset($config['recaptcha_pubkey']) && !empty($config['recaptcha_pubkey']));
	}

	/**
	*  API function
	*/
	function has_config()
	{
		return true;
	}

	function get_name()
	{
		return 'CAPTCHA_RECAPTCHA';
	}

	function get_class_name()
	{
		return 'phpbb_recaptcha';
	}

	function acp_page($id, &$module)
	{
		global $config, $db, $template, $user;

		$captcha_vars = array(
			'recaptcha_pubkey'				=> 'RECAPTCHA_PUBKEY',
			'recaptcha_privkey'				=> 'RECAPTCHA_PRIVKEY',
		);

		$module->tpl_name = 'captcha_recaptcha_acp';
		$module->page_title = 'ACP_VC_SETTINGS';
		$form_key = 'acp_captcha';
		add_form_key($form_key);

		$submit = request_var('submit', '');

		if ($submit && check_form_key($form_key))
		{
			$captcha_vars = array_keys($captcha_vars);
			foreach ($captcha_vars as $captcha_var)
			{
				$value = request_var($captcha_var, '');
				if ($value)
				{
					set_config($captcha_var, $value);
				}
			}

			add_log('admin', 'LOG_CONFIG_VISUAL');
			trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($module->u_action));
		}
		else if ($submit)
		{
			trigger_error($user->lang['FORM_INVALID'] . adm_back_link($module->u_action));
		}
		else
		{
			foreach ($captcha_vars as $captcha_var => $template_var)
			{
				$var = (isset($_REQUEST[$captcha_var])) ? request_var($captcha_var, '') : ((isset($config[$captcha_var])) ? $config[$captcha_var] : '');
				$template->assign_var($template_var, $var);
			}

			$template->assign_vars(array(
				'CAPTCHA_PREVIEW'	=> $this->get_demo_template($id),
				'CAPTCHA_NAME'		=> $this->get_class_name(),
				'U_ACTION'			=> $module->u_action,
			));

		}
	}

	// not needed
	function execute_demo()
	{
	}

	// not needed
	function execute()
	{
	}

	function get_template()
	{
		global $config, $user, $template;

		if ($this->is_solved())
		{
			return false;
		}
		else
		{
			$explain = $user->lang(($this->type != CONFIRM_POST) ? 'CONFIRM_EXPLAIN' : 'POST_CONFIRM_EXPLAIN', '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>');

			$template->assign_vars(array(
				'RECAPTCHA_SERVER'			=> $this->recaptcha_server,
				'RECAPTCHA_PUBKEY'			=> isset($config['recaptcha_pubkey']) ? $config['recaptcha_pubkey'] : '',
				'RECAPTCHA_ERRORGET'		=> '',
				'S_RECAPTCHA_AVAILABLE'		=> $this->is_available(),
				'S_CONFIRM_CODE'			=> true,
				'S_TYPE'					=> $this->type,
				'L_CONFIRM_EXPLAIN'			=> $explain,
			));

			return 'captcha_recaptcha.html';
		}
	}

	function get_demo_template($id)
	{
		return $this->get_template();
	}

	function get_hidden_fields()
	{
		$hidden_fields = array();

		// this is required for posting.php - otherwise we would forget about the captcha being already solved
		if ($this->solved)
		{
			$hidden_fields['confirm_code'] = $this->code;
		}
		$hidden_fields['confirm_id'] = $this->confirm_id;
		return $hidden_fields;
	}

	function uninstall()
	{
		$this->garbage_collect(0);
	}

	function install()
	{
		return;
	}

	function validate()
	{
		if (!parent::validate())
		{
			return false;
		}
		else
		{
			return $this->recaptcha_check_answer();
		}
	}

// Code from here on is based on recaptchalib.php
/*
 * This is a PHP library that handles calling reCAPTCHA.
 *	- Documentation and latest version
 *		  http://recaptcha.net/plugins/php/
 *	- Get a reCAPTCHA API Key
 *		  http://recaptcha.net/api/getkey
 *	- Discussion group
 *		  http://groups.google.com/group/recaptcha
 *
 * Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
 * AUTHORS:
 *   Mike Crawford
 *   Ben Maurer
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

	/**
	* Submits an HTTP POST to a reCAPTCHA server
	* @param string $host
	* @param string $path
	* @param array $data
	* @param int port
	* @return array response
	*/
	function _recaptcha_http_post($host, $path, $data, $port = 80)
	{
		$req = $this->_recaptcha_qsencode ($data);

		$http_request  = "POST $path HTTP/1.0\r\n";
		$http_request .= "Host: $host\r\n";
		$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
		$http_request .= "Content-Length: " . strlen($req) . "\r\n";
		$http_request .= "User-Agent: reCAPTCHA/PHP/phpBB\r\n";
		$http_request .= "\r\n";
		$http_request .= $req;

		$response = '';
		if (false == ($fs = @fsockopen($host, $port, $errno, $errstr, 10)))
		{
			trigger_error('Could not open socket', E_USER_ERROR);
		}

		fwrite($fs, $http_request);

		while (!feof($fs))
		{
			// One TCP-IP packet
			$response .= fgets($fs, 1160);
		}
		fclose($fs);
		$response = explode("\r\n\r\n", $response, 2);

		return $response;
	}

	/**
	* Calls an HTTP POST function to verify if the user's guess was correct
	* @param array $extra_params an array of extra variables to post to the server
	* @return ReCaptchaResponse
	*/
	function recaptcha_check_answer($extra_params = array())
	{
		global $config, $user;

		//discard spam submissions
		if ($this->challenge == null || strlen($this->challenge) == 0 || $this->response == null || strlen($this->response) == 0)
		{
			return $user->lang['RECAPTCHA_INCORRECT'];
		}

		$response = $this->_recaptcha_http_post($this->recaptcha_verify_server, '/verify',
			array(
				'privatekey'	=> $config['recaptcha_privkey'],
				'remoteip'		=> $user->ip,
				'challenge'		=> $this->challenge,
				'response'		=> $this->response
			) + $extra_params
		);

		$answers = explode("\n", $response[1]);

		if (trim($answers[0]) === 'true')
		{
			$this->solved = true;
			return false;
		}
		else
		{
			if ($answers[1] === 'incorrect-captcha-sol')
			{
				return $user->lang['RECAPTCHA_INCORRECT'];
			}
		}
	}

	/**
	* Encodes the given data into a query string format
	* @param $data - array of string elements to be encoded
	* @return string - encoded request
	*/
	function _recaptcha_qsencode($data)
	{
		$req = '';
		foreach ($data as $key => $value)
		{
			$req .= $key . '=' . urlencode(stripslashes($value)) . '&';
		}

		// Cut the last '&'
		$req = substr($req, 0, strlen($req) - 1);
		return $req;
	}
}

?>
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Mahony »

Hallo
Du (beziehungsweise dein Hoster) verwendest eine neuere PHP-Version (5.3). Dort gibt es neue error levels: E_DEPRECATED und E_USER_DEPRECATED
sowie Deprecated features:
* Assigning the return value of new by reference is now deprecated.
* Call-time pass-by-reference is now deprecated.
* The use of {} to access string offsets is deprecated. Use [] instead.

In phpBB3.0.7-PL1 ist der Fehler eigentlich schon behoben --> siehe viewtopic.php?p=1170868#p1170868
Ansonsten siehe viewtopic.php?p=1166075#p1166075

P.S. bplaced.net verwendet übrigens PHP Version 5.3.2 siehe http://phpinfo.bplaced.net/


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Minusbrain
Mitglied
Beiträge: 163
Registriert: 23.09.2008 19:15
Wohnort: AC

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Minusbrain »

Ähnliches Problem:
Habe das 3.0.7-PL1 installiert und musste feststellen das der Captcha nicht mehr funktioniert bzw. einen Fehler in der DB ausgab der mir verdeutlichte das diverse Tabellen gar nicht vorhanden sein. Beim setupen stellte sich zudem das Problem ein, dass sich gar nichts mehr einstellen lies, das Modul hat sich festgefahren und User konnten sich auch nicht mehr Registrieren. Kurzerhand habe ich das Modul im "System/Modul-Konfiguration" deinstalliert. Nun können sich zwar User wieder anmelden, aber das Bord besitzt keine Barriere mehr. Hatte die dreier Serie von Haus aus ein Captcha? Wenn ja, wie bekomme ich es wieder installiert? Weil ich bin mir da gerade unsicher, und wenn nicht, gibt es ein gutes MOD für?

Lg
Minus B
§1. Nur wer Toleranz Grenzen setzt weiß Freiheit zu schätzen.
§2. Kunst und Schaffenskraft lässt sich genauso leicht kritisieren wie es für den Kritiker schwer ist besseres zu leisten.
Benutzeravatar
Minusbrain
Mitglied
Beiträge: 163
Registriert: 23.09.2008 19:15
Wohnort: AC

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Minusbrain »

So ziemlich vier Tage später:
Keiner eine Idee :( ?

Habe heute in Erfahrung gebracht das wenn User auf Beiträge reagieren wollen, sich aber noch nicht angemeldet haben und auf den Button "Antworten" klicken der Fehler:

Code: Alles auswählen

SQL ERROR [ mysqli ]

Table 'usr_web99_10.phpbb_qa_confirm' doesn't exist [1146]
auftritt.
§1. Nur wer Toleranz Grenzen setzt weiß Freiheit zu schätzen.
§2. Kunst und Schaffenskraft lässt sich genauso leicht kritisieren wie es für den Kritiker schwer ist besseres zu leisten.
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Mahony »

Hallo
Hatte die dreier Serie von Haus aus ein Captcha?
Ja, hat es.
Wenn ja, wie bekomme ich es wieder installiert?
Reparieren kannst du das mit dem Support Toolkit 1.0.0-PL1
Beachte dabei aber auch bitte diese Hinweise: kleine Bugs und deren Beseitigung im Support Toolkit 1.0.0-pl1


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Minusbrain
Mitglied
Beiträge: 163
Registriert: 23.09.2008 19:15
Wohnort: AC

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Minusbrain »

Hab vielen lieben Dank Mahony!
hab gleich ma den Bugfix durchgejagt bevor ich das STK ins Bordhauptverzeichnis verfrachtet habe.

Nun stehe ich allerdings etwas verwirrt davor, denn ich bin mal spontan die jeweiligen tools durchgegangen und ich habe das Gefühl als hätte sich nichts getan^^ Zuerst habe ich in Backup der DB gezogen, anschließend unter Support Tools die Fix Left/Right ID’s abgerufen bzw. Recreate Module Management modules. Nur leider hat es keine Wirkung gezeigt, der Fehler besteht noch immer :(

Ich habe mal im Fehler-Protokoll nachgesehen, so sieht es also aus:

Code: Alles auswählen

Ein allgemeiner Fehler ist aufgetreten: General Error 
» SQL ERROR [ mysqli ]

Table 'usr_web99_10.ppbb_qa_confirm' doesn't exist [1146]

SQL

SELECT c.confirm_id
FROM phpbb_qa_confirm c
LEFT JOIN phpbb_sessions s
ON (c.session_id = s.session_id)
WHERE s.session_id IS NULL

BACKTRACE

FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()

FILE: includes/captcha/plugins/phpbb_captcha_qa_plugin.php
LINE: 266
CALL: dbal_mysqli->sql_query()

FILE: 
LINE: 
CALL: phpbb_captcha_qa::garbage_collect()

FILE: includes/captcha/captcha_factory.php
LINE: 54
CALL: call_user_func()

FILE: includes/session.php
LINE: 999
CALL: phpbb_captcha_factory->garbage_collect()

FILE: 
LINE: 
CALL: session->session_gc()
§1. Nur wer Toleranz Grenzen setzt weiß Freiheit zu schätzen.
§2. Kunst und Schaffenskraft lässt sich genauso leicht kritisieren wie es für den Kritiker schwer ist besseres zu leisten.
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Mahony »

Hallo
Du musst das Datenbank-Tool benutzen (unter Support Tools - Datenbank-Säuberung).
Dort kannst du die fehlenden Tabellen wiederherstellen lassen.


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Minusbrain
Mitglied
Beiträge: 163
Registriert: 23.09.2008 19:15
Wohnort: AC

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Minusbrain »

Mahony.. Du bist ein Gott!
Hab tausend Dank dafür!
§1. Nur wer Toleranz Grenzen setzt weiß Freiheit zu schätzen.
§2. Kunst und Schaffenskraft lässt sich genauso leicht kritisieren wie es für den Kritiker schwer ist besseres zu leisten.
Benutzeravatar
Minusbrain
Mitglied
Beiträge: 163
Registriert: 23.09.2008 19:15
Wohnort: AC

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Minusbrain »

Guten Morgen Allerseits.

Bzgl. dem Captcha stehe ich noch immer vor einem Problem das mir jetzt erst aufgefallen ist.
Nämlich der das man zwar im ACP unter "Allgemein/Board-Konfiguration/Registrierung/ - Allgemeine Optionen/Visuellen Bestätigungscode für Registrierungen aktivieren:" anwählen kann aber, es folgen keine weiteren Optionen. Nachdem ich mich mal ausgeloggt habe und versuchte mich zu registrieren kam ein Frage Antwort Feld (Vordefinierte frage, und der User muss die richtige Antwort geben), aber da stand keine Frage. Ich habe also das Captcha erstmal wieder deaktiviert und verbleibe mit nem Fragezeichen über dem Kopf.

Zudem hatte ich damals unter der Rubrik Registrierung ganz groß Captcha stehen, ich nehme an das ich wirklich in Vorläuferversionen einen Mod verbaute, anders kann ich mir die Problematik grad nicht erklären nur, wie bekomme ich den Schaden wieder ausgebügelt? Das STK hilft mir hier wohl leider nicht mehr weiter. Mahony, ist Dir vielleicht bekannt ob es für die dreier Serie ein optionales Captcha Mod gibt bzw. gab? Selbst habe ich das Bord schon auf den Kopf gestellt, wirklich gefunden habe ich nichts!
§1. Nur wer Toleranz Grenzen setzt weiß Freiheit zu schätzen.
§2. Kunst und Schaffenskraft lässt sich genauso leicht kritisieren wie es für den Kritiker schwer ist besseres zu leisten.
Benutzeravatar
Minusbrain
Mitglied
Beiträge: 163
Registriert: 23.09.2008 19:15
Wohnort: AC

Re: Komm nicht mehr auf Captcha-Modul-Einstellungen im ACP!

Beitrag von Minusbrain »

Das wird jetzt mein dritter Post bzgl. Captcha-Modul.

Liebe Mods/Admins, schiebt das ruhig in ein Beitrag zusammen damit das nicht nach Spam aussieht!

Ich habe es nach X Tagen endlich hinbekommen und die Lösung ward so einfach das es schon weh tut :oops:
Das nächste mal einfach das SKT bis zum Schluss durchgehen.

An Alle die sich ein Modul zerschießen:
Ladet euch wie hier in dem Thread bereits beschrieben das Support Toolkit 1.0.0-PL1 herunter und packt es auf euren Server.

Nun ruft ihr von den folgenden Auswahlpunkten: (Main | Support Tools | Admin Tools | User/Group Tools) auf und wählt Database Cleaner an. Alle Mods werden als extra gekennzeichnet und sollten wenn ihr diese braucht immer abgewählt werden da ihr diese Tabellen sonst aus der Db löscht. Nun geht ihr also die ganzen Datenbank bis zum Schluss durch, was nicht vorhanden aber notwendig ist, wird vom Tool Angezeigt und dazu geschrieben.

Abschließen wird "Reset Modules" gestartet, jenes was ich beim ersten mal übersah und mich vor dem Problem scheitern lies. Normalerweise sollte dann der komplette ACP wieder so eingerichtet sein wie bei einer Deinstallation. Mod Module werden allerdings (optisch) entfernt und müssen nachträglich wieder eingespielt werden, die dazugehörigen Datenbankeinträge bleiben bestehen sofern diese nicht nicht vorher gelöscht hat.

Lg Minus B
§1. Nur wer Toleranz Grenzen setzt weiß Freiheit zu schätzen.
§2. Kunst und Schaffenskraft lässt sich genauso leicht kritisieren wie es für den Kritiker schwer ist besseres zu leisten.
Gesperrt

Zurück zu „[3.0.x] Installation, Update und Konvertierung“