Beiträge: 337
Themen: 70
Registriert seit: 11.12.2006
MyBB-Version: 1.2.xx
Hallo,
mein erstes Plugin und es funktioniert nicht zu Verlässig...
Es handelt sich um "
Guests Language".
Es erscheint folgende Fehlermeldung:
Zitat:Warning: Invalid argument supplied for foreach() in /usr/export/www/hosting/revolution2050/forum/inc/functions.php on line 751
Fatal error: Call to a member function on a non-object in /usr/export/www/hosting/revolution2050/forum/global.php on line 61
Wobei ich im Plugin (nur bei mir selber) kein Drop-Down Menü habe, sondern Bilder mit
Code:
<input type="image" src="..." ..... />
eingebunden habe.
Ich habe schon gemerkt, dass der IE7 dann zwar zum Plugin springt, aber keinen POST macht, und jetzt auch noch mit Firefox.....
Ist etwas mit <input type="image" ..... /> falsch? Welche Alternativen bieten sich?
Beiträge: 1.626
Themen: 41
Registriert seit: 24.01.2006
09.06.2007, 08:20
(Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2007, 08:24 von Garlant.)
Hallo Bimon,
In der foreach Fehlermeldung tippe ich darauf, dass kein array, oder ein leeres array übergeben wird. ...
Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
Beiträge: 337
Themen: 70
Registriert seit: 11.12.2006
MyBB-Version: 1.2.xx
09.06.2007, 08:54
(Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2007, 08:56 von Bimon.)
Ich rufe die functions.php aber doch garnicht über das Plugin auf. Ich habe jetzt noch einen anderen Fehler, wo ich die functions.php auch nie aufrufe...
Schonmal Copyright auf den folgenden Code
:
PHP-Code:
function quicklanguage_secgroup()
{
global $user, $mybb, $db, $lang;
if($mybb->user['uid'] != 0)
{
$query = $db->query("SELECT additionalgroups FROM ".TABLE_PREFIX."users WHERE uid = '".$mybb->user['uid']."' LIMIT 1");
$row = $db->fetch_array($query);
$additionalgroups = $row['additionalgroups'];
$teile = explode(",", $additionalgroups);
$i = 0;
foreach(teile as $value)
{
$query = $db->query("SELECT title FROM ".TABLE_PREFIX."usergroups WHERE gid = '$value' LIMIT 1");
$row = $db->fetch_array($query);
$title = $row['title'];
$languages = $lang->get_languages();
foreach(languages as $langs)
{
if($langs = $title)
{
unset($teile[$i]);
$query = $db->query("SELECT gid FROM ".TABLE_PREFIX."usergroups WHERE title = '".$user['language']."' LIMIT 1");
$row = $db->fetch_array($query);
$newgid = $row['gid'];
$newteile = array_push($teile, $newgid);
$newaddgroup = implode(",", $newteile);
$db->query("UPDATE ".TABLE_PREFIX."users SET additionalgroups = '$newaddgroup' WHERE uid = '".$mybb->user['uid']."' LIMIT 1");
} else {}
}
$i++;
}
}
else
{
KOMMT NOCH :)
}
}
Beiträge: 2.769
Themen: 28
Registriert seit: 18.03.2006
Doch, du rufst die funktions.php mit "global" auf.
PHP-Code:
foreach(languages as $langs)
sollte wohl
PHP-Code:
foreach($languages as $langs)
heißen?
Beiträge: 337
Themen: 70
Registriert seit: 11.12.2006
MyBB-Version: 1.2.xx
ja hatte ich schon, in php.net stand das ohne $, ich hatte aber auch schon mit $. Gut ich rufe die Datei auf, verwende sie aber doch nicht. Was ist denn der Fehler nun daran, ich verstehs einfach nicht. Was muss ich ändern?
Beiträge: 2.769
Themen: 28
Registriert seit: 18.03.2006
Du rufst die Datei auf und benutzt Funktionen, die in der Datei definiert sind. Der eigentliche Fehler liegt aber trotzdem in deiner eigenen Datei. Du hast den Fehler bei allen foreach-Schleifen gemacht. Das erste muss auch immer eine Variable bzw. ein Array sein.
Beiträge: 337
Themen: 70
Registriert seit: 11.12.2006
MyBB-Version: 1.2.xx
Dann versteh ich nun garnichts mehr...
$teile und $languages sind doch Arrays...was ist denn daran nun falsch?
Ich dachte foreach wäre eine Funktion von PHP?!
Beiträge: 2.769
Themen: 28
Registriert seit: 18.03.2006
PHP-Code:
function quicklanguage_secgroup()
{
global $user, $mybb, $db, $lang;
if($mybb->user['uid'] != 0)
{
$query = $db->query("SELECT additionalgroups FROM ".TABLE_PREFIX."users WHERE uid = '".$mybb->user['uid']."' LIMIT 1");
$row = $db->fetch_array($query);
$additionalgroups = $row['additionalgroups'];
$teile = explode(",", $additionalgroups);
$i = 0;
foreach($teile as $value)
{
$query = $db->query("SELECT title FROM ".TABLE_PREFIX."usergroups WHERE gid = '$value' LIMIT 1");
$row = $db->fetch_array($query);
$title = $row['title'];
$languages = $lang->get_languages();
foreach($languages as $langs)
{
if($langs = $title)
{
unset($teile[$i]);
$query = $db->query("SELECT gid FROM ".TABLE_PREFIX."usergroups WHERE title = '".$user['language']."' LIMIT 1");
$row = $db->fetch_array($query);
$newgid = $row['gid'];
$newteile = array_push($teile, $newgid);
$newaddgroup = implode(",", $newteile);
$db->query("UPDATE ".TABLE_PREFIX."users SET additionalgroups = '$newaddgroup' WHERE uid = '".$mybb->user['uid']."' LIMIT 1");
} else {}
}
$i++;
}
}
else
{
}
}
Das sollte so funktionieren. Wenn nicht poste bitte nochmal die Fehlermeldung.
Beiträge: 337
Themen: 70
Registriert seit: 11.12.2006
MyBB-Version: 1.2.xx
Soweit ich das jetzt sehen kann ist es der gleiche Code nur mit den $ oder?
Es gibt auch noch die gleiche Fehlermeldung:
Zitat:Warning: Invalid argument supplied for foreach() in /usr/export/www/hosting/revolution2050/forum/inc/functions.php on line 751
Fatal error: Call to a member function on a non-object in /usr/export/www/hosting/revolution2050/forum/global.php on line 61
Beiträge: 2.769
Themen: 28
Registriert seit: 18.03.2006
Ja. Kannst du bitte mal den gesamten Code des Plugins posten?