4images Forum & Community

General / Allgemeines => Programming => Topic started by: .Infecto on April 20, 2015, 12:50:22 AM

Title: trim() expects parameter 1 to be string, array given in
Post by: .Infecto on April 20, 2015, 12:50:22 AM
Hallo zusammen,

ich habe folgenden Code:

# --- Variabeln Initialisieren --> 'register_globals' -------------------- #
if ((bool) @ini_get('register_globals')) {
    $superglobals = array($_ENV, $_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
   
    if (isset($_SESSION)) {
        array_unshift($superglobals, $_SESSION);
    }
   
    $knownglobals = array(
    # --> Bekannte Superglobals und reservierte Variabeln
    '_ENV',     'HTTP_ENV_VARS',
    '_GET',     'HTTP_GET_VARS',
    '_POST',    'HTTP_POST_VARS',
    '_COOKIE',  'HTTP_COOKIE_VARS',
    '_FILES',   'HTTP_FILES_VARS',
    '_SERVER',  'HTTP_SERVER_VARS',
    '_SESSION', 'HTTP_SESSION_VARS',
    '_REQUEST',
   
    # --> Variabeln, die hier verwendet werden
    'superglobals',
    'knownglobals',
    'superglobal',
    'global',
    'void'
    );
   
    foreach ($superglobals as $superglobal) {
       
        foreach ($superglobal as $global => $void) {
           
            if (!in_array($global, $knownglobals)) {
               
                unset($GLOBALS[$global]);
            }
        }
    }
}


#####################################

function check_mg_vars($val)
{
    if (isset($val))
    {
        $val = trim($val);
        $val = strip_tags(htmlspecialchars($val));
        return $val;
    }
}

######################################

foreach ($_GET as $key => $element) {    ${$key} = check_mg_vars($element); }
foreach ($_POST as $key => $element) {    ${$key} = check_mg_vars($element); }

#####################################

So kann ich Übergaben einfach ausgeben wie z.B

echo $upl_titel.'<br />';

Jetzt habe ich eine Mehrfachauswahl eingeügt:

  <div class="section">
  <label class="field select-multiple">
  <select name="upl_language[]" id="upl_language" multiple>
  <option value="DE">Deutsch</option>
  <option value="EN">Englisch </option>
  <option value="FR">Französisch</option>
  <option value="SP">Spanisch</option>
  <option value="CH">Chinesisch</option>
  <option value="JP">Japanisch</option>
  <option value="MULTi-2">MULTi-2</option>
  <option value="MULTi-3">MULTi-3</option>
  <option value="MULTi-4">MULTi-4</option>
  <option value="MULTi-5">MULTi-5</option>
  <option value="MULTi-6">MULTi-6</option>
  <option value="MULTi-7">MULTi-7</option>
  <option value="MULTi-8">MULTi-8</option>
  <option value="MULTi-9">MULTi-9</option>
  <option value="MULTi-10">MULTi-10</option>
  <option value="MULTi-11">MULTi-11</option>
  <option value="MULTi-12">MULTi-12</option>
  <option value="MULTi-13">MULTi-13</option>
  <option value="MULTi-14">MULTi-14</option>
  <option value="MULTi-15">MULTi-15</option>
  <option value="MULTi-16">MULTi-16</option>
  <option value="MULTi-17">MULTi-17</option>
  <option value="MULTi-18">MULTi-18</option>
  <option value="MULTi-19">MULTi-19</option>
  <option value="MULTi-20">MULTi-20</option>
  <option value="MULTi-21">MULTi-21</option>
  <option value="MULTi-22">MULTi-2</option>
  <option value="MULTi-23">MULTi-23</option>
  <option value="MULTi-24">MULTi-24</option>
  <option value="MULTi-25">MULTi-25</option>
  </select>   
  </label>   
  </div><!-- end  section -->

echo $upl_language;

Wenn ich nun das Formular abschicke, bekomme ich folgende Fehlermeldung:
Quote
trim() expects parameter 1 to be string, array given in

Wie kann ich das umgehen?
Gibt es da einen Trick?
Title: Re: trim() expects parameter 1 to be string, array given in
Post by: Rembrandt on April 20, 2015, 05:17:28 AM
Hi!

Steh eigentlich eh schon in der Fehlermeldung, du übergibst ein Array ,"Trim" kann aber nur auf einen "String" angewendet werden.

http://php.net/manual/de/function.trim.php

mfg Andi