MyBB.de Forum

Normale Version: Mein erstes Plugin und es funktioniert nicht richtig...
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
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?
Hallo Bimon,

In der foreach Fehlermeldung tippe ich darauf, dass kein array, oder ein leeres array übergeben wird. ...

Mfg Garlant
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 Wink:
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 :)
    }

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?
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?
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.
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?!
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.
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
Ja. Kannst du bitte mal den gesamten Code des Plugins posten?
Seiten: 1 2 3