Illegal use of $_GET. You must use the request class or requ
Verfasst: 15.05.2016 19:32
Hallo
ich möchte gern das Angebot Gesetze im Text verlinken von http://buzer.de nutzen.
Beim Aufruf zur Installation erhalte ich diese Fehlermeldung:
buzer_install3.php sieht so aus:
Kann mir jemand helfen? Ich weiß das " $_GET " in der aktuellen php-Version nicht mehr funktioniert aber ich weiß wirklich nicht wie das Problem zu beheben wäre.
Die andere php-Datei buzer_phpbb3.php sieht so aus:
ich möchte gern das Angebot Gesetze im Text verlinken von http://buzer.de nutzen.
Beim Aufruf zur Installation erhalte ich diese Fehlermeldung:
Ich habe bei der Suche hier das gefunden, aber es ist nicht ganze das gleiche Problem?General Error
Illegal use of $_GET. You must use the request class or request_var() to access input data. Found in /www/htdocs/pfad/pfad/buzer_install3.php on line 24. This error message was generated by deactivated_super_global.
buzer_install3.php sieht so aus:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
$config = array(
in => "viewtopic.php",
out => "viewtopic_buzer.php",
backup => "viewtopic_buzer_org.php",
buzer => "buzer_phpbb3.php",
errors => array(),
msgs => array(),
content => "",
incl => "",
set => "",
charset => "",
);
if ( isset($_GET['install']) and preg_match("/^1$/", $_GET['install'])) {
# Installation
if ( isset($_GET['charset']) and preg_match("/^([a-z0-9\-]+)$/i", $_GET['charset'], $treffer) ) {
$config[charset] = $treffer[1];
} else {
$config[charset] = "utf-8";
}
array_push($config[msgs], "verwende '$config[charset]'");
$install = "Installation " . (install($config) ? "" : "nicht ") . "erfolgreich<br />";
}
if ( isset($_GET['deinstall']) and preg_match("/^1$/", $_GET['deinstall'])) {
# Deinstallation
$deinstall = "Deinstallation " . (deinstall($config) ? "" : "nicht ") . "erfolgreich<br />";
}
if ( count($config[errors])) {
$error = '<b>aufgetretene Fehler:</b><div style="color:red;">' . implode( '<br />', $config[errors]) . '</div>';
}
if ( count($config[msgs])) {
$msg = '<b>Ablauf:</b><div style="color:green;">' . implode( '<br />', $config[msgs]) . '</div>';
}
$content = <<<HTML
<html>
<head>
<title>Buzer-Plugin (de)installieren</title>
</head>
<body style="padding:10px;">
<div style=""> Mit diesem Skript können Sie das Plugin installieren und wieder entfernen</div>
<div style="margin-top:20px;padding:5px;border:1px solid #000000;"><b>Installation</b><br /><br />
Vor der Installation müssen Sie die im Zip-File enthaltene Datei '$config[buzer]' in das Stammverzeichnis Ihrer phpBB-Installation kopiert haben.<br /><br />
<form action="">
vom Forum verwendetes Charset <input type="text" name="charset" value="$config[charset]"> (2.x wahrscheinlich 'iso-8859-1', 3.x wahrscheinlich 'uft-8')<br />
<input type="submit" value="jetzt installieren">
<input type="hidden" name="install" value="1">
</form>
</div>
<div style="margin-top:20px;padding:5px;border:1px solid #000000;"><b>Deinstallation</b><br /><br />
Es wird die bei der Installation als '$config[backup]' gesicherte '$config[in]' wiederhergestellt<br /><br />
<form action="">
<input type="submit" value="jetzt deinstallieren">
<input type="hidden" name="deinstall" value="1">
</form>
</div>
<div style="margin-top:20px;padding:5px;border:1px solid #000000;"><b>Ergebnis:</b><br />
$install
$deinstall<br />
$msg<br /><br />
$error<br /><br />
</div>
</body>
</html>
HTML;
echo $content;
function deinstall(&$config) {
if (!is_writeable( "./")) {
array_push($config[errors], "Verzeichnis './' nicht schreibbar");
return 0;
}
if ( !is_file( $config[backup])) {
array_push($config[errors], "Datei '$config[backup]' nicht gefunden");
return 0;
}
if ( !is_writeable( $config[backup])) {
array_push($config[errors], "Datei '$config[backup]' nicht schreibbar");
return 0;
}
if ( !is_writeable( $config[in])) {
array_push($config[errors], "Datei '$config[in]' nicht schreibbar");
return 0;
}
if ( is_file($config[out]) ) {
if (!is_writeable( $config[out])) {
array_push($config[errors], "Datei '$config[out]' nicht schreibbar");
return 0;
} else {
if ( !unlink($config[out]) ) {
array_push($config[errors], "Datei '$config[out]' nicht löschbar");
return 0;
}
}
}
# Tabelle erzeugen
global $db;
# anlegen cache
if ( !$db->sql_query( 'drop table buzer_cache', false)) {
array_push($config[errors], "Cache-Tabelle 'buzer_cache' konnte nicht entfernt werden");
return 0;
} else {
array_push($config[msgs], "Cache-Tabelle 'buzer_cache' entfernt");
}
$rename = rename( $config[in], $config[out] );
if ( $rename ) {
array_push($config[msgs], "Datei '$config[in]' verschoben nach '$config[out]'");
} else {
array_push($config[errors], "Datei '$config[in]' konnte nicht nach '$config[out]' verschoben werden");
return 0;
}
$rename = rename( $config[backup], $config[in] );
if ( $rename ) {
array_push($config[msgs], "Datei '$config[backup]' wiederhergestellt als '$config[in]'");
} else {
array_push($config[errors], "Datei '$config[backup]' konnte nicht als '$config[in]' wiederhergestellt werden");
}
return $rename;
}
function install(&$config) {
if ( !is_writeable( $config[in])) {
array_push($config[errors], "Datei '$config[in]' nicht schreibbar");
return 0;
}
if ( !is_writeable( "./")) {
array_push($config[errors], "im Verzeichnis kann './' nicht geschrieben werden");
return 0;
}
if ( is_file($config[out]) and !is_writeable( $config[out])) {
array_push($config[errors], "die Datei '$config[out]' nicht geschrieben werden");
return 0;
}
if ( !is_file($config[buzer])) {
array_push($config[errors], "die Datei '$config[buzer]' wurde nicht gefunden");
return 0;
}
if ( !is_readable($config[buzer])) {
array_push($config[errors], "die Datei '$config[buzer]' ist nicht lesbar");
return 0;
}
# Tabelle erzeugen
global $db;
# anlegen cache
if ( !$db->sql_query( 'create table if not exists buzer_cache (id int primary key, hash varchar(32), cache mediumtext not null, dateinsert datetime, dateupdate datetime, state tinyint, unique index pk_buzer_cache_hash (hash))', false)) {
array_push($config[errors], "cache Tabelle konnte nicht erzeugt werden");
return 0;
} else {
array_push($config[msgs], "Cache-Tabelle 'buzer_cache' erzeugt");
}
# ermitteln der letzten Post-ID
$db->sql_query("insert ignore into ".CONFIG_TABLE."(config_name, config_value) select 'buzer_max_postid', max(cast(post_id as signed)-100000) from ". POSTS_TABLE);
$db->sql_query("delete from ".CONFIG_TABLE." where config_name='buzer_cache_table'");
set_config('buzer_cache_table', 'buzer_cache');
$fin = fopen($config[in], 'r');
$fout = fopen($config[out], 'w');
$include = '';
$set = '';
while ( $line = fgets($fin )) {
if ( !$include and preg_match( '/^(\s*include\s*\(\s*\$.*)(includes\/bbcode\.\'\s*\.\s*\$phpEx\s*\)\s*;)/',$line, $treffer )) {
# eintragen des includes
fwrite( $fout, $line);
fwrite( $fout, "$treffer[1]$config[buzer]');\n");
$include = "Datei '$config[out]': Einfügen der Zeile '$treffer[1]$config[buzer]');'";
array_push($config[msgs], $include);
} elseif ( $include and !$set and preg_match( '/^(\s*\'MESSAGE\'\s*\=\>\s*)\$message\s*,/',$line, $treffer )) {
# eintragen aufruf der linkfunktion
fwrite( $fout, "# $line");
$set = "Datei '$config[out]': Auskommentieren der Zeile '$line'";
array_push($config[msgs], $set);
#fwrite( $fout, "$treffer[1]buzer_LinkIt(\$message, \$row['post_id'], '$config[charset]'),\n");
$flineout = "$treffer[1] (\$config['buzer_max_postid'] and \$config['buzer_max_postid']<\$row['post_id']) ? \$gBuzer->buzer_LinkIt(\$message, '$config[charset]', \$row['post_id']) : \$message,";
fwrite( $fout, "$flineout\n");
#$set = "Datei '$config[out]': Einfügen der Zeile '$treffer[1]buzer_LinkIt(\$message, \$row['post_id'], '$config[charset]'),'";
$set = "Datei '$config[out]': Einfügen der Zeile '$flineout'";
array_push($config[msgs], $set);
} else {
fwrite( $fout, $line);
}
}
fclose($fout);
fclose($fin);
if ( !$include ) {
array_push($config[errors], "die Position zum Einfügen der 'include'-Zeile wurde nicht gefunden");
}
if ( !$set ) {
array_push($config[errors], "die Position zum Einfügen der 'linkIt'-Zeile wurde nicht gefunden");
}
if ( $include and $set ) {
# sichern der originaldatei und übernehmen der geänderten
$mv_backup = rename( $config[in], $config[backup]);
if ( $mv_backup ) {
array_push($config[msgs], "Datei '$config[in]' wurde in '$config[backup]' umbenannt (Backup)");
} else {
array_push( $config[errors], "Datei '$config[in]' konnte nicht in '$config[backup]' umbenannt werden (Backup)");
}
if ( $mv_backup ) {
$mv_new = rename( $config[out], $config[in]);
if ( $mv_new ) {
array_push( $config[msgs], "Datei '$config[out]' wurde in '$config[in]' umbenannt (Hook)");
} else {
array_push( $config[errors], "Datei '$config[out]' konnte nicht in '$config[in]' umbenannt werden (Hook)");
}
}
return ($mv_backup and $mv_new);
}
}
?>
Die andere php-Datei buzer_phpbb3.php sieht so aus:
Code: Alles auswählen
<?php
/*
Plugin Name: Buzer Gesetze verlinken
Plugin URI: http://www.buzer.de/li.htm
Description: verlinkt im Text zitierte Gesetzesverweise und EU-Normen
Author: www.buzer.de
Version: 1.05
Author URI: http://www.buzer.de/
*/
class clsBuzer {
var $done = 0;
var $buzer_config = array (
'version' => '1.05',
# beliebige Anzahl Attribute zur Linkformatierung des Titels
# z.B. 'at'=>'target="_blank"' erzeugt Links wie <a href="ziel" target="_blank">...
# kann beispielsweise auch für die Formatierung (style, class, etc.)
# oder auch zum Plazieren von Skripten verwendet werden
'at' => 'target="_blank"',
# analog zu 'at' nur die verlinkten Paragraphen/Artikel betreffend
'ap' => 'target="_blank"',
# Zitierrichtung, Standand ist § 1 der ZPO, d.h. der Titel wird rechts
# vom Paragraphen erwartet, dann ist hier keine Angabe notwendig,
# wird z.B. ZPO §§ 1, 2, 3 etc. verwendet, funktioniert das Verlinken
# nur wenn das Flag 'lr' gesetz ist, z.B. 'lr' => 1
'lr' => 0,
# falls true, werden die Titel selbst nicht verlinkt, also
# z.B. bei § 1 BGB wird nur der § 1 verlinkt, allerdings
#erhült dann natürlich auch "die Vorschriften des BGB bestimmen" keinen Link
'not' => 0,
# kommaseparierte Liste von Titeln, die mit diesem Titel nie verlinkt werden
# WEG meint häüfiger den Weg als das WEG, ALG ist oft ALG II
'notitle' => 'WEG,ALG,WHG,FANG,AUG,LAG,ARG',
# falls true, werden Sonderzeichen html-codiert
'esc' => 0,
# ersetzt aufeinanderfolgende Leerzeichen durch eines,
# führt zu besseren Ergebnissen,
# falls Text stark durch Verwendung von Leerzeichen formatiert ist,
# zerstört dann allerdings auch diese Formatierung
'trim' => 0,
# Zieladresse für Postheader
'_post' => '/li.htm',
# Servername
'_host' => 'www.buzer.de',
# Port
'_port' => 80,
# timeout für Verbindung zu buzer.de in Sekunden, falls überschritten
# wird der Eingangstext zurückgegeben
'_timeout' => 5,
# false hier eine Angabe erfolgt, wird eine Tabelle dieses Namens
# als Cache verwendet
# bei Angabe erfolgt die Verlinkung bei Anzeige des Artikels
# wenn leer, wird der Artikel beim Speichern in der Datenbank verlinkt
'_cache' => 'buzer_cache',
# Debug falls true
'_debug' => 0,
);
function clsBuzer() {
return $this;
}
function buzer_getCache( $config, $text, $id) {
# gibt falls vorhandenen den cache zurück
global $db;
$result = $db->sql_query( "select cache from ".$config['_cache']."
where hash = md5('".mysql_escape_string($text)."')
limit 1;");
$cache = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
return $cache['cache'] == "1" ? $text : $cache['cache'];
}
function buzer_insertCache( $config, $text, $cache, $id) {
# schreibt die verlinkte version in den cache
global $db;
$sql = "update ignore ".$config['_cache']."
set cache=convert('".mysql_escape_string($text." "==$cache?1:$cache)."' using latin1),
dateupdate=now(),
hash=md5('".mysql_escape_string($text)."')
where id=0$id";
if ( $db->sql_affectedrows($db->sql_query( $sql))) {
return 1;
}
$sql = "insert ignore into ".$config['_cache']." (id, cache, hash, dateinsert)
values (0$id, convert('".mysql_escape_string($text." "==$cache?1:$cache)."' using latin1), md5('".mysql_escape_string($text)."'), now())";
return $db->sql_query( $sql );
}
function buzer_LinkIt($textin, $charset, $id) {
# verlinkt den übergebenen text
$buzer_config=$this->buzer_config;
if ( strlen($charset)>0 ) {
$buzer_config[charset]=$charset;
}
if ( $cache=$this->buzer_getCache( $buzer_config, $textin, $id) ) { return $cache; }
if ( $this->done ) {
return $textin;
}
# maximal ein request pro Seitenabruf
$this->done = 1;
$content = 'plugin=phpbb3&site='.urlencode($_SERVER[HTTP_HOST]);
foreach ($buzer_config as $key => $value) {
if ( $value && !preg_match('/^_/', $key )) {
$content .= "&$key=" . urlencode( $value );
}
}
$content .= "&text=" . urlencode($textin);
$redirect = 0;
$attempt = 0;
while ( !$attempt++ and $redirect<2 ) {
$header = "POST ".$buzer_config['_post']." HTTP/1.0\n";
$header .= "Host: ".$buzer_config['_host']."\n";
$header .= "Content-type: application/x-www-form-urlencoded; charset=" . urlencode($buzer_config[charset]) ."\n";
$header .= "Content-length: " . strlen($content) . "\n\n";
if ( $buzer_config['_debug']) echo "header=$header<br />";
$socket = fsockopen($buzer_config['_host'], $buzer_config['_port'], $errno, $errstr, $buzer_config['_timeout']);
if ( $buzer_config['_debug']) echo "fsockopen: socket=$socket, errno=$errno, errstr=$errstr<br />";
if ( !$socket ) return $textin;
if ( $buzer_config['_debug']) echo "Content: $content<br />";
socket_set_timeout($socket, $buzer_config['_timeout'], 0);
socket_set_blocking($socket, true);
fputs($socket, $header.$content);
$timed_out = false;
$eof = false;
$textout='';
while (!$eof and !$timed_out) {
$textout.= fgets($socket, 1024);
$state = socket_get_status($socket);
$eof = $state["eof"];
$timed_out = $state["timed_out"];
}
fclose($socket);
if ( $buzer_config['_debug']) echo "length: ".strlen($textout)."<br />";
$del = "\n";
if ( preg_match("/\r\n/", $textout) ) { $del="\r\n"; }
$ok = false;
$lines = explode($del, $textout);
$i = 0;
while ( $_ = $lines[$i++] ) {
if ( preg_match('/200 OK/', $_) ) {
$ok = true;
}
if ( preg_match('/location:.*?\/\/([^\/]+)(\/.+)/i',$_,$loc) ) {
$buzer_config['_host'] = $loc[1];
$buzer_config['_post'] = $loc[2];
$attempt = 0;
$redirect++;
break;
}
}
}
$textout = implode($del, array_slice( $lines, $i));
if ( $buzer_config['_debug']) echo "read: ok=$ok, textout=$textout<br />";
if ( !$ok ) {
return $textin;
}
$cmd = substr( $textout, -100);
if ( substr($cmd, 0, 2) != "OK" ) {
return $textin;
}
$textout = substr( $textout, 0, -100);
if ( $textin and strlen($textout)<strlen($textin) ) {
if ( $buzer_config['_debug']) echo "Break zu kurz<br />";
return $textin;
}
$this->buzer_insertCache( $buzer_config, $textin, $textout, $id);
return $textout;
}
}
$gBuzer = new clsBuzer();
?>